---
name: wp-update
description: Actualização segura de WordPress core, plugins e temas em todos os sites CWP. Inclui backups pré-actualização, verificação pós-actualização e relatório de estado.
disable-model-invocation: true
---

# /wp-update - Actualização WordPress

Actualização e verificação de todos os sites WordPress no servidor CWP (176.9.3.158).

---

## SITES ACTIVOS (16)

| Conta | Site | Notas |
|-------|------|-------|
| carstuff | carstuff.pt | |
| ealmeida | descomplicar.pt | principal |
| ealmeida | emanuelalmeida.pt | |
| ealmeida | ecommerce.descomplicar.pt | |
| ealmeida | ecommerce-demo.descomplicar.pt | |
| ealmeida | starter.descomplicar.pt | |
| ealmeida | care.descomplicar.pt | KiviCare |
| ealmeida | e-commerce.descomplicar.pt | |
| espiral | espiralsenior.pt | booking plugin desactivado |
| espiral | dev.espiralsenior.pt | |
| familycl | familyclinic.pt | KiviCare |
| ignition | ignitionvortex.pt | |
| karate | karateclubedegaia.com | |
| sintri | sintricare.com.pt | |
| solarfv | solarfvengenharia.com | |
| wtc | watercontrol.pt | |

**Domínios expirados (excluídos):** jornadadoheroi.pt, tecoworking.pt, socialboost.pt

---

## SCRIPT DE VERIFICAÇÃO

**Local:** `/media/ealmeida/Dados/Dev/ClaudeDev/Claude-Scripts/wp-update/check-wp-sites.sh`
**No servidor:** `/root/scripts/check-wp-sites.sh`

O script verifica:
- Código HTTP (200, 301, 403, 500, etc.)
- **Conteúdo da página** por erros WordPress específicos:
  - "Ocorreu um erro crítico neste site"
  - "There has been a critical error"
  - "Fatal error:.*in /home/"
  - "Error establishing a database connection"

> **IMPORTANTE:** Códigos HTTP 200 NÃO garantem que o site está OK.
> WordPress pode devolver 200 com página de erro crítico.

---

## WORKFLOW

### 1. Verificação Inicial (OBRIGATÓRIO)

Executar script de verificação no servidor:
```bash
/root/scripts/check-wp-sites.sh carstuff.pt descomplicar.pt emanuelalmeida.pt ecommerce.descomplicar.pt ecommerce-demo.descomplicar.pt starter.descomplicar.pt care.descomplicar.pt e-commerce.descomplicar.pt espiralsenior.pt dev.espiralsenior.pt familyclinic.pt ignitionvortex.pt karateclubedegaia.com sintricare.com.pt solarfvengenharia.com watercontrol.pt
```

**REGRA CRÍTICA:** Se site reportar ❌ → investigar e corrigir ANTES de actualizar.

### 2. Actualização por Site

Para cada site funcional:
```bash
# Actualizar plugins
wp plugin update --all --allow-root --path=/home/USER/PATH

# Actualizar temas
wp theme update --all --allow-root --path=/home/USER/PATH

# Actualizar core
wp core update --allow-root --path=/home/USER/PATH

# Corrigir permissões (OBRIGATÓRIO)
chown -R USER:USER /home/USER/PATH/wp-content/
```

### 3. Verificação Final (OBRIGATÓRIO)

Re-executar script de verificação para confirmar que todos os sites continuam funcionais.

### 4. Relatório Desk CRM (OBRIGATÓRIO)

Após concluir as actualizações e verificação final, publicar relatório completo como comentário na **Discussão #52** ("Logs de Atualização de Websites") do **Projecto #69**.

**Tool:** `mcp__desk-crm-v3__add_discussion_comment`
- `discussion_id`: 52
- `staff_id`: 25 (AikTop)
- `content`: HTML formatado (template abaixo)

