system-one-design
Transforme um passo de perguntar-e-extrair em perguntas tipadas — uma condição cada, nomes de opção que não carregam o veredito, um número de volta — e nunca deixe esse número parar o trabalho sozinho.
Conferida por quem revisou e leu o cartão, não reivindicada pelo próprio arquivo. Um cartão que o agente destila durante uma execução que consumiu conteúdo não confiável nasce contaminado e fica retido para revisão antes de alguma vez ser recuperado.
Quando ele vem à mente
- extraindo um sim ou não da prosa de um modelo
- classificando muitos itens com um modelo
- pedindo a um modelo que dê uma nota
- a resposta de um modelo decide o que acontece depois
Evite e Verifique são onde costuma estar o valor. Faça é a seção que todo mundo escreve.
O corpo do cartão acima é uma tradução. O original em inglês é o que a CLI importa, o que o agente lê em execução e o que o hash abaixo atesta.
Gatilho
Um passo faz a um modelo uma pergunta cuja resposta é um de poucos valores conhecidos — sim ou não, um de cinco rótulos, um nível de baixo a alto — e depois lê esse valor na prosa que ele escreveu. Ou a mesma pergunta é feita a centenas de itens. Isso é uma decisão tipada fantasiada de chat.
Faça
- Faça-a como pergunta tipada (
chimera decide,POST /api/decideou a ferramentadecide):noulpara sim/não,choicepara um de um conjunto,scorepara níveis ordenados. Volta uma probabilidade. - Uma condição por pergunta. "É um erro e vem do banco de dados?" são duas perguntas; faça as duas e combine as respostas no código, onde a regra fica visível.
- Dê às opções nomes que não carregam o veredito (nada de "yes", "safe", "pass") e ponha o significado
nos critérios. Uma opção coringa ("other") não é confiável em nenhuma das duas direções — meça-a nos
seus itens, dê a ela um critério estreito, ou troque-a por um
noulpor candidato quando rejeitar importa. Faça as primeiras palavras das opções diferirem: um modelo local lê o rótulo pelo primeiro token, entãocodingecoding_agentnunca se distinguem (24 dos 231 itens públicos do JevBench ficaram sem leitura assim). Sobre a opção coringa, medido em 1.000 assuntos de commit: um "other" amplo absorveu 78% dos itens que pertenciam a uma opção nomeada, e um estreito 58%; deixá-lo de fora elevou o F1 das classes nomeadas de 0,24 para 0,43, ao custo de os itens realmente fora do conjunto caírem numa opção nomeada. A opção coringa falha nos dois sentidos, conforme o modelo e a tarefa: aqui ela absorveu itens que não devia, enquanto um modelo de decisão hospedado escolheu "None/Other" em só 7% dos itens cuja resposta certa estava ausente (arXiv 2609.39496). Quando rejeitar importa, faça umnoulpor candidato (99% rejeitados lá) ou fixe um limiar na probabilidade da coringa a partir de exemplos rotulados (79% rejeitados, 97% dos itens respondíveis mantidos). - Mostre ao modelo só a coisa que está sendo julgada: não a saída de ferramenta em volta, não uma frase que defende uma resposta.
- Escolha qualquer limiar a partir de exemplos rotulados, nunca de um palpite, e guarde o número ao lado da decisão que ele alimentou.
- Deixe contas, datas e contagens no código: calcule o fato, coloque-o no estado e pergunte sobre ele. Um modelo de decisão lê; ele não calcula (no nível difícil do JevBench o modelo local acertou 1 de 15 itens de datas e números).
Evite
Deixar o número encerrar, pular ou aprovar trabalho. Uma decisão pode acrescentar escrutínio — uma revisão, um aviso, uma segunda checagem — e nada mais: a única decisão deste projeto que podia dizer "pare aqui" piorou todo modelo que conduziu, e piorou mais quanto melhor era o modelo.
Evite também ler a resposta depois de um raciocínio (o número colapsa para 0 ou 1), dividir um julgamento em átomos que descrevem algo que as duas classes têm (um átomo "destrói dados?" marcou limpezas legítimas tanto quanto ataques) e tratar uma probabilidade crua como calibrada. Mantenha o estado enxuto: uma linha para cada fato que não disparou (uma coluna de "none") moveu o número em todos os itens, e o mesmo conteúdo repetido é lido como um padrão que não existe.
Verifique
- O linter aceita cada pergunta (uma pergunta recusada nunca chega a um modelo).
- Cada pergunta responde nos dois sentidos ao longo dos seus itens; uma que diz sempre a mesma coisa está lendo o formato, não o texto.
- Com estado longo e modelo local, o prompt cabe na janela de contexto — um corte silencioso passa por resultado do modelo.
- Em algum lugar, uma amostra rotulada mostra que o número separa os casos que importam — e ela cobre todas as formas de a decisão errar, dos dois lados; uma amostra de um só tipo de falha calibra só esse tipo.
- Antes de ler uma mudança de redação como efeito, faça de novo a pergunta inalterada e veja quanto o número se move sozinho.
Risco
Uma resposta tipada parece mais certa que prosa, e não é: um modelo pequeno pode ordenar bem e ainda assim errar com confiança no meio da escala. Trate um número não calibrado como pista, registre-o e calibre com seus próprios rótulos antes que qualquer limiar signifique algo.
Como usar
O cartão é dado. Clone o repositório e importe pelo caminho — o que chega pela rede é tratado como contaminado e fica retido para aprovação, que é o comportamento desejável e a razão de não haver um instalador de uma linha aqui.
git clone https://github.com/brcampidelli/chimera-agent.gitchimera skills-import chimera-agent/skills/system-one-design/SKILL.mdIntegridade
SHA-256 do arquivo como publicado. Quem importa pode conferir que o que recebeu é o que esta página mostrou.
99848d8b85c7d9768dd77b7eb7d2c92b03fe8fbdb0a2d29396a1572b5687f2d7