Files
claude-plugins/wordpress/skills/wp-update/SKILL.md
Emanuel Almeida 9404af7ac9 feat: sync all plugins, skills, agents updates
New plugins: core-tools
New skills: auto-expense, ticket-triage, design, security-check,
  aiktop-tasks, daily-digest, imap-triage, index-update, mindmap,
  notebooklm, proc-creator, tasks-overview, validate-component,
  perfex-module, report, calendar-manager
New agents: design-critic, design-generator, design-lead,
  design-prompt-architect, design-researcher, compliance-auditor,
  metabase-analyst, gitea-integration-specialist
Updated: all plugin configs, knowledge datasets, existing skills

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 17:16:32 +00:00

317 lines
9.8 KiB
Markdown

---
name: wp-update
description: WordPress core, plugins, and themes update management. Safely updates
WordPress components with backups. Use when user mentions "wordpress update", "wp
update", "update plugins", "update themes", "wordpress maintenance".
author: Descomplicar® Crescimento Digital
version: 1.2.0
quality_score: 75
user_invocable: true
desk_task: 1553
---
# /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]
```