---
name: component-generator
description: Gera componentes Claude Code (skills, agents, commands) seguindo templates Descomplicar® com ciclo criar, validar e registar.
disable-model-invocation: true
allowed-tools: Read, Write, Edit, Glob, ToolSearch
---

# Component Generator

Skill para criar componentes de alta qualidade automaticamente, fechando o ciclo CRIAR → VALIDAR → REGISTAR.

## Triggers

Esta skill deve ser activada quando:
- Utilizador pede para criar nova skill
- Utilizador pede para criar novo agent
- Utilizador pede para criar novo command
- Necessidade de scaffold de componente identificada
- Comando `/descomplicar:create` é invocado

## Capabilities

### 1. Scaffold Skill

Cria estrutura completa de skill com frontmatter obrigatório.

**Comando:**
```
/descomplicar:create skill <name>
```

**Template Gerado:**
```markdown
---
name: <name>
description: >
  [Capability]. Use when "[trigger1]", "[trigger2]",
  "[keyword1]", "[keyword2]", "[keyword3]".
author: Descomplicar®
version: 1.0.0
desk_task: XXXX
allowed-tools: Read, Glob, Grep
---

# <Name>

[Descrição da skill]

## Triggers

Esta skill deve ser activada quando:
- [Trigger 1]
- [Trigger 2]

## Capabilities

### 1. [Capability 1]
[Descrição]

### 2. [Capability 2]
[Descrição]

## Workflow

```
[PASSO1] → [PASSO2] → [PASSO3] → [PASSO4]
```

## Exemplo de Uso

```
User: [Exemplo de input]
Assistant: [Exemplo de output]
```

## Limites

- [Quando NÃO usar]
- [Escopo máximo]
```

**Acções Automáticas:**
1. Criar directório `skills/<name>/`
2. Gerar `SKILL.md` com template
3. Registar em `cr_skills` (MySQL)
4. Criar tarefa Desk CRM (se desk_task fornecido)

### 2. Scaffold Agent

Cria ficheiro de agente com mapeamento de MCPs por categoria.

**Comando:**
```
/descomplicar:create agent <name> [--category dev|business|marketing|infra]
```

**Template Gerado:**
```markdown
---
name: <name>
description: >
  [Descrição]. Use for [uso1], [uso2], [uso3].
model: sonnet
tools: Read, Glob, Grep, ToolSearch
allowed-mcps: [MCPs baseados na categoria]
category: <category>
author: Descomplicar®
version: 1.0.0
desk_task: XXXX
---

# <Name>

[Descrição do agente]

## Quando Usar

USAR PROATIVAMENTE para:
- [Caso de uso 1]
- [Caso de uso 2]

## Capabilities

### [Capability 1]
- [Detalhe]

## Tools Disponíveis

| Tool | Uso |
|------|-----|
| [tool] | [descrição] |

## Workflow Típico

```
1. [Passo 1]
2. [Passo 2]
3. [Passo 3]
4. [Passo 4]
```

## Colaborações

- [Agente relacionado 1]
- [Agente relacionado 2]

## Limites

- [Limite 1]
- [Limite 2]
```

**MCPs por Categoria:**
| Categoria | MCPs Primary | MCPs Recommended |
|-----------|--------------|------------------|
| dev | gitea, filesystem | ssh-unified, desk-crm-v3 |
| business | desk-crm-v3, moloni | google-workspace |
| marketing | google-workspace, tavily | desk-crm-v3 |
| infra | ssh-unified, cwp | filesystem, gitea |

**Acções Automáticas:**
1. Criar `agents/<name>.md`
2. Registar em `cr_agents` (MySQL)
3. Criar mapeamentos em `cr_agent_mcps`
4. Sugerir colaborações em `cr_agent_collaborations`
5. Criar tarefa Desk CRM

### 3. Scaffold Command

Cria ficheiro de comando com namespace e arguments.

**Comando:**
```
/descomplicar:create command <name>
```

**Template Gerado:**
```markdown
---
name: <name>
description: >
  [Descrição do comando]. [O que faz].
argument-hint: "[argumentos opcionais]"
---

# /descomplicar:<name>

[Descrição detalhada]

## Objectivo

[O que este comando faz]

## Sintaxe

```
/descomplicar:<name> [action] [args]
```

## Acções Disponíveis

### 1. [Acção 1]

```
/descomplicar:<name> [action1]
```

[Descrição]

## Output Esperado

```
╔═══════════════════════════════════════════╗
║  [OUTPUT VISUAL]                          ║
╚═══════════════════════════════════════════╝
```
```

**Acções Automáticas:**
1. Criar `commands/<name>.md`
2. Actualizar `plugin.json` com novo command

### 4. Registar em MySQL

```sql
-- Para Skills
INSERT INTO cr_skills (slug, name, category, status, desk_task, created_at)
VALUES (?, ?, ?, 'active', ?, NOW());

-- Para Agents
INSERT INTO cr_agents (slug, name, category, status, desk_task, created_at)
VALUES (?, ?, ?, 'active', ?, NOW());
```

### 5. Criar Tarefa Desk CRM

```sql
INSERT INTO tbltasks (name, description, rel_type, rel_id, milestone, status, dateadded, startdate, addedfrom)
VALUES (
  '<Type>: <name>',
  '<h4>Propósito</h4><p>...</p><h4>Estado</h4><p>Em desenvolvimento</p>',
  'project', 65, -- Stack Workflow
  ?, -- Milestone apropriado
  1, NOW(), CURDATE(), 1
);
```

## Workflow Completo

```
CREATE → VALIDATE → REGISTER → DESK TASK → READY
   ↓         ↓          ↓           ↓
Template  Score≥70   MySQL      Tracking
```

## Validação Automática

Após criação, invoca `quality-validator` para garantir score >= 70:
- Se score < 70: ALERTA + sugestões de melhoria
- Se score >= 70: componente activado

## Exemplo de Uso

```
User: Cria uma nova skill para gestão de backups

Component Generator:
1. [Cria directório skills/backup-manager/]
2. [Gera SKILL.md com template Descomplicar®]
3. [Valida: score 65/100 - Draft]
4. [Regista em cr_skills (id: 55)]
5. [Cria tarefa Desk #1503]
6. Resposta: "Skill backup-manager criada com sucesso!
   - Path: skills/backup-manager/SKILL.md
   - Score: 65/100 (Draft)
   - Próximo passo: Editar e correr /descomplicar:validate"
```

## Limites

- Apenas cria estrutura base - conteúdo deve ser desenvolvido
- Score inicial tipicamente 50-70 (Draft)
- Não cria componentes duplicados (verifica slug existente)
- Requer conexão MySQL para registo em cr_*
- Não modifica componentes existentes (usar Edit tool)
---

## 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.*
