SKILL.md em:
- Memory armazena fatos, preferências, entidades e contexto passado.
- Skills armazenam procedimentos reutilizáveis que o agente deve seguir em tarefas futuras.
- Skill Workshop é a ponte entre um turno útil e uma Skill durável do workspace, com verificações de segurança e aprovação opcional.
- como validar assets GIF animados de origem externa
- como substituir assets de captura de tela e verificar dimensões
- como executar um cenário de QA específico de um repositório
- como depurar uma falha recorrente de provider
- como reparar uma nota local de fluxo de trabalho obsoleta
- fatos como “o usuário gosta de azul”
- memória autobiográfica ampla
- arquivamento bruto de transcrição
- segredos, credenciais ou texto oculto de prompt
- instruções pontuais que não se repetirão
Estado padrão
O Plugin incluído é experimental e desabilitado por padrão, a menos que seja explicitamente habilitado emplugins.entries.skill-workshop.
O manifesto do Plugin não define enabledByDefault: true. O padrão enabled: true
dentro do schema de configuração do Plugin se aplica apenas depois que a entrada do Plugin
já tiver sido selecionada e carregada.
Experimental significa:
- o Plugin é compatível o suficiente para testes opt-in e uso interno
- armazenamento de propostas, limites do revisor e heurísticas de captura podem evoluir
- aprovação pendente é o modo inicial recomendado
- aplicação automática é para configurações pessoais/de workspace confiáveis, não para ambientes compartilhados ou com entrada pesada hostil
Habilitar
Configuração mínima segura:- a ferramenta
skill_workshopfica disponível - correções reutilizáveis explícitas são enfileiradas como propostas pendentes
- passagens do revisor baseadas em limite podem propor atualizações de Skill
- nenhum arquivo de Skill é gravado até que uma proposta pendente seja aplicada
approvalPolicy: "auto" ainda usa o mesmo scanner e o mesmo caminho de quarentena. Ele
não aplica propostas com achados críticos.
Configuração
| Chave | Padrão | Intervalo / valores | Significado |
|---|---|---|---|
enabled | true | boolean | Habilita o Plugin depois que a entrada do Plugin é carregada. |
autoCapture | true | boolean | Habilita captura/revisão pós-turno em turnos bem-sucedidos do agente. |
approvalPolicy | "pending" | "pending", "auto" | Enfileira propostas ou grava propostas seguras automaticamente. |
reviewMode | "hybrid" | "off", "heuristic", "llm", "hybrid" | Escolhe captura explícita de correção, revisor LLM, ambos ou nenhum. |
reviewInterval | 15 | 1..200 | Executa o revisor após esse número de turnos bem-sucedidos. |
reviewMinToolCalls | 8 | 1..500 | Executa o revisor após esse número de chamadas de ferramenta observadas. |
reviewTimeoutMs | 45000 | 5000..180000 | Timeout para a execução embutida do revisor. |
maxPending | 50 | 1..200 | Máximo de propostas pendentes/em quarentena mantidas por workspace. |
maxSkillBytes | 40000 | 1024..200000 | Tamanho máximo de Skill/arquivo de suporte gerado. |
Caminhos de captura
O Skill Workshop tem três caminhos de captura.Sugestões da ferramenta
O modelo pode chamarskill_workshop diretamente quando identifica um procedimento reutilizável
ou quando o usuário pede que ele salve/atualize uma Skill.
Esse é o caminho mais explícito e funciona mesmo com autoCapture: false.
Captura heurística
QuandoautoCapture está habilitado e reviewMode é heuristic ou hybrid, o
Plugin examina turnos bem-sucedidos em busca de frases explícitas de correção do usuário:
next timefrom now onremember tomake sure toalways ... use/check/verify/record/save/preferprefer ... when/for/instead/usewhen asked
- tarefas com GIF animado ->
animated-gif-workflow - tarefas de captura de tela ou asset ->
screenshot-asset-workflow - tarefas de QA ou cenário ->
qa-scenario-workflow - tarefas de PR do GitHub ->
github-pr-workflow - fallback ->
learned-workflows
Revisor LLM
QuandoautoCapture está habilitado e reviewMode é llm ou hybrid, o Plugin
executa um revisor embutido compacto quando os limites são atingidos.
O revisor recebe:
- o texto recente da transcrição, limitado aos últimos 12.000 caracteres
- até 12 Skills existentes do workspace
- até 2.000 caracteres de cada Skill existente
- instruções somente em JSON
disableTools: truetoolsAllow: []disableMessageTool: true
{ "action": "none" } ou uma proposta. O campo action é create, append ou replace — prefira append/replace quando uma Skill relevante já existir; use create somente quando nenhuma Skill existente se encaixar.
Exemplo de create:
append adiciona section + body. replace troca oldText por newText na Skill nomeada.
Ciclo de vida da proposta
Toda atualização gerada se torna uma proposta com:idcreatedAtupdatedAtworkspaceDiragentIdopcionalsessionIdopcionalskillNametitlereasonsource:tool,agent_endoureviewerstatuschangescanFindingsopcionalquarantineReasonopcional
pending- aguardando aprovaçãoapplied- gravada em<workspace>/skillsrejected- rejeitada pelo operador/modeloquarantined- bloqueada por achados críticos do scanner
maxPending.
Referência da ferramenta
O Plugin registra uma ferramenta de agente:status
Conta propostas por estado para o workspace ativo.
list_pending
Lista propostas pendentes.
status:
pendingappliedrejectedquarantined
list_quarantine
Lista propostas em quarentena.
skill-workshop: quarantined <skill>.
inspect
Busca uma proposta por ID.
suggest
Cria uma proposta. Com approvalPolicy: "pending" (padrão), isso entra na fila em vez de gravar.
Forçar uma gravação segura (apply: true)
Forçar uma gravação segura (apply: true)
Forçar pendente sob política auto (apply: false)
Forçar pendente sob política auto (apply: false)
Acrescentar a uma seção nomeada
Acrescentar a uma seção nomeada
Substituir texto exato
Substituir texto exato
apply
Aplica uma proposta pendente.
apply recusa propostas em quarentena:
reject
Marca uma proposta como rejeitada.
write_support_file
Grava um arquivo de suporte dentro de um diretório de Skill existente ou proposto.
Diretórios de suporte de nível superior permitidos:
references/templates/scripts/assets/
maxSkillBytes, verificados por scanner e gravados atomicamente.
Gravações de Skill
O Skill Workshop grava somente em:- convertidos para minúsculas
- sequências fora de
[a-z0-9_-]tornam-se- - não alfanuméricos no início/fim são removidos
- o comprimento máximo é 80 caracteres
- o nome final deve corresponder a
[a-z0-9][a-z0-9_-]{1,79}
create:
- se a Skill não existir, o Skill Workshop grava um novo
SKILL.md - se já existir, o Skill Workshop acrescenta o corpo a
## Workflow
append:
- se a Skill existir, o Skill Workshop acrescenta à seção solicitada
- se não existir, o Skill Workshop cria uma Skill mínima e depois acrescenta
replace:
- a Skill já deve existir
oldTextdeve estar presente exatamente- somente a primeira correspondência exata é substituída
Modelo de segurança
O Skill Workshop tem um scanner de segurança para conteúdo gerado deSKILL.md e arquivos de suporte.
Achados críticos colocam propostas em quarentena:
| ID da regra | Bloqueia conteúdo que… |
|---|---|
prompt-injection-ignore-instructions | manda o agente ignorar instruções anteriores/superiores |
prompt-injection-system | referencia prompts de sistema, mensagens de developer ou instruções ocultas |
prompt-injection-tool | incentiva ignorar permissões/aprovação de ferramenta |
shell-pipe-to-shell | inclui curl/wget com pipe para sh, bash ou zsh |
secret-exfiltration | aparentemente envia dados de env/process env pela rede |
| ID da regra | Avisa sobre… |
|---|---|
destructive-delete | comandos amplos no estilo rm -rf |
unsafe-permissions | uso de permissões no estilo chmod 777 |
- mantêm
scanFindings - mantêm
quarantineReason - aparecem em
list_quarantine - não podem ser aplicadas por
apply
Orientação de prompt
Quando habilitado, o Skill Workshop injeta uma seção curta de prompt que informa ao agente que deve usarskill_workshop para memória procedural durável.
A orientação enfatiza:
- procedimentos, não fatos/preferências
- correções do usuário
- procedimentos bem-sucedidos não óbvios
- armadilhas recorrentes
- reparo de Skill obsoleta/rasa/incorreta por append/replace
- salvar procedimento reutilizável após loops longos de ferramentas ou correções difíceis
- texto curto de Skill no imperativo
- nada de dumps de transcrição
approvalPolicy:
- modo pendente: enfileira sugestões; aplica somente após aprovação explícita
- modo auto: aplica atualizações seguras de Skills do workspace quando claramente reutilizáveis
Custos e comportamento em runtime
A captura heurística não chama um modelo. A revisão por LLM usa uma execução embutida no modelo ativo/padrão do agente. Ela é baseada em limites, então não é executada em todo turno por padrão. O revisor:- usa o mesmo contexto configurado de provider/modelo quando disponível
- recorre aos padrões do agente em runtime
- usa
reviewTimeoutMs - usa contexto leve de bootstrap
- não tem ferramentas
- não grava nada diretamente
- só pode emitir uma proposta que passa pelo scanner normal e pelo caminho de aprovação/quarentena
Padrões de operação
Use Skill Workshop quando o usuário disser:- “da próxima vez, faça X”
- “de agora em diante, prefira Y”
- “certifique-se de verificar Z”
- “salve isso como um fluxo de trabalho”
- “isso levou um tempo; lembre-se do processo”
- “atualize a Skill local para isso”
- tem formato de transcrição
- não está no imperativo
- inclui detalhes pontuais ruidosos
- não diz ao próximo agente o que fazer
Depuração
Verifique se o Plugin está carregado:| Sintoma | Causa provável | Verificar |
|---|---|---|
| A ferramenta não está disponível | A entrada do Plugin não está habilitada | plugins.entries.skill-workshop.enabled e openclaw plugins list |
| Nenhuma proposta automática aparece | autoCapture: false, reviewMode: "off" ou limites não atingidos | Configuração, status da proposta, logs do Gateway |
| A heurística não capturou | O texto do usuário não correspondeu aos padrões de correção | Use skill_workshop.suggest explícito ou habilite o revisor LLM |
| O revisor não criou uma proposta | O revisor retornou none, JSON inválido ou atingiu timeout | Logs do Gateway, reviewTimeoutMs, limites |
| A proposta não é aplicada | approvalPolicy: "pending" | list_pending, depois apply |
| A proposta sumiu de pendentes | Proposta duplicada reutilizada, poda por máximo pendente, ou foi aplicada/rejeitada/em quarentena | status, list_pending com filtros de status, list_quarantine |
| O arquivo de Skill existe, mas o modelo não o vê | Snapshot de Skill não foi atualizado ou o gating de Skill o exclui | status de openclaw skills e elegibilidade da Skill do workspace |
skill-workshop: queued <skill>skill-workshop: applied <skill>skill-workshop: quarantined <skill>skill-workshop: heuristic capture skipped: ...skill-workshop: reviewer skipped: ...skill-workshop: reviewer found no update
Cenários de QA
Cenários de QA sustentados por repositório:qa/scenarios/plugins/skill-workshop-animated-gif-autocreate.mdqa/scenarios/plugins/skill-workshop-pending-approval.mdqa/scenarios/plugins/skill-workshop-reviewer-autonomous.md
reviewMode: "llm" e exercita a passagem do revisor embutido.
Quando não habilitar auto apply
EviteapprovalPolicy: "auto" quando:
- o workspace contém procedimentos sensíveis
- o agente está trabalhando com entrada não confiável
- Skills são compartilhadas por uma equipe ampla
- você ainda está ajustando prompts ou regras do scanner
- o modelo frequentemente lida com conteúdo hostil da web/e-mail