> ## Documentation Index
> Fetch the complete documentation index at: https://strattumai.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Skills — Automações por Agentes

> Skills são scripts executados por agentes para automações, análises e relatórios. Versionados em Git, executados com segurança via sandbox isolado.

**Skills** são scripts Python ou JavaScript executados por agentes de IA para realizar automações, análises e gerar relatórios operacionais. Cada skill é um arquivo de script versionado no Workspace Git, com metadados que descrevem o que faz, quais parâmetros aceita e quais segredos precisa.

***

## Para que servem as Skills

Skills resolvem o problema de agentes que precisam **agir**, não apenas responder. Enquanto o MCP Server expõe consultas ao Memory e Knowledge, Skills executam ações concretas:

* Gerar relatório de saúde de carteira de clientes e enviar por Slack
* Analisar padrões em tickets da semana e criar resumo para o gerente
* Verificar conformidade de contratos e alertar sobre vencimentos próximos
* Consolidar métricas de performance de campanhas e atualizar dashboard
* Executar checklist de onboarding de novo cliente automaticamente

***

## Casos de uso práticos

<CardGroup cols={2}>
  <Card title="Análise de carteira" icon="chart-pie" color="#6D28D9">
    Skill que consulta o Memory, agrupa clientes por health score e envia relatório semanal ao time de CS via Slack com os 5 contas em maior risco de churn.
  </Card>

  <Card title="Resumo de tickets" icon="ticket" color="#6D28D9">
    Skill que lê tickets da semana no Zendesk via Knowledge, identifica os 3 temas mais recorrentes e cria um card no ClickUp para o time de produto.
  </Card>

  <Card title="Alerta de vencimento" icon="bell" color="#6D28D9">
    Skill que verifica contratos com vencimento nos próximos 30 dias via Memory, verifica histórico de renovação e alerta o CS responsável com contexto completo.
  </Card>

  <Card title="Relatório executivo" icon="file-chart-line" color="#6D28D9">
    Skill que consolida métricas de MRR, churn e NPS do mês, gera relatório em Markdown e envia para canal específico no Slack ou por email.
  </Card>
</CardGroup>

***

## Estrutura de uma skill

Uma skill é composta por dois arquivos no Workspace Git:

```
/workspace/skills/
  scripts/
    weekly-health-report.yaml    # Metadados e configuração
    weekly-health-report.py      # Script Python
```

### Arquivo de metadados (YAML)

```yaml theme={null}
name: weekly-health-report
description: "Gera relatório semanal de health score da carteira de clientes e envia para o canal #cs-alerts no Slack"
version: "1.0.0"
runtime: python3.12

# Parâmetros que o agente pode passar ao invocar a skill
parameters:
  - name: min_health_score
    type: integer
    default: 60
    description: "Score mínimo para incluir uma conta no relatório de risco"
  - name: slack_channel
    type: string
    default: "#cs-alerts"
    description: "Canal Slack para envio do relatório"

# Segredos necessários (nunca em plaintext — referenciados pelo nome)
secrets:
  - SLACK_BOT_TOKEN
  - MEMORY_API_KEY

# Timeout máximo de execução
timeout_seconds: 120
```

### Script Python

```python theme={null}
import os
import requests
from slack_sdk import WebClient

def run(params: dict, secrets: dict) -> dict:
    """
    Consulta a Memory API para obter perfis de clientes,
    filtra por health score e envia relatório ao Slack.
    """
    memory_api = os.environ.get("MEMORY_API_URL", "http://strattum-memory-api:8002")
    
    # Consultar entidades com health score abaixo do threshold
    response = requests.get(
        f"{memory_api}/v1/memory/entities",
        headers={"Authorization": f"Bearer {secrets['MEMORY_API_KEY']}"},
        params={"type": "cliente", "max_health_score": params["min_health_score"]}
    )
    
    clientes_risco = response.json()["entities"]
    
    if not clientes_risco:
        return {"status": "ok", "message": "Nenhuma conta em risco encontrada."}
    
    # Montar relatório
    linhas = [f"*Relatório de Risco — {len(clientes_risco)} contas abaixo de {params['min_health_score']}*\n"]
    for cliente in clientes_risco[:10]:  # máximo 10 por relatório
        linhas.append(f"• {cliente['name']} — score: {cliente['health_score']} | CS: {cliente['owner']}")
    
    # Enviar ao Slack
    slack = WebClient(token=secrets["SLACK_BOT_TOKEN"])
    slack.chat_postMessage(
        channel=params["slack_channel"],
        text="\n".join(linhas)
    )
    
    return {"status": "ok", "accounts_reported": len(clientes_risco)}
```

***

## Criando skills com o Claude Code

A forma mais eficiente de criar skills é usar o Claude Code com o MCP Server da strattum.ai conectado. O Claude pode consultar a Memory e o Knowledge enquanto escreve a skill, usando o contexto real da sua operação.

