feat(wordpress): adiciona plugin wordpress (agents, skills, knowledge e metadados do projeto)

This commit is contained in:
2026-10-28 16:09:51 +00:00
parent a32752df8a
commit 63b1d79095
58 changed files with 7380 additions and 0 deletions
+178
View File
@@ -0,0 +1,178 @@
---
name: wp-dev
description: Desenvolvimento WordPress especializado com Quality Gate 70+. Cria e modifica plugins seguindo WordPress Coding Standards, desenvolve temas child, integra WooCommerce e resolve problemas WordPress.
layer: wiki
---
# WordPress Plugin Developer
Skill para desenvolvimento WordPress profissional seguindo padrões Descomplicar®.
## Quando Usar
- Criar ou modificar plugins WordPress
- Desenvolver temas ou child themes
- Integrar funcionalidades WooCommerce
- Resolver problemas específicos WordPress
- Criar custom post types, taxonomias, widgets
## Quando NÃO Usar
- Para operações CRM (usar /crm-ops)
- Para operações servidor/SSH genéricas (usar agente especializado)
- Para manutenção rotineira WP (usar /today às segundas)
## Contexto NotebookLM
ANTES de executar, consultar notebooks para contexto especializado:
| Notebook | ID | Consultar quando |
|----------|-----|-----------------|
| WordPress e Elementor | 5be0d1a6 | Sempre |
| WordPress Config CLI | fb2f26bd-8cb0-4d4c-bafc-4f1ebb51c51d | Para WP-CLI e configuração |
```
mcp__notebooklm__notebook_query({
notebook_id: "5be0d1a6-00f2-4cd9-b835-978cb7721601",
query: "<adaptar ao contexto do pedido do utilizador>"
})
mcp__notebooklm__notebook_query({
notebook_id: "fb2f26bd-8cb0-4d4c-bafc-4f1ebb51c51d",
query: "<adaptar ao contexto de WP-CLI e configuração WordPress>"
})
```
Integrar insights do NotebookLM nas recomendações e decisões.
### Procedimentos Relacionados
- `PROC-WiP-Definicao.md` — Definição de projectos WordPress in a Package
- `PROC-WiP-Instalacao.md` — Instalação e configuração WiP
- `PROC-WiP-Gestao.md` — Gestão e manutenção WiP
---
## Protocolo Obrigatório
### 1. Pesquisa Inicial (MCP)
Antes de desenvolver, SEMPRE executar:
```
mcp__mem_search_memories "[keywords wordpress]"
mcp__wikijs__search_pages "[plugin/funcionalidade]"
```
### 2. Quality Gate 70+
Todo código WordPress deve atingir score mínimo 70/100:
- WordPress Coding Standards (WPCS)
- Funções documentadas com PHPDoc
- Hooks e filters bem estruturados
- Sem warnings/notices PHP
- Segurança: nonces, sanitização, escaping
### 3. Assinatura Obrigatória
Todo ficheiro PHP deve incluir:
```php
<?php
/**
* [Nome do Plugin/Ficheiro]
*
* @author Descomplicar® Crescimento Digital
* @link https://descomplicar.pt
* @copyright 2025 Descomplicar®
*/
```
## Segurança WordPress (OBRIGATÓRIO)
- **Sanitizar inputs**: `sanitize_text_field()`, `sanitize_email()`, `absint()`
- **Escapar outputs**: `esc_html()`, `esc_attr()`, `esc_url()`
- **Nonces para forms**: `wp_nonce_field()`, `wp_verify_nonce()`
- **AJAX nonces**: `check_ajax_referer()`
- **Capability checks**: `current_user_can()` antes de acções admin
- **Prepared statements**: `$wpdb->prepare()` para queries
## Performance
- Enqueueing correcto: `wp_enqueue_script()`, `wp_enqueue_style()`
- Hooks no momento certo: `init`, `admin_init`, `wp_enqueue_scripts`
- Evitar queries em loops
- Usar transients para cache: `get_transient()`, `set_transient()`
## Estrutura Plugin Standard
```
plugin-name/
├── plugin-name.php # Ficheiro principal
├── includes/
│ ├── class-plugin-name.php
│ └── class-plugin-name-admin.php
├── assets/
│ ├── css/
│ └── js/
├── templates/
├── languages/
└── readme.txt
```
## Template Plugin Principal
```php
<?php
/**
* Plugin Name
*
* @package PluginName
* @author Descomplicar® Crescimento Digital
* @copyright 2025 Descomplicar®
* @license GPL-2.0-or-later
*
* @wordpress-plugin
* Plugin Name: Plugin Name
* Plugin URI: https://descomplicar.pt/plugin-name
* Description: Descrição do plugin.
* Version: 1.0.0
* Requires at least: 6.0
* Requires PHP: 8.0
* Author: Descomplicar®
* Author URI: https://descomplicar.pt
* Text Domain: plugin-name
* License: GPL v2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/
defined('ABSPATH') || exit;
define('PLUGIN_NAME_VERSION', '1.0.0');
define('PLUGIN_NAME_PATH', plugin_dir_path(__FILE__));
define('PLUGIN_NAME_URL', plugin_dir_url(__FILE__));
// Autoloader ou includes
require_once PLUGIN_NAME_PATH . 'includes/class-plugin-name.php';
// Inicialização
function plugin_name_init() {
load_plugin_textdomain('plugin-name', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('plugins_loaded', 'plugin_name_init');
// Activação
register_activation_hook(__FILE__, 'plugin_name_activate');
function plugin_name_activate() {
// Criar tabelas, opções, etc.
}
// Desactivação
register_deactivation_hook(__FILE__, 'plugin_name_deactivate');
function plugin_name_deactivate() {
// Limpeza
}
```
## Checklist Antes de Entregar
- [ ] Assinatura Descomplicar® em todos os ficheiros
- [ ] Segurança: nonces, sanitização, escaping
- [ ] WordPress Coding Standards
- [ ] Sem erros PHP (php -l)
- [ ] Textdomain para traduções
- [ ] Uninstall hook para limpeza