**Template HTML do Relatório:**
```html
<h4>🔄 Relatório WordPress Update - YYYY-MM-DD</h4>

<h5>Verificação Inicial</h5>
<ul>
  <li>✅ X/16 sites OK</li>
  <li>❌ Y sites com problemas: [lista se houver]</li>
</ul>

<h5>Actualizações Aplicadas</h5>
<table border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse;width:100%">
<tr style="background:#f0f0f0"><th>Site</th><th>Plugins</th><th>Temas</th><th>Core</th><th>Notas</th></tr>
<tr><td>site.pt</td><td>✅ 3/3</td><td>✅ 1/1</td><td>—</td><td></td></tr>
<!-- uma linha por site com alterações -->
</table>

<p><strong>Sites sem alterações:</strong> [lista de sites já actualizados]</p>

<h5>Falhas (Licenças Premium)</h5>
<table border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse;width:100%">
<tr style="background:#fff3cd"><th>Plugin</th><th>Sites Afectados</th><th>Erro</th></tr>
<tr><td>plugin-name</td><td>site1, site2</td><td>Unauthorized</td></tr>
</table>

<h5>Verificação Final</h5>
<ul>
  <li>✅ X/16 sites OK após actualizações</li>
</ul>

<h5>Alertas Wordfence</h5>
<ul>
  <li>[Listar alertas Wordfence recentes da conta it@descomplicar.pt se existirem]</li>
  <li>Sem alertas (se nenhum)</li>
</ul>

<hr>
<p><em>Relatório automático gerado por /wp-update v1.2.0 | AikTop</em></p>
```

**Regras do Relatório:**
- Verificar data actual com `mcp__mcp-time__current_time` antes de gerar
- Incluir TODOS os sites (16), mesmo os que não tinham updates
- Separar claramente sucessos de falhas
- Listar alertas Wordfence da pasta `INBOX.Wordpress.Alertas Wordfence` da conta `it` (últimos 7 dias)
- Se a verificação final detectar problemas, destacar em **vermelho**
- Omitir a tabela de Falhas se não houver nenhuma

---

## PATHS DOS SITES

| Site | Path |
|------|------|
| carstuff.pt | /home/carstuff/public_html |
| descomplicar.pt | /home/ealmeida/public_html |
| emanuelalmeida.pt | /home/ealmeida/emanuelalmeida.pt |
| ecommerce.descomplicar.pt | /home/ealmeida/ecommerce.descomplicar.pt |
| ecommerce-demo.descomplicar.pt | /home/ealmeida/ecommerce-demo.descomplicar.pt |
| starter.descomplicar.pt | /home/ealmeida/starter.descomplicar.pt |
| care.descomplicar.pt | /home/ealmeida/care.descomplicar.pt |
| e-commerce.descomplicar.pt | /home/ealmeida/e-commerce.descomplicar.pt |
| espiralsenior.pt | /home/espiral/public_html |
| dev.espiralsenior.pt | /home/espiral/dev.espiralsenior.pt |
| familyclinic.pt | /home/familycl/public_html |
| ignitionvortex.pt | /home/ignition/public_html |
| karateclubedegaia.com | /home/karate/karateclubedegaia.com |
| sintricare.com.pt | /home/sintri/public_html |
| solarfvengenharia.com | /home/solarfv/public_html |
| watercontrol.pt | /home/wtc/public_html |

---

## ERROS COMUNS E SOLUÇÕES

### Erro: "Class not found" (KiviCare)
```bash
# Desactivar plugin problemático
mv /path/wp-content/plugins/PLUGIN /path/wp-content/plugins/PLUGIN.disabled

# Reinstalar do care.descomplicar.pt (tem versões actualizadas)
cp -r /home/ealmeida/care.descomplicar.pt/wp-content/plugins/PLUGIN /path/wp-content/plugins/
chown -R USER:USER /path/wp-content/plugins/PLUGIN
```