<Steps>
  <Step title="Configure o MCP Server no Claude Code">
    Siga as instruções em [MCP Server → Claude Code](/mcp-server/claude-code) para conectar o Claude Code à plataforma.
  </Step>

  <Step title="Descreva o que a skill deve fazer">
    No Claude Code, descreva o objetivo em linguagem natural:

    ```
    Crie uma skill chamada "weekly-health-report" que:
    1. Consulte a Memory API para obter clientes com health score abaixo de 70
    2. Agrupe por responsável de CS
    3. Gere um resumo e envie ao canal #cs-alerts no Slack

    Use o Memory API em http://localhost:8002 e consulte o Knowledge 
    para entender como os health scores são calculados.
    ```
  </Step>

  <Step title="Revise e ajuste o script gerado">
    O Claude gera o `.yaml` e o `.py` com base na sua descrição e no contexto consultado. Revise a lógica e ajuste conforme necessário.
  </Step>

  <Step title="Commite no Workspace Git">
    Mova os arquivos para `/workspace/skills/scripts/` no repositório do Workspace Git e faça o commit:

    ```bash theme={null}
    git add workspace/skills/scripts/weekly-health-report.*
    git commit -m "feat(skills): add weekly health report skill"
    git push
    ```
  </Step>

  <Step title="A skill aparece automaticamente no Console">
    Após o push, a plataforma sincroniza o Workspace Git e a skill fica disponível em **Skills** no Console.
  </Step>
</Steps>

***

## Executando uma skill

### Via Console

1. Acesse **Skills** no menu lateral
2. Localize a skill pelo nome
3. Preencha os parâmetros (se houver)
4. Clique em **Executar**
5. Acompanhe o log de execução em tempo real

### Via MCP Server (pelo agente)

Um agente com o MCP Server conectado pode invocar skills durante uma conversa:

```
Usuário: Execute o relatório semanal de saúde da carteira para o canal #cs-alerts.

Agente: [chama run_skill com nome="weekly-health-report" e parâmetros]
        Relatório enviado para #cs-alerts. 8 contas estão abaixo do score 70. 
        Top 3 riscos: TechCorp (score 52), FinServ (score 58), DataCo (score 61).
```

### Via API

```bash theme={null}
POST /v1/skills/run
{
  "skill": "weekly-health-report",
  "parameters": {
    "min_health_score": 65,
    "slack_channel": "#cs-critico"
  }
}
```

***

## Segurança na execução

Skills são executadas em um sandbox isolado (`strattum-skills-runner`) com:

* **Sem acesso à rede externa** por padrão (modo `network: none`)
* Timeout máximo configurável por skill (padrão: 60 segundos)
* Máximo de 3 execuções simultâneas
* Segredos injetados como variáveis de ambiente — nunca em plaintext no script
* Logs de execução registrados no Audit Log (Governance)
* **Permissões herdadas da fonte:** a skill executa com as credenciais do usuário que a chamou. As ACLs dos sistemas consultados continuam valendo dentro da execução
* **Aprovação humana por risco:** skills marcadas como sensíveis ou mutáveis podem exigir aprovação antes de rodar, com a decisão registrada junto ao log da chamada

<Warning>
  Scripts de Skills têm acesso a segredos configurados. Revise o código antes de deployar em produção. Todo código deve passar pelo Workspace Git (revisão via PR recomendada) antes de chegar ao ambiente da plataforma.
</Warning>

***

## Gerenciando segredos de skills

Segredos (tokens, chaves de API) são armazenados separadamente dos scripts e injetados em tempo de execução. Configure em **Settings → Secrets** no Console ou edite o arquivo `workspace/secrets/skills_secrets_registry.json` no Workspace Git.

```json theme={null}
{
  "SLACK_BOT_TOKEN": {
    "description": "Bot token do Slack para envio de notificações",
    "created_at": "2026-03-15"
  },
  "MEMORY_API_KEY": {
    "description": "Chave de acesso à Memory API",
    "created_at": "2026-03-15"
  }
}
```

Os valores reais dos segredos são configurados via interface — nunca ficam no repositório Git.

***

## Skills e as alternativas

Skills não é a primeira forma de dar ferramenta a um agente. Vale comparar com o que já roda em produção nas empresas, com o cenário em que cada opção faz sentido.

| Capacidade                | Strattum Skills                          | LangChain Tools   | Custom GPTs     | Scripts internos |
| ------------------------- | ---------------------------------------- | ----------------- | --------------- | ---------------- |
| Autoria                   | Script versionado em Git (YAML + código) | Código Python     | UI no ChatGPT   | Varia por time   |
| Versionamento             | Git nativo, revisão via PR               | Git manual        | Sem histórico   | Git fragmentado  |
| Permissões da fonte       | Herdadas em runtime                      | DIY               | Não suportado   | DIY              |
| Sandbox isolado           | Built-in (`strattum-skills-runner`)      | DIY               | Hosted (OpenAI) | Sem isolamento   |
| Audit trail               | Registrado no Governance                 | DIY               | OpenAI-only     | Sem audit        |
| Compatibilidade de modelo | Qualquer cliente MCP                     | Múltiplos modelos | Só GPT          | N/A              |

LangChain cabe quando o time inteiro é engenharia. Custom GPT resolve equipes pequenas dentro do ecossistema OpenAI. Scripts internos existem, mas viram dívida operacional. Skills atende a empresa que precisa de governança, abrangência de modelo e autoria fora da engenharia ao mesmo tempo.

***

## Próximos passos

<CardGroup cols={2}>
  <Card title="MCP Server — Claude Code" icon="terminal" href="/mcp-server/claude-code">
    Configure o Claude Code para criar skills com contexto real da plataforma.
  </Card>

  <Card title="Memory API" icon="brain" href="/api-reference/memory/introduction">
    Referência completa da API para uso nos scripts de skills.
  </Card>
</CardGroup>
