@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.
- package/assets/skills/_registry.md +41 -13
- package/assets/skills/operacional/_registry.md +6 -0
- package/assets/skills/operacional/backup-workspace-github/SKILL.md +39 -3
- package/assets/skills/operacional/commit-diario-workspace/SKILL.md +233 -0
- package/assets/skills/operacional/cron-resume-wizards/SKILL.md +329 -0
- package/assets/skills/operacional/seguranca-checklist/SKILL.md +202 -0
- package/assets/skills/starter/_registry.md +13 -9
- package/assets/skills/starter/continuar-jornada/SKILL.md +358 -0
- package/assets/skills/starter/gera-log-jornada/SKILL.md +338 -0
- package/assets/skills/starter/onboarding-checklist/SKILL.md +416 -88
- package/assets/skills/starter/onboarding-checklist/references/arquivos-raiz.md +44 -16
- package/assets/skills/starter/onboarding-checklist/references/aula-menus.md +304 -0
- package/assets/skills/starter/onboarding-checklist/references/checklist-template.md +70 -1
- package/assets/skills/starter/onboarding-checklist/references/comandos-canonicos.md +337 -9
- package/assets/skills/starter/onboarding-checklist/references/mapa-aulas.md +17 -12
- package/assets/skills/starter/onboarding-checklist/references/principios-defensivos.md +772 -0
- package/assets/skills/starter/onboarding-checklist/references/sistema-de-mapas.md +2 -2
- package/assets/skills/starter/onboarding-checklist/references/wizard-header-template.md +51 -0
- package/assets/skills/starter/primeira-vitoria/SKILL.md +448 -53
- package/assets/skills/starter/primeira-vitoria/evals/evals.json +2 -2
- package/assets/skills/starter/wizard-agente/SKILL.md +123 -17
- package/assets/skills/starter/wizard-agente/evals/evals.json +3 -3
- package/assets/skills/starter/wizard-aluno/SKILL.md +28 -3
- package/assets/skills/starter/wizard-aluno/evals/evals.json +1 -1
- package/assets/skills/starter/wizard-autonomia/SKILL.md +157 -27
- package/assets/skills/starter/wizard-autonomia/evals/evals.json +2 -2
- package/assets/skills/starter/wizard-autonomia/screenshots/painel-hostinger-cli.jpg +0 -0
- package/assets/skills/starter/wizard-conectar/SKILL.md +382 -74
- package/assets/skills/starter/wizard-conectar/screenshots/github-pat/01-avatar-settings.png +0 -0
- package/assets/skills/starter/wizard-conectar/screenshots/github-pat/02-developer-settings.png +0 -0
- package/assets/skills/starter/wizard-conectar/screenshots/github-pat/03-tokens-classic.png +0 -0
- package/assets/skills/starter/wizard-conectar/screenshots/github-pat/04-generate-classic.png +0 -0
- package/assets/skills/starter/wizard-whisper-quick/SKILL.md +160 -23
- package/assets/skills/starter/wizard-workspace/SKILL.md +23 -4
- package/assets/skills/starter/wizard-workspace/evals/evals.json +1 -1
- package/assets/templates/HEARTBEAT.template.md +58 -0
- package/assets/templates/README.md +65 -13
- package/assets/templates/SOUL-stub.template.md +1 -1
- package/assets/templates/template-material-didatico.html +457 -0
- package/assets/templates/template-report-executivo.html +368 -0
- package/assets/templates/template-report.html +370 -0
- package/package.json +1 -1
|
@@ -3,20 +3,43 @@ name: wizard-whisper-quick
|
|
|
3
3
|
status: ATIVO
|
|
4
4
|
category: starter
|
|
5
5
|
owner: aluno
|
|
6
|
-
version: 1.
|
|
6
|
+
version: 1.12
|
|
7
7
|
mode: guided
|
|
8
|
-
estimated_time: 5min (ou
|
|
8
|
+
estimated_time: 5min (ou 15s se chave já existe e válida — qualquer ambiente)
|
|
9
9
|
model_compatible: [gpt-5, gpt-5.5, claude-sonnet-4, claude-opus-4, gemini-pro]
|
|
10
|
-
description: Use when student types "configura whisper" / "ativa áudio" / "quero mandar áudio", OR when dispatched by onboarding-checklist as passo 0 (pré-passo opcional). Configures OpenAI API key in .env so student can send voice messages on Telegram
|
|
10
|
+
description: Use when student types "configura whisper" / "ativa áudio" / "quero mandar áudio", OR when dispatched by onboarding-checklist as passo 0 (pré-passo opcional). Configures OpenAI API key in .env so student can send voice messages on Telegram (Whisper) AND have semantic memory (embeddings). Detects existing key first (Princípio 11/.env first OBRIGATÓRIO), validates with API call, asks only if missing. **v1.12 (kit v2.4 — stress test multi-persona): fast-path AGORA INDEPENDENTE DE AMBIENTE. Antes (v1.10/v1.11) só ativava se `ambiente: managed`. Stress test Rodrigo (VPS root com chave válida em .env) revelou: aluno era re-entrevistado por causa de condicional desnecessária. Fix: se chave existe (env var OR .env) E smoke test retorna HTTP 200 → pula entrevista, independente de ambiente. Princípio: condição "chave válida" não é exclusiva de Managed. Em VPS root + local-dev, mesma economia.** v1.11: env var fast-path (chave Managed em env var, não .env). v1.10: fast-path Managed inicial. v1.9: header P13/14/15. v1.8: pulo agendar 24h vs definitivo. v1.7: P11 reforçado.
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# Wizard Whisper Quick — Passo 0 (Pré-passo opcional)
|
|
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.** Validação da chave OpenAI + smoke test de áudio SEMPRE mostram (1) comando `curl` exato, (2) output literal (HTTP code + transcrição), (3) só DEPOIS interpreta. Sem evidência = ABORTA e pede ajuda. NUNCA finge que validou ou que transcreveu áudio que não rodou — falha real Dr. Thiago v1.9.1.
|
|
27
|
+
>
|
|
28
|
+
> **P15 — Mensagens `<canonical>` literais.** "Você quer ajuda pra pegar essa chave, ou já tem ela fácil aí?" + 3 opções pós-pulo (agendar 24h / definitivo / volta quando quiser) são CANONICAL — usar LITERAL.
|
|
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 — Telegram faz word-wrap natural.
|
|
31
|
+
>
|
|
32
|
+
> Detalhes: `../onboarding-checklist/references/principios-defensivos.md` (P1–P17).
|
|
33
|
+
|
|
34
|
+
> ⚠️ **Agente:** se você é a `onboarding-checklist` despachando este wizard, **NÃO IMPROVISE uma versão simplificada na conversa**. Read este arquivo INTEIRO e siga à risca. Em particular: SEMPRE rode a Detecção (Princípio 11 abaixo) ANTES de mandar qualquer pergunta ao aluno. Falha real (sessão Lia 02/05): agente perguntou "quer ativar Whisper?" sem checar `.env`, gerando pergunta desnecessária pra aluno que já tinha chave.
|
|
35
|
+
|
|
15
36
|
## Promessa
|
|
16
37
|
|
|
17
38
|
Aluno termina esse passo conseguindo **mandar áudio em vez de digitar** no Telegram. Eu transcrevo na hora e respondo. Quem tá no celular dirigindo, andando, fazendo café — fala em vez de teclar.
|
|
18
39
|
|
|
19
|
-
|
|
40
|
+
**Bonus:** a mesma chave OpenAI configurada aqui também serve pra **memória semântica** (embeddings) — quando aluno tem essa memória ativa, agente "lembra" coisas pelo SIGNIFICADO, não só pelo texto exato. Útil pra recall de decisões antigas, padrões em conteúdo, etc. Sem chave OpenAI: só busca textual literal.
|
|
41
|
+
|
|
42
|
+
Sem ele, aluno passa a jornada inteira digitando + perde memória semântica. Com ele, passa falando + tem agente que entende contexto. Mudança grande na primeira impressão.
|
|
20
43
|
|
|
21
44
|
## Quando disparar
|
|
22
45
|
|
|
@@ -33,20 +56,82 @@ Sem ele, aluno passa a jornada inteira digitando. Com ele, passa falando. Mudan
|
|
|
33
56
|
- `whisper_configured=true` em `MEMORY.md` E última validação foi há menos de 7 dias
|
|
34
57
|
- Aluno explicitamente pulou no passo 0 (`whisper_skipped=true` em `MEMORY.md`)
|
|
35
58
|
|
|
36
|
-
## Princípio 11 — Detecção antes de pedir
|
|
59
|
+
## Princípio 11 — Detecção antes de pedir (OBRIGATÓRIO, não pular)
|
|
60
|
+
|
|
61
|
+
⚠️ **CRÍTICO:** sua PRIMEIRA ação ao ser invocada é a checagem abaixo. Não escreva NADA pro aluno antes de checar. Se pular essa detecção, vai perguntar coisa que aluno já configurou — irrita, parece amador.
|
|
62
|
+
|
|
63
|
+
**Sequência obrigatória de detecção:**
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# 1. Lê .env (caminho varia por workspace, geralmente ~/workspace/.env ou ~/.env)
|
|
67
|
+
cat $WORKSPACE/.env | grep -E "^OPENAI_API_KEY="
|
|
68
|
+
|
|
69
|
+
# 2. Se existe, valida com call de teste à API:
|
|
70
|
+
curl -s https://api.openai.com/v1/models \
|
|
71
|
+
-H "Authorization: Bearer $OPENAI_API_KEY" \
|
|
72
|
+
-o /dev/null -w "%{http_code}"
|
|
73
|
+
|
|
74
|
+
# 3. Interpreta:
|
|
75
|
+
# 200 → chave válida
|
|
76
|
+
# 401 → chave inválida/revogada
|
|
77
|
+
# 429 → chave OK mas sem saldo
|
|
78
|
+
# outro → investiga
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Falha real observada (Lia 02/05):** agente recebeu "wizard direto" e foi PERGUNTAR "quer ativar Whisper?" sem rodar a detecção. Aluno tinha chave, virou pergunta desnecessária. Princípio 11 existe pra isso — **não pule**.
|
|
82
|
+
|
|
83
|
+
### Fast-path por chave detectada (kit v2.4 — INDEPENDENTE de ambiente)
|
|
37
84
|
|
|
38
|
-
**
|
|
85
|
+
⚠️ **Mudança v1.12 (kit v2.4):** antes (v1.10/v1.11) o fast-path só rodava se `ambiente: managed`. Agora a condição passa a ser **"chave válida em env var OR .env"** — independente de ambiente. Razão: stress test Rodrigo (VPS root com chave existente no `.env`) revelou que aluno era re-entrevistado mesmo já tendo chave válida. A condicional `if ambiente == managed` era desnecessária — o que importa é se a chave existe e funciona, não de onde veio.
|
|
39
86
|
|
|
87
|
+
**Detecção em 2 fontes (mantida da v1.11):**
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# 1. PRIMEIRO: env var do processo (fonte primária em Managed)
|
|
91
|
+
if [ -n "$OPENAI_API_KEY" ]; then
|
|
92
|
+
echo "found_in_envvar"
|
|
93
|
+
KEY="$OPENAI_API_KEY"
|
|
94
|
+
fi
|
|
95
|
+
|
|
96
|
+
# 2. FALLBACK: .env do workspace (fonte primária em VPS root / local-dev / Managed que tirou da env var)
|
|
97
|
+
if [ -z "$KEY" ] && [ -f "$WORKSPACE/.env" ] && grep -q "^OPENAI_API_KEY=" "$WORKSPACE/.env"; then
|
|
98
|
+
echo "found_in_dotenv"
|
|
99
|
+
KEY="$(grep "^OPENAI_API_KEY=" "$WORKSPACE/.env" | cut -d= -f2- | tr -d '"' | tr -d "'")"
|
|
100
|
+
fi
|
|
40
101
|
```
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
102
|
+
|
|
103
|
+
Se achou em qualquer um dos 2 lugares → smoke test visível (P14):
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
# Validar chave (não importa de qual fonte veio)
|
|
107
|
+
curl -s https://api.openai.com/v1/models \
|
|
108
|
+
-H "Authorization: Bearer $KEY" \
|
|
109
|
+
-o /dev/null -w "%{http_code}"
|
|
48
110
|
```
|
|
49
111
|
|
|
112
|
+
**Se HTTP 200 → narra (mensagem ajusta-se ao ambiente detectado):**
|
|
113
|
+
|
|
114
|
+
| `ambiente:` | Mensagem |
|
|
115
|
+
|---|---|
|
|
116
|
+
| `managed` | "✓ Detectei sua chave OpenAI vinda do setup Managed (você forneceu quando instalou o OpenClaw no painel Hostinger). Validei, tá funcionando. Whisper + memória semântica já prontos." |
|
|
117
|
+
| `vps-root` | "✓ Detectei sua chave OpenAI no `.env` do workspace. Validei, tá funcionando. Whisper + memória semântica já prontos — sem pergunta extra." |
|
|
118
|
+
| `local-dev` ou `unknown` | "✓ Detectei sua chave OpenAI configurada (env var ou `.env`). Validei, tá funcionando. Whisper + memória semântica já prontos." |
|
|
119
|
+
|
|
120
|
+
→ pula direto pro smoke test (seção 5 abaixo). Marca `whisper_configured=true` em MEMORY.md.
|
|
121
|
+
|
|
122
|
+
**Se HTTP ≠ 200:**
|
|
123
|
+
- 401 (chave inválida/revogada) → "Achei uma chave OpenAI configurada, mas a validação retornou 401 (chave inválida ou revogada). Fluxo: você gera nova chave OU me manda outra que eu sobrescrevo. Continuar?" → cai no fluxo normal abaixo (passo 2 — instruir geração)
|
|
124
|
+
- 429 (sem saldo) → "A chave funciona, mas a conta tá sem crédito. Adiciona $5 em platform.openai.com/billing e me chama de volta com 'continua' que eu valido de novo."
|
|
125
|
+
- Outro → mostrar output literal + investigar com aluno (P14)
|
|
126
|
+
|
|
127
|
+
**Se NEM env var NEM .env tem chave:**
|
|
128
|
+
|
|
129
|
+
Comportamento normal — entrevistar conforme fluxo tradicional abaixo (passo 1).
|
|
130
|
+
|
|
131
|
+
**Por que Fast-path independente de ambiente:** caso Rodrigo (VPS root com chave) era idêntico ao caso Managed em termos de UX — aluno já tinha chave, agente devia detectar. Condicional `ambiente == managed` excluía 15k VPS legados sem motivo. Agora cobertura é universal.
|
|
132
|
+
|
|
133
|
+
**Princípio 11 estendido (kit v2.1):** detectar ANTES de instruir. Aqui aplica direto — chave existe e funciona = pula entrevista, mesmo padrão pra qualquer ambiente.
|
|
134
|
+
|
|
50
135
|
### 4 estados detectáveis
|
|
51
136
|
|
|
52
137
|
| Estado | Ação |
|
|
@@ -58,31 +143,83 @@ Sem ele, aluno passa a jornada inteira digitando. Com ele, passa falando. Mudan
|
|
|
58
143
|
|
|
59
144
|
## Fluxo principal (quando precisa pedir chave)
|
|
60
145
|
|
|
61
|
-
### 1. Narrar o que vai acontecer
|
|
146
|
+
### 1. Narrar o que vai acontecer (SÓ se detecção do P11 mostrou que precisa pedir)
|
|
147
|
+
|
|
148
|
+
⚠️ Se Princípio 11 acima mostrou **chave válida**: PULE este passo, vá direto pro smoke test (passo 5). Mensagem: "✓ Achei sua chave OpenAI no .env, validei, funcionando. Whisper + memória semântica já estão prontos. Vou rodar smoke test pra confirmar."
|
|
149
|
+
|
|
150
|
+
⚠️ Se chave NÃO existe ou tá inválida, USA esse texto:
|
|
62
151
|
|
|
63
152
|
```
|
|
64
153
|
"Antes da gente começar a jornada principal, vou configurar uma coisa
|
|
65
|
-
que destrava
|
|
154
|
+
que destrava muito: transcrição de áudio + memória semântica.
|
|
66
155
|
|
|
67
|
-
|
|
68
|
-
|
|
156
|
+
Pra que serve a chave OpenAI:
|
|
157
|
+
1. **Whisper** — transcrever áudio que você manda (no celular, no carro,
|
|
158
|
+
fala em vez de digitar)
|
|
159
|
+
2. **Memória semântica** — embeddings que me deixam "lembrar" coisas
|
|
160
|
+
pelo SIGNIFICADO, não só pelo texto exato (recall de decisões
|
|
161
|
+
antigas, padrões em conteúdo, etc)
|
|
69
162
|
|
|
70
|
-
Pra ativar, preciso de uma chave da OpenAI (a empresa do ChatGPT).
|
|
71
163
|
Custa centavos por mês de uso (~R$2-5 pra uso pessoal médio).
|
|
72
164
|
|
|
73
|
-
**Você
|
|
165
|
+
**Você já tem chave OpenAI configurada, ou precisa de ajuda pra pegar?**
|
|
74
166
|
|
|
75
|
-
→ Se já tem: só me manda aqui que eu salvo
|
|
76
|
-
→ Se quer ajuda: te guio passo-a-passo (cadastro
|
|
77
|
-
→ Se
|
|
167
|
+
→ Se já tem (mas não tá no meu .env ainda): só me manda aqui que eu salvo
|
|
168
|
+
→ Se quer ajuda pra pegar: te guio passo-a-passo (cadastro → cartão → gera chave). 5min.
|
|
169
|
+
→ Se prefere avançar pro próximo passo: manda 'pula' que eu te dou 2 opções de retomada."
|
|
78
170
|
```
|
|
79
171
|
|
|
80
172
|
Esperar resposta:
|
|
81
173
|
- Se aluno mandar a chave direto (começa com `sk-proj-` ou `sk-`): pular pro passo 3 (validar) — não precisa instruir geração.
|
|
82
174
|
- Se aluno mandar "ajuda" / "preciso ajuda" / "como pegar": ir pro passo 2 (instruir geração passo-a-passo).
|
|
83
|
-
- Se aluno mandar "pulo" / "depois" / "deixa pra depois": marcar `whisper_skipped=true`
|
|
175
|
+
- Se aluno mandar "pulo" / "depois" / "deixa pra depois": ir pro passo 1.5 (tratar pulo com agenda vs definitivo) — **NÃO** marcar `whisper_skipped=true` direto.
|
|
84
176
|
- Outras respostas ambíguas ("já tenho" sem mandar a chave): pedir pra mandar a chave.
|
|
85
177
|
|
|
178
|
+
### 1.5. Tratar pulo (agendar 24h vs definitivo) — v1.9
|
|
179
|
+
|
|
180
|
+
⚠️ **Nova seção v1.9 (Bruno feedback):** quando aluno escolhe pular uma etapa, NÃO marca `whisper_skipped=true` direto. Pergunta antes se quer agendar lembrete ou pular definitivo. Razão: pulo silencioso vira pendência órfã que aluno nunca lembra de retomar.
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
"Beleza, pulando o Whisper. Antes de avançar, escolhe uma:
|
|
184
|
+
|
|
185
|
+
1. **Agendo lembrete pra daqui 24h** — te chamo aqui no Telegram amanhã
|
|
186
|
+
pra retomar esse passo (volta a perguntar se quer ativar)
|
|
187
|
+
|
|
188
|
+
2. **Pulo definitivamente** — saio do caminho normal. Você pode voltar
|
|
189
|
+
quando quiser, é só me pedir 'ativa whisper' (ou 'configura whisper')
|
|
190
|
+
|
|
191
|
+
Manda 1 ou 2."
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Comportamento por resposta:**
|
|
195
|
+
|
|
196
|
+
| Resposta | Ação |
|
|
197
|
+
|---|---|
|
|
198
|
+
| `1` ou "agenda" / "lembra" / "amanhã" | Marcar `whisper_reminder_at: {NOW + 24h ISO}` em MEMORY.md. Confirmar: "Anotado. Te chamo amanhã (≈ {DATA_HORA_LOCAL}). Bora pro próximo passo." |
|
|
199
|
+
| `2` ou "definitivo" / "pula tudo" | Marcar `whisper_skipped_permanently: true` em MEMORY.md. Confirmar: "Beleza, pulando definitivo. Lembrete: pode voltar quando quiser, é só me pedir 'ativa whisper'." |
|
|
200
|
+
| Resposta ambígua | Repetir as 2 opções uma vez. Se persistir ambíguo, default seguro: opção 2 (pular definitivo, com aviso de retomada). |
|
|
201
|
+
|
|
202
|
+
**Mecanismo do agendamento (v1.9 = MVP passivo):**
|
|
203
|
+
|
|
204
|
+
- Flag `whisper_reminder_at: {timestamp}` é gravada em MEMORY.md
|
|
205
|
+
- Quando aluno **abrir o Telegram naturalmente** depois das 24h, agente detecta a flag vencida e dispara mensagem de retomada — não precisa de cron-DM ativo
|
|
206
|
+
- **Limitação consciente:** se aluno não voltar, lembrete não chega. Aceito como tradeoff até cron-worker por aluno existir (depende da Onda 12 — detecção ambiente Managed/VPS + infra de cron-DM ativo)
|
|
207
|
+
- Mensagem de retomada (quando agente detecta flag vencida na próxima sessão): "Oi, lembra que você pediu pra eu te chamar sobre o Whisper? Quer ativar agora ou empurra mais?" → reabre 1.5
|
|
208
|
+
|
|
209
|
+
**Independente da escolha (1 ou 2), salvar em MEMORY.md:**
|
|
210
|
+
|
|
211
|
+
```markdown
|
|
212
|
+
## Flags
|
|
213
|
+
whisper_skip_choice: agendado | definitivo
|
|
214
|
+
whisper_reminder_at: 2026-05-04T22:55:00-03:00 # só se opção 1
|
|
215
|
+
whisper_skipped_permanently: true # só se opção 2
|
|
216
|
+
|
|
217
|
+
## Decisões da jornada
|
|
218
|
+
- {data}: Pulou o passo 0 (Whisper) — escolha: {agendado | definitivo}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
Após gravar flag e confirmar, **devolve controle pra `onboarding-checklist`** que segue pro passo 1.
|
|
222
|
+
|
|
86
223
|
### 2. Instruir como gerar chave
|
|
87
224
|
|
|
88
225
|
```
|
|
@@ -3,15 +3,34 @@ name: wizard-workspace
|
|
|
3
3
|
status: ATIVO
|
|
4
4
|
category: starter
|
|
5
5
|
owner: aluno
|
|
6
|
-
version: 1.
|
|
6
|
+
version: 1.1
|
|
7
7
|
mode: guided
|
|
8
8
|
estimated_time: 4min
|
|
9
9
|
model_compatible: [gpt-5, gpt-5.5, claude-sonnet-4, claude-opus-4, gemini-pro]
|
|
10
|
-
description: Use when student types "organiza workspace" / "cria mapa", OR when dispatched by onboarding-checklist as passo 4. Creates minimal workspace structure (content/, memory/, skills/, archive/) + MAPA.md raiz + 4 local MAPAs (Princípio 12 — mapas distribuídos). Detects existing structure first (Princípio 11). Depends on passo 3 (autonomia) — without yolo, every mkdir asks for approval.
|
|
10
|
+
description: Use when student types "organiza workspace" / "cria mapa", OR when dispatched by onboarding-checklist as passo 4. Creates minimal workspace structure (content/, memory/, skills/, archive/) + MAPA.md raiz + 4 local MAPAs (Princípio 12 — mapas distribuídos). Detects existing structure first (Princípio 11). Depends on passo 3 (autonomia) — without yolo, every mkdir asks for approval. v1.1 (kit v2.2): header com Princípios 13/14/15 explícitos no topo (auditoria pós-v2.1).
|
|
11
11
|
---
|
|
12
12
|
|
|
13
13
|
# Wizard Workspace — Passo 4 (Estrutura mínima + mapas distribuídos)
|
|
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.** Trechos marcados `<canonical>...</canonical>` usam 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 — Telegram faz word-wrap natural.
|
|
31
|
+
>
|
|
32
|
+
> Detalhes: `../onboarding-checklist/references/principios-defensivos.md` (P1–P17).
|
|
33
|
+
|
|
15
34
|
## Promessa
|
|
16
35
|
|
|
17
36
|
Em 4min, o workspace do aluno passa de "pasta vazia" pra "estrutura mínima com lugar pra cada coisa". 4 pastas (`content/`, `memory/`, `skills/`, `archive/`) + 1 MAPA raiz + 4 mapas locais (Princípio 12).
|
|
@@ -354,7 +373,7 @@ Fechar com:
|
|
|
354
373
|
```
|
|
355
374
|
"Se quer aprofundar workspace + sistema de mapas (e por que cada
|
|
356
375
|
pasta tem MAPA.md local em vez de TOOLS.md gigante), a aula é a
|
|
357
|
-
|
|
376
|
+
Aula 6 (Organizando Workspace) — manda 'aula 6'.
|
|
358
377
|
|
|
359
378
|
E se ficou alguma dúvida que eu não cobri, dois caminhos no grupo:
|
|
360
379
|
- resposta rápida 24/7: chama @Openclawzinho (bot IA) no tópico Suporte
|
|
@@ -397,7 +416,7 @@ Atualizar `onboarding_current_step: 5`.
|
|
|
397
416
|
- **Aluno tem `exec-policy=ask` (passo 3 não foi liberado):** wizard fica perguntando aprovação a cada mkdir. Avisar antes (ver "Dependência: passo 3" no início).
|
|
398
417
|
- **Workspace tem conteúdo legado:** Princípio 10 (backup global) cobre. Tar.gz na pasta backups antes.
|
|
399
418
|
- **Aluno não entende por que tem MAPA por pasta:** explicar Princípio 12. "Pasta gigante com tudo (TOOLS.md) cresce sem controle. Pasta documentada localmente cresce no escopo dela. Mais sustentável."
|
|
400
|
-
- **Aluno quer adicionar `pendencias.md` já no setup:** ok, mas avisar que isso é da
|
|
419
|
+
- **Aluno quer adicionar `pendencias.md` já no setup:** ok, mas avisar que isso é da Aula 7 (Boas Práticas para melhorar a Memória). Pode criar agora vazio.
|
|
401
420
|
- **Aluno quer pular essa pasta (skills/, archive/):** explicar que estrutura mínima é mínima por design. Pular skills/ ou archive/ quebra wizards futuros (passo 5 instala skills, passo 6 pode arquivar drafts).
|
|
402
421
|
|
|
403
422
|
## Aplicação dos princípios defensivos
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# HEARTBEAT.md
|
|
2
|
+
|
|
3
|
+
> Configuração do mecanismo de proatividade do agente. Define COMO ele vigia
|
|
4
|
+
> seu dia. O que ele vigia mora em `memory/hot.md` (auto-mantido).
|
|
5
|
+
>
|
|
6
|
+
> Edite este arquivo quando quiser mudar comportamento (frequência, checks,
|
|
7
|
+
> regras de silêncio). O agente recarrega no próximo poll.
|
|
8
|
+
|
|
9
|
+
## Frequência
|
|
10
|
+
|
|
11
|
+
- **Poll a cada:** [30 minutos]
|
|
12
|
+
- **Janela ativa:** [08:00 às 22:00]
|
|
13
|
+
- **Quiet hours:** [22:00 às 08:00] — só interrompe em urgência real
|
|
14
|
+
|
|
15
|
+
## Checks rotacionáveis
|
|
16
|
+
|
|
17
|
+
> O agente sorteia 2-4 destas por heartbeat (não checa todas juntas — vira ruído).
|
|
18
|
+
> Comente com `#` as que não quer ativar agora.
|
|
19
|
+
|
|
20
|
+
- [ ] **Inbox triage** — emails das últimas 4h, classifica em [urgente/pode esperar/lixo], avisa só urgentes
|
|
21
|
+
- [ ] **Calendário próximo** — próximas 24-48h, lembra de evento amanhã 1 dia antes às 18h
|
|
22
|
+
- [ ] **Mention sweep** — LinkedIn/Twitter/menções, só relevantes pro negócio
|
|
23
|
+
- [ ] **Pendências paradas** — itens em `pendencias.md` com nome de terceiro parado 3+ dias
|
|
24
|
+
- [ ] **Memory maintenance** — a cada 3 dias, extrai aprendizados de `memory/YYYY-MM-DD.md` pra `MEMORY.md`
|
|
25
|
+
- [ ] **Weather guard** — se evento externo hoje, checa previsão e avisa só se chuva real
|
|
26
|
+
- [ ] **News watch** — 2-3 fontes que importam (newsletters, RSS), só se algo realmente novo
|
|
27
|
+
|
|
28
|
+
## Regras de silêncio (anti-spam)
|
|
29
|
+
|
|
30
|
+
- Já checou nos últimos 30min? → `HEARTBEAT_OK` (silencioso)
|
|
31
|
+
- Nada novo desde a última checagem? → silêncio (não mandar "tudo certo!" gratuito)
|
|
32
|
+
- Você em modo focado (call, trabalho profundo)? → segura mensagem não-urgente pro próximo break
|
|
33
|
+
- Quiet hours ativas? → só interrompe se for urgência real (deadline em 2h, alerta crítico)
|
|
34
|
+
|
|
35
|
+
## Regras de reach out (quando vale interromper)
|
|
36
|
+
|
|
37
|
+
- Email importante chegou (cliente ativo, prazo, financeiro)
|
|
38
|
+
- Evento começa em <2h e você ainda não confirmou
|
|
39
|
+
- Achou algo genuinamente interessante (oportunidade, ameaça, sinal forte)
|
|
40
|
+
- Faz mais de 8h sem dizer nada e tem coisa relevante acumulada
|
|
41
|
+
|
|
42
|
+
## Como o heartbeat consulta contexto
|
|
43
|
+
|
|
44
|
+
O heartbeat NÃO duplica memória. Ele lê `memory/hot.md` (auto-mantido pela
|
|
45
|
+
pipeline + skill /salve) pra saber:
|
|
46
|
+
|
|
47
|
+
- Top prioridades da semana
|
|
48
|
+
- Negociações ativas e próximos passos pendentes
|
|
49
|
+
- Decisões recentes
|
|
50
|
+
- Métricas-chave
|
|
51
|
+
- Prazos críticos por data
|
|
52
|
+
|
|
53
|
+
Se algum prazo de `hot.md` chega perto e ainda tá pendente, heartbeat te avisa.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
> **Histórico de ajustes:**
|
|
58
|
+
> - YYYY-MM-DD: criado pelo onboarding do Starter Kit
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# Templates — Starter Kit OpenClaw v2
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 2 grupos: **estruturais** (preenchidos pelos wizards na configuração inicial) e **de output** (usados pelo aluno pra produzir reports/material).
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 1. Templates estruturais (.md)
|
|
6
|
+
|
|
7
|
+
Templates raiz que os wizards usam pra criar arquivos no workspace do aluno durante o setup.
|
|
6
8
|
|
|
7
9
|
| Template | Usado pelo wizard | Cria no workspace |
|
|
8
10
|
|---|---|---|
|
|
@@ -11,8 +13,9 @@
|
|
|
11
13
|
| `AGENTS.template.md` | wizard-agente | `AGENTS.md` |
|
|
12
14
|
| `USER.template.md` | wizard-aluno | `USER.md` |
|
|
13
15
|
| `MAPA.template.md` | wizard-workspace | `MAPA.md` (raiz) |
|
|
16
|
+
| `HEARTBEAT.template.md` | wizard-autonomia (heartbeats) | `HEARTBEAT.md` |
|
|
14
17
|
|
|
15
|
-
|
|
18
|
+
### Como funcionam
|
|
16
19
|
|
|
17
20
|
Cada template tem **placeholders** entre chaves (ex: `{NOME_AGENTE}`, `{DATA}`). O wizard:
|
|
18
21
|
|
|
@@ -21,7 +24,7 @@ Cada template tem **placeholders** entre chaves (ex: `{NOME_AGENTE}`, `{DATA}`).
|
|
|
21
24
|
3. Substitui cada `{PLACEHOLDER}` pelo valor coletado
|
|
22
25
|
4. Salva o arquivo final no workspace do aluno
|
|
23
26
|
|
|
24
|
-
|
|
27
|
+
### Placeholders comuns
|
|
25
28
|
|
|
26
29
|
| Placeholder | Origem |
|
|
27
30
|
|---|---|
|
|
@@ -41,22 +44,71 @@ Cada template tem **placeholders** entre chaves (ex: `{NOME_AGENTE}`, `{DATA}`).
|
|
|
41
44
|
| `{NOME_USER}` | extraído de USER.md (campo `Como me chamar`) |
|
|
42
45
|
| `{DATA}` | data atual no formato YYYY-MM-DD |
|
|
43
46
|
|
|
44
|
-
|
|
47
|
+
### Mapas locais (criados pelo wizard-workspace)
|
|
48
|
+
|
|
49
|
+
Os 4 mapas locais (`content/MAPA.md`, `memory/MAPA.md`, `skills/MAPA.md`, `archive/MAPA.md`) são gerados **inline** pelo `wizard-workspace/SKILL.md` (não tem template `.md` separado pra eles). O conteúdo é simples e pouco varia por aluno — não compensa template separado.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 2. Templates de output (.html)
|
|
54
|
+
|
|
55
|
+
Templates de **artefato final** que o aluno usa pra gerar reports, diagnósticos e material didático ao longo do uso. Cumpre a promessa da Aula 8 do mini-curso ("vocês têm aqui o Template Report, Template Report Executivo, Material Didático").
|
|
56
|
+
|
|
57
|
+
| Template | Pra que serve | Paleta |
|
|
58
|
+
|---|---|---|
|
|
59
|
+
| `template-report.html` | Análise semanal · deep dive · post-mortem · review de campanha | teal/jade + dourado · slate dark |
|
|
60
|
+
| `template-report-executivo.html` | Diagnóstico estratégico · leitura pra board · decisão go/no-go · kick-off de cliente | violeta + rosa · deep purple-black |
|
|
61
|
+
| `template-material-didatico.html` | Aula · playbook · tutorial · guia passo-a-passo · material de mentoria | sky cyan + lime · navy ink |
|
|
62
|
+
|
|
63
|
+
### Como o aluno usa
|
|
64
|
+
|
|
65
|
+
1. Pede pro agente: "abre o template de report" / "preciso fazer um diagnóstico" / "gera material didático sobre X"
|
|
66
|
+
2. Agente copia o `.html` pro `content/drafts/{tema}.html` do aluno
|
|
67
|
+
3. Aluno preenche os `{{ MARCADORES }}` (ou pede pro agente preencher com base num briefing)
|
|
68
|
+
4. Aluno apaga seções que não usa, salva, exporta como PDF se quiser
|
|
69
|
+
|
|
70
|
+
### Características comuns aos 3
|
|
71
|
+
|
|
72
|
+
- **Logo Pixel** discreta no topo + footer com assinatura "Pixel Educação · Template oficial OpenClaw v2"
|
|
73
|
+
- **Não usam a paleta oficial Pixel** (laranja/azul-marinho). Cada template tem paleta própria pra evitar diluir a marca quando aluno publicar
|
|
74
|
+
- **Plus Jakarta Sans** (font universal Pixel — mantida)
|
|
75
|
+
- **Dark premium editorial** (estilo canônico Pixel — manteve direção visual, trocou só cromática)
|
|
76
|
+
- **Self-contained**: SVG do logo embutido em base64, fontes via Google CDN — funciona stand-alone, sem servidor
|
|
77
|
+
- **Comentários `<!-- aluno preenche aqui -->`** guiando preenchimento
|
|
78
|
+
- **Print-friendly** (CSS `@media print` configurado)
|
|
45
79
|
|
|
46
|
-
|
|
80
|
+
### Sanitização
|
|
47
81
|
|
|
48
|
-
|
|
82
|
+
Os 3 templates foram derivados de reports REAIS da Pixel (Roberto Rocha · Naatooh · Pixel AI Track) que vivem em `memory/assets/pixel-educacao/references/templates/`. Esses originais NÃO devem virar templates públicos — têm dados de cliente. As versões em `starter-kit/templates/` são as sanitizadas, com placeholders.
|
|
49
83
|
|
|
50
|
-
|
|
84
|
+
### Espelho no Google Drive (planejado)
|
|
85
|
+
|
|
86
|
+
A intenção é manter espelho público no Drive da Pixel pra alunos que preferem baixar e abrir no Word/Notion sem passar pelo agente. Estrutura sugerida:
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
📁 OpenClaw v2 — Templates (Drive público)
|
|
90
|
+
├── 📁 estruturais (preenche na Aula 5)
|
|
91
|
+
│ ├── IDENTITY.template.md
|
|
92
|
+
│ ├── SOUL-stub.template.md
|
|
93
|
+
│ ├── AGENTS.template.md
|
|
94
|
+
│ ├── USER.template.md
|
|
95
|
+
│ └── MAPA.template.md
|
|
96
|
+
└── 📁 outputs (mostra na Aula 8)
|
|
97
|
+
├── template-report.html
|
|
98
|
+
├── template-report-executivo.html
|
|
99
|
+
└── template-material-didatico.html
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
51
103
|
|
|
52
104
|
## Quando atualizar templates
|
|
53
105
|
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
- Quando wording melhorar (ex: revisar tom dos comentários no template)
|
|
106
|
+
- **Estruturais (.md):** quando estrutura padrão dos arquivos raiz mudar (ex: adicionar campo novo no IDENTITY) ou quando placeholder novo for necessário
|
|
107
|
+
- **Outputs (.html):** quando descobrir que aluno reclama de seção que falta, ou quando paleta/branding Pixel evoluir e fizer sentido refletir
|
|
57
108
|
|
|
58
|
-
**NÃO atualizar pra ajustes de UX dos wizards** — esses são os scripts (SKILL.md), não os
|
|
109
|
+
**NÃO atualizar pra ajustes de UX dos wizards** — esses são os scripts (SKILL.md), não os templates.
|
|
59
110
|
|
|
60
111
|
---
|
|
61
112
|
|
|
62
|
-
*Templates v1 — criados junto com
|
|
113
|
+
*Templates estruturais v1 — criados junto com Onda 2 dos wizards filhos (02/05/2026).*
|
|
114
|
+
*Templates de output v1 — criados pra cumprir promessa da Aula 8 da Hotmart (07/05/2026).*
|
|
@@ -19,7 +19,7 @@ Sou {NOME_AGENTE}, agente do {NOME_USER}.
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
21
|
> **STUB — versão inicial.**
|
|
22
|
-
> Esta SOUL.md vai crescer ao longo do uso. A
|
|
22
|
+
> Esta SOUL.md vai crescer ao longo do uso. A Aula 5 do mini-curso ensina a expandir.
|
|
23
23
|
> Quando você descobrir padrões de como QUER que eu me comporte, adiciona aqui.
|
|
24
24
|
> Veja `starter-kit/exemplos/SOUL-amora.md` pra exemplo de SOUL maduro (~150 linhas).
|
|
25
25
|
|