### Erro: "Operation not permitted"
```bash
# Adicionar FS_METHOD ao wp-config.php
sed -i "/^define.*WP_DEBUG/a define('FS_METHOD', 'direct');" /path/wp-config.php
```

### Erro: Permissões após update
```bash
chown -R USER:USER /path/wp-content/
```

---

## PLUGINS PREMIUM (Licenças)

Alguns plugins não actualizam automaticamente por falta de licença:
- elementor-pro
- wpforms (versão paga)
- bdthemes-element-pack

Estes requerem actualização manual via CodeCanyon/download.

---

## INTEGRAÇÃO COM /today

Esta skill é invocada automaticamente às **segundas-feiras** pelo comando `/today`.

Workflow segunda-feira:
1. `/today` detecta que é segunda
2. Executa verificação inicial
3. Reporta estado dos sites
4. Propõe actualizações pendentes
5. Após conclusão, publica relatório na Discussão #52 (Projecto #69)

## INTEGRAÇÃO DESK CRM

- **Projecto:** #69 (Manutenção Websites)
- **Discussão:** #52 (Logs de Atualização de Websites)
- **Staff:** 25 (AikTop) para comentários automáticos
- **Tool:** `mcp__desk-crm-v3__add_discussion_comment`
- **Wordfence Alerts:** Conta IMAP `it`, pasta `INBOX.Wordpress.Alertas Wordfence`

---

## CHANGELOG

### v1.2.0 (2026-02-08)
- Adicionado Passo 4: Relatório automático Desk CRM
- Relatório publicado como comentário na Discussão #52 (Projecto #69)
- Template HTML completo com tabelas de actualizações e falhas
- Integração Wordfence: verifica alertas recentes da conta IMAP it@
- Staff AikTop (ID 25) como autor dos relatórios

### v1.1.0 (2026-02-02)
- Script movido para `/media/ealmeida/Dados/Dev/ClaudeDev/Claude-Scripts/wp-update/`
- Removidos domínios expirados da lista (jornadadoheroi, tecoworking, socialboost)
- Adicionada documentação sobre verificação de conteúdo
- README.txt adicionado com tarefa DeskCRM

### v1.0.0 (2026-02-02)
- Criação inicial
- Script de verificação robusta
- Lista de 16 sites activos
- Integração com /today para segundas-feiras

---


## Quando NÃO Usar

- Para tarefas fora do domínio de especialização desta skill
- Quando outra skill mais específica está disponível
- Para operações que requerem aprovação manual obrigatória
- Quando os requisitos não estão claramente definidos


## Protocolo de Execução

1. **Análise Inicial**
   - Verificar requisitos e contexto
   - Identificar ferramentas necessárias

2. **Preparação**
   - Validar acesso a recursos
   - Preparar ambiente de trabalho

3. **Execução**
   - Executar operações de forma incremental
   - Validar cada passo antes de prosseguir

4. **Validação**
   - Verificar resultados obtidos
   - Confirmar sucesso da operação

5. **Conclusão**
   - Documentar alterações realizadas
   - Reportar status final e próximos passos


## Exemplos de Uso

### Exemplo 1: Caso Básico
```
User: [requisição simples relacionada com wp-update]
Skill: [execução directa com validação]
Output: [resultado conciso e accionável]
```

### Exemplo 2: Caso Complexo
```
User: [requisição multi-passo ou complexa]
Skill:
  1. Análise dos requisitos
  2. Planeamento da abordagem
  3. Execução faseada
  4. Validação contínua
Output: [resultado detalhado com próximos passos]
```

### Exemplo 3: Caso com Dependências
```
User: [requisição que depende de outros sistemas]
Skill:
  1. Verificar dependências disponíveis
  2. Coordenar com skills/MCPs necessários
  3. Executar workflow integrado
Output: [resultado completo com referências]
```

---

## Healing Log

Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.

```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
```

*Adicionar nova linha após cada erro corrigido.*
