FFS — Atrito → Correção → Salvaguarda

Extrai correções recorrentes de usuários e atritos de fluxo de trabalho de transcrições de sessões de agentes, convertendo padrões detectáveis mecanicamente em regras testadas.

O que é FFS — Atrito → Correção → Salvaguarda?

Este skill, FFS (Friction → Fix → Safeguard), é projetado para melhorar continuamente o harness de um agente de IA ao transformar correções manuais e atritos em regras mecânicas testadas. Ele funciona em cinco estágios: extrair correções repetidas de transcrições de sessão, classificar se o fracasso é detectável, gerar e validar uma regra usando o gerador de regras existente, aplicar a regra (local ou global) e verificar seu funcionamento. O skill é compatível com qualquer armazenamento de transcrições no formato JSONL e com sistemas de regras como o Open Manipulation Platform (OMP). Ele evita a criação de geradores de regras duplicados, delegando a geração de regras a comandos existentes como `/omfg`. Para cada candidato, retém dados como a correção exata, timestamp, ID da sessão e comandos do assistente antes e depois. A verificação é realizada com testes positivos e negativos, e após uma semana, a mesma correção é minerada novamente para confirmar a eficácia ou ajustar a regra com base em novas evidências. Um exemplo de uso é a correção "puttys pls", que resultou em uma regra para substituir comandos SSH opacos por sessões de terminal visíveis por meio de scripts `putty-*`.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ankitg12/agent-skills/tree/HEAD/ffs

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que FFS — Atrito → Correção → Salvaguarda faz?

Use o atrito da sessão para melhorar o harness. Na segunda vez que o usuário precisa repetir uma correção, é evidência de que o texto falhou e uma salvaguarda mecânica pode ser justificada.

Arquitetura

Não construa outro gerador de regras. Use as camadas existentes:

  1. Extrair — um minerador determinístico sobre as transcrições de sessão do agente encontra correções repetidas de usuários e emparelha cada uma com a ação do assistente antes dela e a ação corrigida depois dela. (Para configurações baseadas em AgentsView, um extrator como avmine.py rules faz isso; qualquer armazenamento de transcrições JSONL pode ser minerado da mesma forma).
  2. Classificar — decida se o fracasso é mecanicamente detectável.
  3. Gerar e validar — passe um pacote de evidências para o caminho de geração de regras existente do harness (por exemplo, um comando do tipo /omfg), em vez de reimplementá-lo.
  4. Aplicar — salve a saída aceita como uma regra de projeto (.omp/rules/<nome>.md) ou uma regra global (~/.omp/agent/rules/<nome>.md).
  5. Verificar — teste exemplos positivos e negativos no motor de regras; depois, re-minere as transcrições para confirmar que a correção parou de recorrer.

Quando um atrito se torna uma regra

Crie uma regra apenas quando todos forem verdadeiros:

  • O usuário corrigiu o mesmo comportamento pelo menos duas vezes, ou uma vez com uma consequência explícita de segurança.
  • A ação ofensiva é mecanicamente reconhecível no texto do assistente ou nos argumentos da ferramenta.
  • Uma substituição segura pode ser declarada sem adivinhar o contexto.
  • Nenhuma regra existente já cobre o padrão.

Caso contrário, direcione para outro lugar:

FracassoDestino
Comando, caminho, flag ou frase de saída detectávelRegra
Fluxo de trabalho de múltiplas etapas exigindo julgamentoSkill
Preferência ou princípio estávelAGENTS.md
Fato ou procedimento de ferramentaNotas / conhecimento do projeto
Correção histórica únicaDiário / registro de origem

Procedimento de mineração

Execute o extrator determinístico primeiro. Se ele não estiver disponível, pesquise transcrições brutas por frases de correção e inspecione as respostas do assistente ao redor; não infira a ação ofensiva apenas a partir da correção.

Para cada candidato, retenha:

  • correção exata do usuário e carimbo de data/hora
  • projeto e ID de sessão estável
  • comando/texto do assistente imediatamente antes
  • comando/texto corrigido imediatamente depois
  • contagem de recorrência em sessões lógicas distintas
  • escopo recomendado: projeto ou global
  • teste positivo (deve acionar)
  • teste negativo (não deve acionar)

Não use resumos de sessão gerados automaticamente como evidência. Eles parafraseiam e duplicam. Use mensagens de transcrição bruta e chamadas de ferramentas.

Entrega de geração de regras

Entregue a reclamação mais o par concreto antes/depois ao gerador de regras existente, que já:

  • gera um candidato a regra
  • valida sua condição contra o histórico do assistente
  • oferece escopo de projeto vs. global
  • permite emenda antes de salvar

Não duplique essa maquinaria no extrator ou neste skill.

Verificação

Para cada regra aceita, execute ambos um caso negativo e um positivo através do motor de regras (com OMP's TTSR, por exemplo):

omp ttsr test --rule <caminho-absoluto-da-regra> --source tool --tool <ferramenta> '<entrada ruim>' -v
omp ttsr test --rule <caminho-absoluto-da-regra> --source tool --tool <ferramenta> '<entrada boa>' -v

O primeiro deve acionar; o segundo não deve. Uma regra que bloqueia o caminho seguro é pior do que nenhuma regra.

Após uma semana, minere a mesma correção novamente. Zero recorrências é evidência de que a regra funcionou. Uma recorrência significa que a condição perdeu a forma real; corrija com base em evidências, não ampliando cegamente.

Exemplo de referência: "puttys pls"

As transcrições mostraram a mesma correção em dois dias consecutivos. Antes dela, as sessões executavam comandos SSH/exec opacos de uma linha contra hosts remotos de bancada de teste sem terminal visível. Depois dela, lançavam sessões de terminal visíveis através de scripts wrapper nomeados putty-*.

A regra de projeto resultante (<projeto>/.omp/rules/visible-putty-operations.md) captura os caminhos de comando opacos, permite os wrappers visíveis e é respaldada pelos eventos de correção histórica — três rodadas de evidência, não um palpite.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Habilidades Relacionadas