@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
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cron-resume-wizards
|
|
3
|
+
status: ATIVO
|
|
4
|
+
category: operacional
|
|
5
|
+
owner: agent (autônomo, sem aluno)
|
|
6
|
+
version: 1.3
|
|
7
|
+
mode: cron (background)
|
|
8
|
+
estimated_time: 2-5s por execução
|
|
9
|
+
model_compatible: [gpt-5, gpt-5.5, claude-sonnet-4, claude-opus-4, gemini-pro]
|
|
10
|
+
description: Cron-DM ATIVO. **v1.3 (kit v2.5.6 — humanização do tom + redução de frequência baseada em feedback Bruno): (1) Cron volta de 2x/dia (09h+19h) pra **1x/dia (09h BRT)** — feedback de aluno sentindo cobrança 2x ao dia + 3 tentativas era invasivo demais, parecia babá vigilante. Anti-hustle culture da Pixel pede tom mais respeitoso. (2) Anti-spam reduzido: **max 2 tentativas** (era 3) — depois marca `wizard_dismissed: true` em silêncio. 1.5 dia coberto vira ~1 dia. Aluno ainda pode pedir retomada via `continuar`. (3) Tom das DMs reescrito em primeira pessoa, sem menu rígido, voz humana — não cobra, oferece. (4) Respeita `wizard_nudge_silenced_until` (Princípio 19, kit v2.5.6) — se aluno usou `silencia wizard`, cron NÃO dispara DM até a flag expirar. (5) Princípio 18 mencionado como contexto: agente do aluno usa `_curso/INDICE.md` quando aluno mencionar tema da aula em retorno. v1.2 (kit v2.5 — stress test Mira round 2): (1) Inferência silenciosa — antes do guard `active_wizard != null`, verifica se aluno pausou silenciosamente (fechou Telegram sem comando explícito): se `last_user_message_at < now() - 12h` E `active_wizard != null` E `wizard_resume_at == null`, agente APLICA protocolo de pause (zera `active_wizard`, seta `wizard_resume_at: now()`, attempts:0); (2) Mapa tradução `{wizard_resume_step}` → linguagem natural (`wizard-autonomia.passo3` → `passo 3 (autonomia)`) em todas as 3 DMs canonical; (3) DMs incluem contagem `X/3` desde a 1ª tentativa pra aluno saber onde tá no ciclo. Caso real Mira: pausou no passo 3 fechando Telegram, ficou 4+ dias sem nudge porque guard bloqueava.** v1.1 (kit v2.4 — stress test Pedro): roda 2x/dia (09:00 + 19:00 BRT) — antes era só 09:00. Razão: aluno que pausa wizard "à noite" ficava 19h sem nudge (cron só na manhã seguinte). Cobertura matinal (09h pra começar dia) + noturna (19h pra retomar antes de dormir).** Lê MEMORY.md do próprio agente, detecta `wizard_resume_at` vencido, dispara DM canônica no Telegram pra retomar wizard pausado. Anti-loop: max 3 tentativas (`wizard_resume_attempts`), depois marca `wizard_dismissed: true` e para de tentar. Funciona em Managed (cron-worker OpenClaw) e VPS root (systemd timer). NUNCA dispara durante wizard ativo (`active_wizard != null`) — espera próximo ciclo. NOVA na v2.2 — upgrade do mecanismo passivo da v2.1.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Cron Resume Wizards — Cron-DM ATIVO de Retomada
|
|
14
|
+
|
|
15
|
+
> 🔴 **PRINCÍPIOS NÃO-NEGOCIÁVEIS PRO AGENTE (kit v2.2):**
|
|
16
|
+
>
|
|
17
|
+
> Esta skill é **autônoma** (rodada por cron, sem aluno na conversa). Mesmo assim, segue P14 + P15:
|
|
18
|
+
>
|
|
19
|
+
> **P14 — Smoke tests visíveis.** Toda execução loga no `MEMORY.md` (seção `## Cron log`) o que leu, o que decidiu, e o que mandou. NUNCA finge ter rodado. Se falhou ao enviar DM, loga erro com timestamp. Aluno (ou Bruno) consegue auditar histórico depois.
|
|
20
|
+
>
|
|
21
|
+
> **P15 — Mensagem da DM é CANONICAL.** Texto exato definido na seção "DM canônica" abaixo. NÃO reformular, NÃO criar variações "mais naturais" por execução. Variar tom de DM proativa cria confusão — aluno precisa reconhecer o padrão.
|
|
22
|
+
>
|
|
23
|
+
> Detalhes: `../../starter/onboarding-checklist/references/principios-defensivos.md` (P1–P15).
|
|
24
|
+
|
|
25
|
+
## Promessa
|
|
26
|
+
|
|
27
|
+
Aluno que pausou wizard (cancelou no meio, ou 3 desvios consecutivos dispararam pause automático) recebe DM proativa no Telegram quando o `wizard_resume_at` vence — sem precisar voltar ao chat por conta própria.
|
|
28
|
+
|
|
29
|
+
Resolve gap real: aluno fecha Telegram, vai dormir, volta 3 dias depois e esqueceu da pendência. Sem nudge ativo, wizard "morria" silencioso. Versão passiva (v2.1) só ajudava quando aluno já estava voltando — não puxa o cara de volta.
|
|
30
|
+
|
|
31
|
+
## Quando disparar
|
|
32
|
+
|
|
33
|
+
**Trigger (apenas cron interno do agente — NÃO comando do aluno):**
|
|
34
|
+
- Cron registrado no agente, default **2 ciclos diários: 09:00 + 19:00 BRT** (kit v2.4)
|
|
35
|
+
- Cobertura matinal (aluno começando o dia) + noturna (aluno antes de dormir)
|
|
36
|
+
- Qualquer ambiente: Managed via `openclaw cron create`, VPS root via systemd timer ou crontab
|
|
37
|
+
|
|
38
|
+
**Por que 1 ciclo (kit v2.5.6 — feedback Bruno + DNA anti-hustle Pixel):**
|
|
39
|
+
|
|
40
|
+
v1.1 tinha 2 ciclos (09h + 19h). Feedback prático: aluno sentia cobrança 2x ao dia + 3 tentativas total (até 1.5 dia de cobertura) virava **babá vigilante**, contradizia o anti-hustle culture da Pixel. Aluno PME adulto não precisa ser tratado como criança que esquece.
|
|
41
|
+
|
|
42
|
+
v1.3 volta pra **1 ciclo diário (09h BRT)** + **max 2 tentativas**. Cobertura cai pra ~24h, mas:
|
|
43
|
+
- Aluno que pausa 16h e fica ativo continua tendo Princípio 19 (estagnação suave) durante a sessão
|
|
44
|
+
- Aluno que sumiu mesmo recebe 1 DM no dia seguinte 09h. Se não responder, mais uma DM 24h depois (09h do dia 2). Daí marca `dismissed` em silêncio.
|
|
45
|
+
|
|
46
|
+
**Anti-spam v1.3:** `wizard_resume_attempts` incrementa 1 por DM enviada. **2 tentativas** = ~1 dia coberto. Aluno pode reativar quando quiser via `continuar`.
|
|
47
|
+
|
|
48
|
+
**Histórico (kit v2.4 — fix stress test Pedro):** Pedro pausou às 16h falando "volto à noite", recebia DM só na manhã seguinte. Mas a v1.3 detectou que cron mais frequente trazia OUTRO problema (cobrança). Princípio 19 (estagnação durante sessão ativa) substitui parcialmente o que v1.1 tentava — Pedro veria header sutil às 16h35, sem precisar esperar cron.
|
|
49
|
+
|
|
50
|
+
**NÃO disparar manualmente:**
|
|
51
|
+
- Aluno NÃO tem comando explícito pra essa skill — é background only
|
|
52
|
+
- Se aluno mandar "reativa wizard" / "continuar", a skill responsável é `continuar-jornada` (síncrona)
|
|
53
|
+
|
|
54
|
+
## Comportamento detalhado
|
|
55
|
+
|
|
56
|
+
### Passo 1 — Ler MEMORY.md
|
|
57
|
+
|
|
58
|
+
Lê o `MEMORY.md` do próprio agente. Procura no frontmatter ou seção dedicada as flags:
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
active_wizard: null|wizard-X # wizard rodando agora
|
|
62
|
+
last_user_message_at: 2026-05-04T08:30 # quando aluno mandou última msg (qualquer)
|
|
63
|
+
wizard_resume_at: 2026-05-04T09:00 # ISO timestamp (pause explícito)
|
|
64
|
+
wizard_resume_step: wizard-conectar.passo3
|
|
65
|
+
wizard_resume_attempts: 0
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Passo 1.5 — Inferência silenciosa (kit v2.5 — fix Mira)
|
|
69
|
+
|
|
70
|
+
⚠️ **NOVO em v2.5:** ANTES dos checks abaixo, verificar se aluno pausou silenciosamente (fechou Telegram sem mandar `cancela` nem disparar 3 desvios).
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Se `active_wizard != null` E `wizard_resume_at` está null E `last_user_message_at < now() - 12h`:
|
|
74
|
+
→ aluno pausou silenciosamente
|
|
75
|
+
→ APLICAR protocolo de pause (ver principios-defensivos.md):
|
|
76
|
+
- active_wizard: null
|
|
77
|
+
- wizard_resume_at: now() # vence imediatamente, próximo ciclo dispara DM
|
|
78
|
+
- wizard_resume_step: {wizard ativo}.{active_step}
|
|
79
|
+
- wizard_resume_attempts: 0
|
|
80
|
+
→ Continuar pro Passo 2 (smoke test) e Passo 3 (DM)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**12h é conservador.** Aluno em meeting longo ou viagem volta dentro desse range. 24h também é defensável — escolha 12h pra capturar maioria dos casos sem ser agressivo.
|
|
84
|
+
|
|
85
|
+
### Passo 2 — Decisão de envio
|
|
86
|
+
|
|
87
|
+
**Se `wizard_resume_at` não existe ou é `null` (E não inferiu silenciosa acima):** sem trabalho, loga `nada a fazer` e termina.
|
|
88
|
+
|
|
89
|
+
**Se `wizard_resume_at > now()`:** ainda não venceu, loga `aguardando` e termina.
|
|
90
|
+
|
|
91
|
+
**Se `wizard_resume_attempts >= 2`** (kit v2.5.6 reduzido de 3 → 2)**:** anti-loop ativo, marca `wizard_dismissed: true`, limpa flags de resume, loga `dismissed após 2 tentativas` e termina silenciosamente. Aluno pode reativar a qualquer momento via comando `continuar` (síncrono, despacha `continuar-jornada`).
|
|
92
|
+
|
|
93
|
+
**Se `wizard_nudge_silenced_until > now()`** (kit v2.5.6 — Princípio 19): aluno usou comando `silencia wizard` recentemente. NÃO disparar DM. Loga `silenciado até {timestamp}` e termina. Quando flag expirar, próximo ciclo dispara normalmente se ainda houver pendência.
|
|
94
|
+
|
|
95
|
+
**Se `active_wizard != null` E NÃO foi caso de inferência silenciosa acima:** aluno acabou de retomar wizard agora — NÃO interromper. Loga `wizard ativo, pulando ciclo` e termina.
|
|
96
|
+
|
|
97
|
+
⚠️ **Distinção crítica v2.5:** o guard `active_wizard != null` continua válido pra wizard que RECEBEU resposta recente do aluno (sub-12h). Pra pausa silenciosa (12h+ sem msg), o Passo 1.5 já zerou `active_wizard` antes de chegar aqui.
|
|
98
|
+
|
|
99
|
+
### Passo 2 — Smoke test do canal
|
|
100
|
+
|
|
101
|
+
Antes de mandar DM, valida que canal Telegram tá acessível. Comando exato (P14):
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
curl -s -o /dev/null -w "%{http_code}" \
|
|
105
|
+
"https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/getMe"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Output esperado: `200`. Se != 200, ABORTA, loga erro com HTTP code, NÃO incrementa attempts (problema é nosso, não do aluno).
|
|
109
|
+
|
|
110
|
+
### Passo 3 — Enviar DM canônica
|
|
111
|
+
|
|
112
|
+
Se canal OK, monta DM usando texto canônico abaixo + envia via `sendMessage` API:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
curl -s -X POST \
|
|
116
|
+
"https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \
|
|
117
|
+
-d "chat_id=${STUDENT_TELEGRAM_ID}" \
|
|
118
|
+
-d "text=${DM_CANONICA}" \
|
|
119
|
+
-d "parse_mode=Markdown"
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Output capturado em log. Se response não é `"ok": true`, retry 1x, depois aborta com erro logado.
|
|
123
|
+
|
|
124
|
+
### Passo 4 — Atualizar MEMORY.md
|
|
125
|
+
|
|
126
|
+
Se DM enviada com sucesso:
|
|
127
|
+
- Incrementa `wizard_resume_attempts` em 1
|
|
128
|
+
- NÃO limpa `wizard_resume_at` ainda (espera aluno responder; se não responder, próximo ciclo tenta de novo OU marca dismissed quando attempts == 3)
|
|
129
|
+
- Adiciona entry em `## Cron log`:
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
- 2026-05-04 09:00:03 BRT — cron-resume-wizards: DM enviada (tentativa 1/3) pra retomar `wizard-conectar.passo3`
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Passo 5 — Cleanup quando aluno responde
|
|
136
|
+
|
|
137
|
+
Esta skill NÃO acompanha resposta — é fire-and-forget. A retomada propriamente dita é responsabilidade da skill `continuar-jornada` (que é triggered pela próxima mensagem do aluno).
|
|
138
|
+
|
|
139
|
+
Quando `continuar-jornada` retoma com sucesso, ela limpa `wizard_resume_at`, `wizard_resume_step`, `wizard_resume_attempts`. Loop fechado.
|
|
140
|
+
|
|
141
|
+
## DM canônica (P15 — usar LITERAL)
|
|
142
|
+
|
|
143
|
+
⚠️ **kit v2.5:** todas as DMs traduzem `{wizard_resume_step}` em linguagem natural + incluem contagem `X/3` desde a 1ª tentativa pra aluno saber onde tá no ciclo.
|
|
144
|
+
|
|
145
|
+
### Mapa de tradução `{wizard_resume_step}` → linguagem natural
|
|
146
|
+
|
|
147
|
+
| `wizard_resume_step` (técnico) | `{passo_natural}` (pra aluno) |
|
|
148
|
+
|---|---|
|
|
149
|
+
| `wizard-whisper-quick.passo0` ou `.passo*` | "passo 0 (áudio)" |
|
|
150
|
+
| `wizard-agente.passo*` | "passo 1 (personalidade do agente)" |
|
|
151
|
+
| `wizard-aluno.passo*` | "passo 2 (sua personalidade)" |
|
|
152
|
+
| `wizard-autonomia.passo*` | "passo 3 (autonomia)" |
|
|
153
|
+
| `wizard-workspace.passo*` | "passo 4 (workspace)" |
|
|
154
|
+
| `wizard-conectar.passo*` | "passo 5 (conectar superpoderes)" |
|
|
155
|
+
| `primeira-vitoria.passo*` | "passo 6 (primeira vitória)" |
|
|
156
|
+
|
|
157
|
+
⚠️ **Strings curtas + naturais.** Aluno PME lê "passo 3 (autonomia)" mais rápido que "passo 3 (liberar autonomia)". Verbos desnecessários no rótulo só aumentam ruído visual.
|
|
158
|
+
|
|
159
|
+
Substituir `{passo_natural}` nas DMs abaixo.
|
|
160
|
+
|
|
161
|
+
### Tentativa 1 (kit v2.5.6 — voz humana, sem cobrança · `wizard_resume_attempts: 0 → 1`)
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
Oi! Quando a gente parou ontem, você tava no {passo_natural} do starter-kit. Queria saber se você quer retomar — sem pressão.
|
|
165
|
+
|
|
166
|
+
Manda **`continuar`** que eu volto exatamente de onde paramos.
|
|
167
|
+
|
|
168
|
+
Se preferir não voltar, tudo bem também: **`pula`** que eu tiro da fila e a gente segue só com o que você quiser.
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Tentativa 2 (kit v2.5.6 — última e respeitosa · `wizard_resume_attempts: 1 → 2`)
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
Última vez que eu te chamo sobre isso, prometo. Você ainda tem o {passo_natural} pausado.
|
|
175
|
+
|
|
176
|
+
Se quiser, manda **`continuar`** — eu reabro de onde paramos.
|
|
177
|
+
|
|
178
|
+
Se não, sem problema: a partir de agora não te lembro mais disso. Você pode reativar quando quiser com **`continuar`** mesmo (a flag fica salva).
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
⚠️ **Removido em v2.5.6:** Tentativa 3 — antes era "última tentativa (3/3)" com tom de prazo. v2.5.6 reduz pra max 2 tentativas + tom respeitoso. Anti-hustle culture > completude.
|
|
182
|
+
|
|
183
|
+
**Tom:** primeira pessoa, sem menu rígido, sem urgência fabricada. Aluno PME adulto. Princípio: **oferece, não cobra**. Se aluno ignorou 2x, é porque ele decidiu — kit respeita silenciosamente.
|
|
184
|
+
|
|
185
|
+
**Ajuste de SOUL:** seguir SOUL.md do agente (formal/casual). Estrutura, ordem, opções e formatação **preservadas**. Tom-base humano não pode virar "robôtico" ou "vendedor de academia" mesmo se SOUL pedir.
|
|
186
|
+
|
|
187
|
+
**Falhas que isso PREVINE:**
|
|
188
|
+
|
|
189
|
+
1. **(Caso real Mira stress test 03/05 madrugada):** DM tentativa 1 dizia `{wizard_resume_step}` cru ("wizard-autonomia.passo3") — aluno PME não entende jargão interno. Mantida a tradução pra `{passo_natural}`.
|
|
190
|
+
2. **(Insight pós-Mira/Pedro 07/05):** 3 tentativas com tom imperativo ("Última tentativa", "tiro da fila") parecia cobrança. Aluno desliga mentalmente nas DMs 2 e 3. v2.5.6 reduz pra 2 + linguagem que oferece em vez de cobrar.
|
|
191
|
+
|
|
192
|
+
## Configuração de cron por ambiente
|
|
193
|
+
|
|
194
|
+
### Managed (OpenClaw cron-worker) — 1 ciclo diário (kit v2.5.6)
|
|
195
|
+
|
|
196
|
+
Aluno (ou skill `wizard-conectar` v2.0+ no fluxo de instalação do kit) roda no Managed:
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
openclaw cron create \
|
|
200
|
+
--name "Cron Resume Wizards" \
|
|
201
|
+
--schedule "0 9 * * *" \
|
|
202
|
+
--skill "cron-resume-wizards" \
|
|
203
|
+
--description "Cron-DM ativo 1x/dia (09:00 BRT) de retomada de wizards pausados (kit v2.5.6 — humanizado)"
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
⚠️ **Mudança v1.3 (kit v2.5.6):** schedule volta de `0 9,19 * * *` (2x/dia) pra `0 9 * * *` (1x/dia 09h). Razão: feedback Bruno + DNA anti-hustle. 2x/dia + 3 tentativas virou cobrança invasiva. v1.3 mantém só matinal + max 2 tentativas + tom humano.
|
|
207
|
+
|
|
208
|
+
**Migração de instalações kit v2.4–v2.5.5:** quem já tem o cron com schedule `0 9,19 * * *` precisa atualizar pra `0 9 * * *`. Comando:
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
openclaw cron delete cron-resume-wizards
|
|
212
|
+
openclaw cron create \
|
|
213
|
+
--name "Cron Resume Wizards" \
|
|
214
|
+
--schedule "0 9 * * *" \
|
|
215
|
+
--skill "cron-resume-wizards"
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Ou em VPS root: `systemctl edit openclaw-resume-wizards.timer` e ajustar `OnCalendar`.
|
|
219
|
+
|
|
220
|
+
Verificação:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
openclaw cron list | grep cron-resume-wizards
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### VPS root (systemd timer) — 2 ciclos
|
|
227
|
+
|
|
228
|
+
`/etc/systemd/system/openclaw-resume-wizards.service`:
|
|
229
|
+
|
|
230
|
+
```ini
|
|
231
|
+
[Unit]
|
|
232
|
+
Description=Cron Resume Wizards (OpenClaw kit v2.4)
|
|
233
|
+
After=network.target
|
|
234
|
+
|
|
235
|
+
[Service]
|
|
236
|
+
Type=oneshot
|
|
237
|
+
User=root
|
|
238
|
+
WorkingDirectory=/root/.openclaw
|
|
239
|
+
ExecStart=/usr/local/bin/openclaw skill run cron-resume-wizards
|
|
240
|
+
StandardOutput=append:/var/log/openclaw-resume-wizards.log
|
|
241
|
+
StandardError=append:/var/log/openclaw-resume-wizards.log
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
`/etc/systemd/system/openclaw-resume-wizards.timer`:
|
|
245
|
+
|
|
246
|
+
```ini
|
|
247
|
+
[Unit]
|
|
248
|
+
Description=Run Resume Wizards 2x/day (09:00 + 19:00 BRT) — kit v2.4
|
|
249
|
+
|
|
250
|
+
[Timer]
|
|
251
|
+
OnCalendar=*-*-* 09:00:00
|
|
252
|
+
OnCalendar=*-*-* 19:00:00
|
|
253
|
+
Persistent=true
|
|
254
|
+
|
|
255
|
+
[Install]
|
|
256
|
+
WantedBy=timers.target
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
Ativação:
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
systemctl daemon-reload
|
|
263
|
+
systemctl enable --now openclaw-resume-wizards.timer
|
|
264
|
+
systemctl list-timers | grep resume-wizards
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
### Alternativa simples — crontab regular (VPS sem systemd) — 2 ciclos
|
|
268
|
+
|
|
269
|
+
```cron
|
|
270
|
+
0 9,19 * * * cd /root/.openclaw && /usr/local/bin/openclaw skill run cron-resume-wizards >> /var/log/openclaw-resume-wizards.log 2>&1
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Schema MEMORY.md (resumo)
|
|
274
|
+
|
|
275
|
+
Flags relevantes (todas opcionais — skill funciona sem elas):
|
|
276
|
+
|
|
277
|
+
```yaml
|
|
278
|
+
# Setadas pelo wizard que pausou (ex: primeira-vitoria, qualquer wizard com 3 desvios)
|
|
279
|
+
wizard_resume_at: 2026-05-04T09:00:00-03:00
|
|
280
|
+
wizard_resume_step: wizard-conectar.passo3
|
|
281
|
+
wizard_resume_attempts: 0
|
|
282
|
+
|
|
283
|
+
# Setada por esta skill quando attempts == 3
|
|
284
|
+
wizard_dismissed: true # impede ciclos futuros pra esse passo
|
|
285
|
+
|
|
286
|
+
# Limpas pela continuar-jornada quando aluno retoma
|
|
287
|
+
# (todas as 3 acima viram null/removidas)
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## Logs (P14 — auditável)
|
|
291
|
+
|
|
292
|
+
Cada execução adiciona uma linha em `MEMORY.md` na seção `## Cron log`:
|
|
293
|
+
|
|
294
|
+
```markdown
|
|
295
|
+
## Cron log
|
|
296
|
+
|
|
297
|
+
- 2026-05-03 09:00:02 BRT — cron-resume-wizards: nada a fazer (sem wizard_resume_at)
|
|
298
|
+
- 2026-05-04 09:00:03 BRT — cron-resume-wizards: DM enviada (tentativa 1/3) pra `wizard-conectar.passo3`
|
|
299
|
+
- 2026-05-05 09:00:01 BRT — cron-resume-wizards: wizard_resume_at no futuro, aguardando
|
|
300
|
+
- 2026-05-06 09:00:04 BRT — cron-resume-wizards: dismissed após 3 tentativas, limpando flags
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Manter últimas 90 linhas. Mais antigas são truncadas.
|
|
304
|
+
|
|
305
|
+
## Princípios Defensivos (aplicação específica)
|
|
306
|
+
|
|
307
|
+
- **P3 (privilégio):** skill NUNCA executa elevação. Sem chamadas `exec-policy`, sem `sudo`. Só lê arquivo + faz HTTP request.
|
|
308
|
+
- **P5 (atualização MEMORY.md):** sempre atualiza após cada execução, mesmo "nada a fazer".
|
|
309
|
+
- **P9 (em erro, parar):** se DM falha, loga erro detalhado e termina. NÃO retry agressivo (próximo ciclo tenta de novo).
|
|
310
|
+
- **P11 (detectar antes):** detecta `active_wizard` antes de mandar DM — nunca interrompe wizard rodando.
|
|
311
|
+
- **P14 (smoke tests visíveis):** logs auditáveis no MEMORY.md, com timestamp, comando e output.
|
|
312
|
+
- **P15 (canonical):** DM literal, sem variações por execução.
|
|
313
|
+
|
|
314
|
+
## Roadmap
|
|
315
|
+
|
|
316
|
+
- **v1.1:** suportar múltiplas pendências (atualmente só 1 `wizard_resume_*` por vez; v1.1 vai armazenar lista FIFO)
|
|
317
|
+
- **v1.2:** horário customizável por aluno (lê preferência de USER.md, não hardcoded 09:00)
|
|
318
|
+
- **v1.3:** integração com `gera-log-jornada` — DMs enviadas viram entrada no log de feedback
|
|
319
|
+
- **v2.0:** detecção de fuso horário (alunos fora de BRT recebem 09:00 do TZ deles)
|
|
320
|
+
|
|
321
|
+
## Falhas que esta skill PREVINE
|
|
322
|
+
|
|
323
|
+
1. **Wizard morre silencioso (Bruno + aluno + outros, 03/05):** aluno pausa, esquece, nunca volta. Versão passiva da v2.1 só ajudava quando aluno tentava voltar. Cron-DM ativo PUXA aluno de volta no momento certo.
|
|
324
|
+
2. **Notificação SPAM (potencial sem anti-loop):** sem cap de 3 tentativas, agente vira chato. Limite + dismissed flag previnem.
|
|
325
|
+
3. **Interromper wizard ativo (potencial sem `active_wizard` check):** mandar DM "retoma X" enquanto aluno tá no meio de Y é UX horrível. Skill espera ciclo seguinte.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
*Skill criada na v2.2 (Onda 14). Padrão herdado de `backup-workspace-github` mas com mode `cron` em vez de `guided`.*
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: seguranca-checklist
|
|
3
|
+
status: RASCUNHO
|
|
4
|
+
category: operacional
|
|
5
|
+
owner: aluno
|
|
6
|
+
version: 0.1
|
|
7
|
+
mode: read-only
|
|
8
|
+
estimated_time: 2-3min (audit + report)
|
|
9
|
+
model_compatible: [gpt-5, gpt-5.5, claude-sonnet-4, claude-opus-4, gemini-pro]
|
|
10
|
+
description: Use when student types "audit segurança" / "checklist segurança" / "como tá minha segurança" / "scan agente", OR when dispatched monthly via cron (gancho A9). Roda 5 verificações de saúde de segurança no agente do aluno e gera report ranqueado por urgência. NÃO executa ações — só reporta. Princípio 3 dos defensivos: agente não escala permissão sozinho. Aluno revisa report e decide o que fazer.
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Seguranca Checklist — audit mensal de segurança do agente
|
|
14
|
+
|
|
15
|
+
## Promessa
|
|
16
|
+
|
|
17
|
+
Em ~2-3min, agente faz audit das 5 frentes de segurança da A10 (secrets · APIs/scope · canais · prompt injection · recovery) e devolve um relatório formatado no Telegram. Sem executar nada — só reporta o que tá frouxo, ranqueia por urgência e sugere próxima ação.
|
|
18
|
+
|
|
19
|
+
Pensado pra rodar **mensalmente via cron** (gancho A9 — meta-cron de auditoria) ou sob demanda quando aluno quer ver estado geral.
|
|
20
|
+
|
|
21
|
+
## Quando disparar
|
|
22
|
+
|
|
23
|
+
**Trigger automático (recomendado):**
|
|
24
|
+
- Cron mensal — dia 1 de cada mês, 9h BRT, sessão isolada, posta no tópico Operação
|
|
25
|
+
- Comando natural pra criar: *"cria um cron mensal dia 1 às 9h que roda o seguranca-checklist e me posta no tópico Operação"*
|
|
26
|
+
|
|
27
|
+
**Trigger explícito (sob demanda):**
|
|
28
|
+
- "audit segurança"
|
|
29
|
+
- "checklist segurança"
|
|
30
|
+
- "como tá minha segurança"
|
|
31
|
+
- "scan agente"
|
|
32
|
+
- "rola um seguranca-checklist"
|
|
33
|
+
|
|
34
|
+
**NÃO disparar se:**
|
|
35
|
+
- Já rodou nas últimas 24h (resultado em cache em `MEMORY.md` `last_security_audit`)
|
|
36
|
+
|
|
37
|
+
## Princípio fundador
|
|
38
|
+
|
|
39
|
+
**Princípio 3 dos defensivos** (`onboarding-checklist/references/principios-defensivos.md`): comandos de elevação de privilégio NUNCA via agente.
|
|
40
|
+
|
|
41
|
+
Esta skill é **read-only por design** — lê estado, gera report, devolve pro aluno decidir. Nenhum subcomando dela escreve, deleta, rotaciona ou conecta nada. Aluno é a única pessoa que abre porta nova.
|
|
42
|
+
|
|
43
|
+
## Fluxo principal
|
|
44
|
+
|
|
45
|
+
### 1. Detecção (5s)
|
|
46
|
+
|
|
47
|
+
Roda em paralelo as 5 verificações:
|
|
48
|
+
|
|
49
|
+
| # | Verificação | Como | Output esperado |
|
|
50
|
+
|---|-------------|------|-----------------|
|
|
51
|
+
| 1 | **Secrets em texto** | Lê `~/.openclaw/.env`, lista nomes de chaves (NÃO valores) | `OPENAI_API_KEY · BRAVE_SEARCH_API_KEY · GITHUB_TOKEN` |
|
|
52
|
+
| 2 | **Integrações ativas** | Lê `auth-profiles.json` ou equivalente, lista cada integração | Lista de canais + APIs conectados |
|
|
53
|
+
| 3 | **Devices conectados** | Roda `openclaw devices list` | Lista com data de último uso |
|
|
54
|
+
| 4 | **exec-policy atual** | Roda `openclaw exec-policy show` | `yolo` ou `ask` ou outro |
|
|
55
|
+
| 5 | **Snapshot Hostinger** | Lê data do último snapshot manual via API ou flag em `MEMORY.md` | Data ou "desconhecido" |
|
|
56
|
+
|
|
57
|
+
### 2. Análise (10s)
|
|
58
|
+
|
|
59
|
+
Para cada verificação, classifica em 1 de 4 status:
|
|
60
|
+
|
|
61
|
+
| Status | Critério | Cor visual no report |
|
|
62
|
+
|--------|----------|---------------------|
|
|
63
|
+
| **OK** | Tá saudável, sem ação necessária | verde |
|
|
64
|
+
| **ATENÇÃO** | Mudança recomendada mas não urgente | amarelo |
|
|
65
|
+
| **AGIR** | Risco real, precisa endereçar nesta semana | laranja |
|
|
66
|
+
| **CRÍTICO** | Risco imediato, agir hoje | vermelho |
|
|
67
|
+
|
|
68
|
+
Regras de classificação:
|
|
69
|
+
|
|
70
|
+
| Verificação | OK | ATENÇÃO | AGIR | CRÍTICO |
|
|
71
|
+
|-------------|-----|---------|------|---------|
|
|
72
|
+
| Secrets em texto | 0-3 chaves | 4-6 chaves | 7+ chaves | 1+ chave com nome contendo "PROD" ou "ROOT" ou "ADMIN" |
|
|
73
|
+
| Integrações | Todas com data <60d | Alguma com 60-90d | Alguma com >90d | Alguma desconhecida (sem data) |
|
|
74
|
+
| Devices | Todos com atividade <30d | Algum com 30-60d | Algum com >60d | Algum desconhecido pelo nome |
|
|
75
|
+
| exec-policy | yolo (esperado pós-A2) | ask (mais conservador, pode ser intencional) | reset (default = aluno reverteu sem documentar) | mismatch entre `MEMORY.md` e estado real |
|
|
76
|
+
| Snapshot | <30d | 30-60d | >60d | Desconhecido / nunca |
|
|
77
|
+
|
|
78
|
+
### 3. Report formatado (no Telegram)
|
|
79
|
+
|
|
80
|
+
Template:
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
📋 Seguranca Checklist — {data}
|
|
84
|
+
|
|
85
|
+
🟢 OK ({n_ok})
|
|
86
|
+
{itens com status OK, 1 linha cada}
|
|
87
|
+
|
|
88
|
+
🟡 ATENÇÃO ({n_atencao})
|
|
89
|
+
{item} — {sugestão de ação}
|
|
90
|
+
|
|
91
|
+
🟠 AGIR ESTA SEMANA ({n_agir})
|
|
92
|
+
{item} — {ação sugerida + por quê}
|
|
93
|
+
|
|
94
|
+
🔴 CRÍTICO ({n_critico})
|
|
95
|
+
{item} — {ação sugerida + por quê + comando exato pra você rodar}
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
Próxima ação prioritária: {ação ranqueada do mais urgente}
|
|
99
|
+
|
|
100
|
+
Quer que eu detalhe algum item? Manda o número.
|
|
101
|
+
Próximo audit: {dia 1 do próximo mês}.
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Exemplo concreto de output:
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
📋 Seguranca Checklist — 03/05/2026
|
|
108
|
+
|
|
109
|
+
🟢 OK (3)
|
|
110
|
+
- exec-policy: yolo (consistente com MEMORY)
|
|
111
|
+
- Snapshot Hostinger: 12d atrás (12/04)
|
|
112
|
+
- Devices: 2 ativos, todos com atividade <7d
|
|
113
|
+
|
|
114
|
+
🟡 ATENÇÃO (1)
|
|
115
|
+
- 5 secrets em texto no .env: OPENAI · BRAVE · GITHUB · NOTION · STRIPE
|
|
116
|
+
Sugestão: começar a migrar pra 1Password (cheatsheet seguranca-do-seu-agente.md)
|
|
117
|
+
|
|
118
|
+
🟠 AGIR ESTA SEMANA (1)
|
|
119
|
+
- Integração Stripe conectada há 92 dias sem rotação
|
|
120
|
+
Razão: chave nunca rotacionada = prazo de exposição alto se vazar
|
|
121
|
+
Sugestão: rotacionar este fim de semana
|
|
122
|
+
|
|
123
|
+
🔴 CRÍTICO (0)
|
|
124
|
+
✓ Nenhum item crítico.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
Próxima ação prioritária: rotacionar chave Stripe.
|
|
128
|
+
Quer que eu detalhe algum item? Manda o número.
|
|
129
|
+
Próximo audit: 01/06/2026.
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### 4. Atualizar MEMORY.md
|
|
133
|
+
|
|
134
|
+
```markdown
|
|
135
|
+
## Last security audit
|
|
136
|
+
- Data: 2026-05-03
|
|
137
|
+
- Status geral: ATENÇÃO (1) + AGIR (1)
|
|
138
|
+
- Próximo agendado: 2026-06-01
|
|
139
|
+
- Itens críticos pendentes: nenhum
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### 5. Não executar nenhuma ação
|
|
143
|
+
|
|
144
|
+
Skill termina aqui. Aluno revisa, decide o que fazer. Se aluno responder com "rotaciona Stripe agora", a skill **redireciona** pra outra skill apropriada (ou pro próprio agente em modo conversacional) — `seguranca-checklist` não rotaciona.
|
|
145
|
+
|
|
146
|
+
## Critérios de sucesso
|
|
147
|
+
|
|
148
|
+
- [ ] 5 verificações rodaram sem erro
|
|
149
|
+
- [ ] Report postado no tópico Operação (ou retornado em chat se sob demanda)
|
|
150
|
+
- [ ] `last_security_audit` atualizado em `MEMORY.md`
|
|
151
|
+
- [ ] Próxima execução agendada (se via cron)
|
|
152
|
+
- [ ] Nenhuma ação destrutiva executada
|
|
153
|
+
|
|
154
|
+
## Erros comuns
|
|
155
|
+
|
|
156
|
+
- **Permissão negada em `~/.openclaw/.env`**: skill detecta, reporta como "verificação 1: bloqueada por permissão". Não esconde o erro
|
|
157
|
+
- **`devices list` retorna vazio**: pode significar "nenhum aprovado" (legítimo dia 1) ou "permissão negada" — distinguir antes de classificar
|
|
158
|
+
- **Falha no comando `exec-policy show`**: insight do A10/lshell — agente roda em ambiente diferente do terminal lshell. Se falhar, reportar e sugerir aluno rodar manual no terminal Managed
|
|
159
|
+
- **Snapshot date desconhecido**: Hostinger pode não expor essa info via API. Plano B: ler flag `last_manual_snapshot` em `MEMORY.md` (atualizada manualmente pelo aluno depois de cada snapshot)
|
|
160
|
+
|
|
161
|
+
## Aplicação dos princípios defensivos
|
|
162
|
+
|
|
163
|
+
Esta skill herda os princípios universais da `onboarding-checklist`. Ver: [`../../starter/onboarding-checklist/references/principios-defensivos.md`](../../starter/onboarding-checklist/references/principios-defensivos.md).
|
|
164
|
+
|
|
165
|
+
### Aplicação específica
|
|
166
|
+
|
|
167
|
+
- **Princípio 3 (NUNCA elevação via agente)**: skill É read-only por design. Não roda comando que muda estado. Aluno decide
|
|
168
|
+
- **Princípio 4 (narrar antes de executar)**: report explica O QUE foi verificado e POR QUÊ aquele status — não só "agir aqui"
|
|
169
|
+
- **Princípio 7 (em dúvida, perguntar)**: se verificação retornar dado ambíguo (ex: device com nome desconhecido), classifica como CRÍTICO e pede aluno confirmar ao invés de assumir
|
|
170
|
+
- **Princípio 9 (parar se algo der errado)**: se 2+ verificações falharem por erro técnico, skill pausa e reporta "audit incompleto — N de 5 verificações falharam, investigue antes de continuar"
|
|
171
|
+
- **Princípio 11 (detectar antes de pedir)**: lê estado atual de cada item antes de classificar. Não assume nada
|
|
172
|
+
|
|
173
|
+
## Referências
|
|
174
|
+
|
|
175
|
+
### Internas
|
|
176
|
+
- A10 do roteiro principal: `memory/curso-openclaw/ROTEIRO-MAIN-V2-2026-05-02.md` — fundamentação dos 5 critérios
|
|
177
|
+
- Princípios defensivos: `../../starter/onboarding-checklist/references/principios-defensivos.md`
|
|
178
|
+
- Cheatsheet `seguranca-do-seu-agente.md` (a criar): tabelas de scope mínimo + bloco anti-injection + 4 botões de recovery
|
|
179
|
+
- Skill `backup-workspace-github` (já no kit): operação irmã na categoria operacional
|
|
180
|
+
|
|
181
|
+
### Externas
|
|
182
|
+
- OpenClaw CLI security commands: https://docs.openclaw.ai/cli/security
|
|
183
|
+
- OpenClaw devices: https://docs.openclaw.ai/cli/devices
|
|
184
|
+
- OpenClaw exec-policy: https://docs.openclaw.ai/cli/approvals (alias)
|
|
185
|
+
|
|
186
|
+
## Status
|
|
187
|
+
|
|
188
|
+
🟡 RASCUNHO desde 03/05/2026 — esboçada na sessão de fechamento da A10 do roteiro principal, antes de gravação. Pendências:
|
|
189
|
+
|
|
190
|
+
1. **Validar comando exato** pra ler última data de snapshot Hostinger (pode não existir API — plano B é flag manual em `MEMORY.md`)
|
|
191
|
+
2. **Validar comando exato** pra listar integrações ativas (`auth-profiles.json` é o caminho?)
|
|
192
|
+
3. **Decidir release**: v1.0 do kit (junto da A10) ou v1.1 (depois)?
|
|
193
|
+
4. **Cheatsheet `seguranca-do-seu-agente.md`** precisa ser criado em paralelo (referenciado pela skill)
|
|
194
|
+
|
|
195
|
+
## Roadmap
|
|
196
|
+
|
|
197
|
+
- v0.2: validações reais executadas + ajuste fino dos critérios baseado em primeira rodada com Bruno
|
|
198
|
+
- v0.3: integração com cron mensal documentada (template de comando natural)
|
|
199
|
+
- v1.0: pronta pra entrar no Starter Kit
|
|
200
|
+
- v1.1: detectar agente conectado em canal público sem prompt blindado (cruza com Princípio do Bloco 4 da A10)
|
|
201
|
+
- v1.2: detectar SOUL.md sem bloco anti-prompt-injection (cruza com Princípio do Bloco 5 da A10)
|
|
202
|
+
- v2: integração com 1Password Service Account quando OpenClaw lançar caminho first-class
|
|
@@ -7,14 +7,18 @@
|
|
|
7
7
|
|
|
8
8
|
| Skill | Status | Versão | Owner | Mode | Tempo |
|
|
9
9
|
|---|---|---|---|---|---|
|
|
10
|
-
| [`onboarding-checklist`](onboarding-checklist/SKILL.md) | ✅ ATIVO | 1.
|
|
11
|
-
| [`wizard-whisper-quick`](wizard-whisper-quick/SKILL.md) | ✅ ATIVO | 1.
|
|
12
|
-
| [`wizard-agente`](wizard-agente/SKILL.md) | ✅ ATIVO | 1.
|
|
13
|
-
| [`wizard-aluno`](wizard-aluno/SKILL.md) | ✅ ATIVO | 1.
|
|
14
|
-
| [`wizard-autonomia`](wizard-autonomia/SKILL.md) | ✅ ATIVO | 1.
|
|
15
|
-
| [`wizard-workspace`](wizard-workspace/SKILL.md) | ✅ ATIVO | 1.
|
|
16
|
-
| [`wizard-conectar`](wizard-conectar/SKILL.md) | ✅ ATIVO | 1.
|
|
17
|
-
| [`primeira-vitoria`](primeira-vitoria/SKILL.md) | ✅ ATIVO | 1.
|
|
10
|
+
| [`onboarding-checklist`](onboarding-checklist/SKILL.md) | ✅ ATIVO | 1.9 | aluno | guided | 1min apresentação / 37min jornada total. v1.9 (kit v2.3): **Fase Pré-Zero (detecção de ambiente ANTES de qualquer wizard) + Modo A v2 (checklist por aulas A0-A6 em vez de passos)** + 4 comandos canonical novos (abre/vi/vou assistir/travei A{X}) + Modo A condicional por ambiente (passo 0 invisível em Managed). v1.8: bloco canonical na bifurcação de modo. |
|
|
11
|
+
| [`wizard-whisper-quick`](wizard-whisper-quick/SKILL.md) | ✅ ATIVO | 1.11 | aluno | guided | 5min (~15s em Managed via fast-path — chave OpenAI vem do setup Hostinger). v1.11 (kit v2.3): fast-path checa env var `$OPENAI_API_KEY` PRIMEIRO (antes de `.env`) — chave Managed fica em env var, não em arquivo. Antes (v1.10) só lia `.env` e falhava em Managed. |
|
|
12
|
+
| [`wizard-agente`](wizard-agente/SKILL.md) | ✅ ATIVO | 1.1 | aluno | guided | 4min (ou 1min se já configurado) |
|
|
13
|
+
| [`wizard-aluno`](wizard-aluno/SKILL.md) | ✅ ATIVO | 1.1 | aluno | guided | 3min (ou 30s se já configurado) |
|
|
14
|
+
| [`wizard-autonomia`](wizard-autonomia/SKILL.md) | ✅ ATIVO | 1.5 | aluno | guided | 5min (manual no terminal — bifurcação Managed CLI vs ROOT SSH, copy do aluno) |
|
|
15
|
+
| [`wizard-workspace`](wizard-workspace/SKILL.md) | ✅ ATIVO | 1.1 | aluno | guided | 4min |
|
|
16
|
+
| [`wizard-conectar`](wizard-conectar/SKILL.md) | ✅ ATIVO | 1.5 | aluno | guided | 12min (varia por chaves existentes) — PAT-only, tutorial visual GitHub em 4 screenshots. v1.5 (kit v2.3): URL Brave correta (`https://brave.com/pt-br/search/api/` pra criar conta — homepage; `api.search.brave.com/app/keys` só pós-login) + disclaimer cartão obrigatório no plano free. Fix Bruno conta nova. |
|
|
17
|
+
| [`primeira-vitoria`](primeira-vitoria/SKILL.md) | ✅ ATIVO | 1.7 | aluno | guided | 5min + pré-check de flags + retoma pulos opcionais + auto-arquivamento de material de instalação (kit v2.2 final) + msg final com comandos de retomada |
|
|
18
|
+
| [`continuar-jornada`](continuar-jornada/SKILL.md) | ✅ ATIVO | 1.1 | aluno | guided | 2-5min (varia conforme estado) — orchestrator pós-Bloco A (introduzida na v2.1) |
|
|
19
|
+
| [`gera-log-jornada`](gera-log-jornada/SKILL.md) | ✅ ATIVO | 1.1 | aluno | guided | 1-2min — gera log estruturado da jornada pra feedback (Tally + grupo Telegram), introduzida na v2.1 |
|
|
20
|
+
|
|
21
|
+
> **v2.2 (auditoria):** todos os 8 wizards filhos + 2 skills novas têm header com Princípios 13/14/15 explícitos no topo. wizard-conectar v1.4 já tinha versão expandida (mantido). Detalhes em [`onboarding-checklist/references/wizard-header-template.md`](onboarding-checklist/references/wizard-header-template.md).
|
|
18
22
|
|
|
19
23
|
## Ordem oficial da jornada
|
|
20
24
|
|
|
@@ -90,4 +94,4 @@ Lógica é a mesma. Só muda apresentação. Aluno troca a qualquer momento com
|
|
|
90
94
|
|
|
91
95
|
---
|
|
92
96
|
|
|
93
|
-
*Registry
|
|
97
|
+
*Registry v2.2 — Onda 14 completa (03/05/2026 tarde). Auditoria de Princípios 13/14/15 em todos os wizards filhos + 2 skills novas (continuar-jornada/gera-log-jornada) bumpadas.*
|