Problemas Comuns com o Codex
Um problema frequente com o Codex é a tendência de projetar ou implementar coisas com termos vagamente definidos. Na minha experiência, isso é um pouco menos comum com o Claude, mas com o Codex, foi um problema na versão 5.5 e persiste na 5.6. Esta é uma contramedida para esse problema.
Por exemplo, uma seção de um relatório de pesquisa tinha um título chamado "Ponto de Compressão". Ao ler o corpo do texto, o termo oscilava entre três significados: "quando o histórico da conversa atinge um valor definido", "o limite para iniciar a sumarização automática" e "o momento real em que a sumarização começa". A escrita era fluente e parecia uma explicação técnica. No entanto, no momento em que um único termo servia como condição inicial, um valor e um evento, o assunto da explicação tornou-se indefinido. Como resultado, as conclusões da pesquisa foram, infelizmente, direcionadas para o caminho errado.
Desencadeado por essa falha, criei uma habilidade chamada semantic-generation. Embora o nome pareça uma técnica de geração de texto, o que eu realmente mudei foi a definição das palavras antes de escrever o texto.
Estrutura e Impacto do Problema
Existe a questão de que o termo japonês "Ponto de Compressão" é inerentemente vago, mas quando o Codex percebeu isso, primeiro tentou corrigir como uma falta de explicação e depois como um problema de expressão do título. Ele não percebeu imediatamente que havia confundido uma condição inicial com um evento de execução.
Na mesma sessão, algo semelhante aconteceu. Como a causa ainda não era conhecida, o plano era conduzir um teste, isolar a causa dos resultados e, em seguida, escolher uma contramedida. O Codex resumiu isso como "coletar observações em uma só".
O alvo da coleta não eram as observações em si. Eram os valores ou registros obtidos do teste. Além disso, coletar valores não era o objetivo, mas um meio para isolar a causa.
Ao resumir em uma frase curta, a sequência a seguir desapareceu:
- A causa ainda não é conhecida.
- Conduzir um teste.
- Isolar a causa dos resultados.
- Escolher uma contramedida após o isolamento.
"Coletar observações em uma só" parece plausível. Porque parece plausível, encobre partes não organizadas e torna-se a premissa para o design subsequente.
Listas de Correção para Termos Originais Não Conseguem Impedir Isso
Ao considerar melhorias, foi feita uma proposta para registrar a correspondência entre palavras corrigidas e significados e transportá-la para a próxima sessão.
O que eu quero impedir não é "usar uma palavra anteriormente errada novamente". É colocar uma palavra em primeiro lugar enquanto o alvo é ambíguo e prosseguir com o pensamento baseado nessa palavra. Mesmo que você faça uma lista de palavras incorretas, uma palavra inventada diferente nascerá na próxima vez.
Portanto, em vez de palavras corrigidas, mudei a política para criar palavras candidatas antes de criar termos originais no início de cada sessão.
Contramedida) Forçar a Criação de uma Lista de Palavras Candidatas Antes do Design
Decidi que a IA criasse uma tabela de correspondência para termos definidos exclusivamente e, em seguida, realizasse o design após carregar esse arquivo.
A tabela de correspondência tem as seguintes sete colunas:
- Fonte
- Propósito
- Objeto Concreto
- Função
- Contexto
- Palavra Candidata
- Definição Inicial
A ordem das colunas é significativa. A palavra candidata está na extrema direita e não pode ser preenchida até que o objeto concreto e a função sejam escritos.
Se a palavra candidata estivesse na extrema esquerda, poderíamos escrever a palavra "Ponto de Compressão" primeiro e depois criar uma explicação que se encaixasse nessa palavra. Isso apenas reproduziria a ordem de geração que quero impedir dentro da tabela.
As funções também são colocadas uma por linha. Se você quiser lidar com uma condição inicial e um evento com a mesma palavra, você divide as linhas. Então, antes da pressão para "finalizar em uma palavra", o fato de que há dois objetos sendo manipulados torna-se visível.
Ao fazer isso, a própria IA generativa pode perceber quando as palavras estão se tornando ambíguas, e eu pude proibir ativamente o uso de palavras enquanto elas permanecem ambíguas.
Resumo
A IA generativa não é boa em manter um espaço em branco em branco. Mesmo que o alvo ou propósito ainda não esteja determinado, ela pode continuar o texto se uma palavra plausível for colocada. Essa fluência pode ser perigosa no design.
semantic-generation não é uma habilidade para encontrar boas palavras. É uma habilidade para fazer a IA parar por um momento e escolher palavras apropriadas quando ela tenta usar um termo original.
Qual é o alvo? É uma condição, um estado ou um evento? Para que propósito é tratado, e o que acontece depois do quê?
Apenas para linhas escritas até esse ponto, finalmente damos um nome no final. À primeira vista, parece um desvio, mas é mais curto do que reconstruir todo o design a partir de uma única palavra como "Ponto de Compressão".
Habilidade semantic-generation
1---2name: semantic-generation3description: |4 Um procedimento de geração onde, antes de escrever o documento alvo (materiais de design, design a partir de requisitos, relatórios de pesquisa, planos de isolamento de causa, planos de contramedida, nomeação, resumo da ordem de raciocínio), uma tabela de correspondência (tabela de referentes) é submetida primeiro como um entregável independente para fixar o referente e a função antes da palavra.5 Gatilhos: Escrever materiais de design, criar documentos de design, escrever relatórios de pesquisa, escrever planos de contramedida, nomear, decidir nomes de estado/nomes de condição/nomes de tipo/nomes de método, resumir ordem de raciocínio, tabela de referentes, tabela de correspondência.6 NÃO DISPARAR: Citar texto original do usuário, edição mecânica simples, reutilizar nomes existentes, saída fixa, conversa fiada, frases curtas que podem ser escritas apenas com termos estabelecidos.7---89# semantic-generation — Procedimento para fixar o alvo antes da palavra1011Se uma palavra (muitas vezes uma palavra inventada na hora) é colocada primeiro enquanto o alvo é ambíguo, e o pensamento prossegue com base nessa palavra, a discrepância com o referente se propaga para frases em japonês, frases de design e identificadores de código sem ser corrigida. Esta habilidade força a sequência de "submeter a tabela de correspondência de forma independente primeiro e escrever o corpo como uma cópia dela".12Critérios para a disciplina são mantidos pela regra [[referent-before-label]].1314## Critérios de Aplicação1516Use quando qualquer um dos seguintes se aplicar. Se você não puder julgar, trate como aplicável.17181. Escrever materiais de design, design a partir de requisitos, relatórios de pesquisa, planos de isolamento de causa ou planos de contramedida.192. Nomeação (especificações públicas, nomes de estado, nomes de condição, nomes de evento, nomes de tipo para valores ou registros, nomes de método, nomes booleanos).203. Tentar resumir uma ordem de raciocínio dada pelo usuário em rótulos de trabalho curtos.2122## Fluxo Normal2324### 1. Salve a tabela de correspondência como um entregável independente primeiro (Submissão em duas etapas)2526Antes de escrever um único caractere do corpo, salve a tabela de correspondência como um arquivo independente.2728- Destino de salvamento: `referent-table-<slug>.md` no diretório de trabalho (se o entregável estiver sob `output/`, coloque-o no mesmo diretório).29- Registre o sha256 após salvar (por exemplo, `shasum -a 256 <caminho>`). Este registro torna-se evidência de que "a tabela de correspondência foi criada antes do corpo". Simplesmente colocar a tabela no início do documento completo não prova a ordem de geração.3031### 2. Formato da tabela de correspondência (Alteração da ordem das colunas proibida)3233| Fonte | Propósito | Objeto Concreto | Função | Contexto | Palavra Candidata | Definição Inicial |3435- **A palavra candidata é fixada na extrema direita. Mantenha a coluna da palavra candidata em branco até que o objeto concreto e a função sejam preenchidos.** Isso é para tornar impossível a ordem de decidir a palavra primeiro e anexar o alvo depois através do formato.36- Escolha a função entre opções fechadas: `Condição Inicial / Estado / Evento / Valor / Registro / Propósito / Meio`. Se a mesma palavra se referir a múltiplas funções, divida as linhas.37- Em "Contexto", escreva a ordem de raciocínio dada pelo usuário (por exemplo, Teste → Isolamento → Contramedida) usando as palavras do texto original. Não misture com a coluna de função.38- As tabelas são geralmente limitadas a 1–6 linhas. Se excedido, divida a tabela nos limites onde o significado muda.39- Após a conclusão, confirme que o significado é claro apenas da coluna "Objeto Concreto", mesmo que a coluna da palavra candidata esteja oculta.4041### 3. Preencha as palavras candidatas4243- Use a terminologia do usuário e a terminologia estabelecida com a maior prioridade.44- Ao colocar outras palavras novas, escreva "X refere-se a..." na coluna "Definição Inicial". Não introduza palavras para as quais uma definição não possa ser escrita; use a descrição do objeto concreto como está no corpo.4546### 4. Escreva o corpo como uma cópia da tabela de correspondência4748- Use apenas as palavras listadas na tabela de correspondência como o vocabulário central do corpo.49- Mantenha a mesma correspondência nas três camadas de frases em japonês, elementos de design e identificadores de código (por exemplo, "Volume do histórico atinge 250K" = Condição Inicial → Nome da Condição / "Sumarização automática inicia" = Evento → Nome do Evento/Nome do Método / "Sumarização automática em andamento" = Estado → Nome do Estado. Funções diferentes devem ter nomes diferentes).50- Não use rótulos de trabalho (frases substantivas abstratas omitindo propósito, alvo e julgamento) para estruturas ou títulos. Se quiser usar um, tente escrever o referente dessa frase na tabela; se não conseguir, escreva em frases concretas.5152## Ações Preliminares em Caso de Problemas5354- Se você perceber que começou a escrever o corpo sem submeter uma tabela de correspondência, não continue adicionando a tabela depois. Descarte o corpo, reenvie a tabela de correspondência de forma independente e, em seguida, regenere o corpo.55- Se for apontado que uma linha da tabela estava incorreta (confusão de referente ou função), não adicione uma explicação; reescreva a linha relevante e, em seguida, regenere a parte correspondente do corpo.56- Em ambientes onde esta habilidade não pode ser carregada, salve uma tabela com pelo menos 6 colunas (Fonte, Propósito, Objeto Concreto, Função, Contexto, Palavra Candidata) como um arquivo independente antes de iniciar o corpo.5758## Observações5960- Não inclua entradas de teste ou respostas esperadas para verificação no corpo desta habilidade (para manter a independência da verificação. Os testes são gerenciados em fixtures em um diretório separado).61- O objetivo não é corresponder a uma lista de termos incorretos. O alvo de correspondência é a "tabela de correspondência declarada pelo próprio documento."
Regra referent-before-label
1# Fixe o referente antes da palavra23<!-- codex-runtime-summary -->4- IMPORTANTE: Para documentos alvo (frases de design, relatórios de pesquisa, planos de contramedida, nomeação, resumo da ordem de raciocínio), escreva o corpo após submeter independentemente uma tabela de correspondência. Submeter o corpo sem uma tabela de correspondência é proibido. Se você começar a escrever sem uma tabela, descarte o corpo e recomece a partir da tabela de correspondência.5- IMPORTANTE: Não use rótulos de trabalho (frases que envolvem trabalho não organizado em substantivos abstratos) para estruturas ou títulos. Não introduza palavras novas ou inventadas a menos que possa escrever uma definição inicial; decomponha o alvo em descrições concretas.6- IMPORTANTE: Dispare a habilidade semantic-generation ao iniciar um documento alvo. Mesmo que a habilidade não possa ser usada, salve uma tabela de correspondência com pelo menos 6 colunas (Fonte, Propósito, Objeto Concreto, Função, Contexto, Palavra Candidata) como um entregável independente primeiro.7<!-- /codex-runtime-summary -->89Se uma palavra (muitas vezes uma palavra inventada na hora) é colocada primeiro enquanto o alvo é ambíguo, e o pensamento prossegue com base nessa palavra, a discrepância com o referente se propaga para frases de design, nomes de estado, nomes de condição, nomes de método e nomes de tipo (como nos exemplos "Ponto de Compressão" e "Coletar observações em uma só" em TASK-52). Esta regra interrompe este processo de geração em si. Corresponder a uma lista de termos incorretos (caça às palavras) não é a contramedida, porque palavras inventadas não podem ser enumeradas. Critérios para flutuação de palavras são mantidos por [[terminologia]], e esta regra mantém o "procedimento antes de colocar a palavra."1011## Escopo (Documentos Alvo)1213Aplique apenas a tarefas que se enquadram em qualquer um dos seguintes. Se você não puder julgar, aplique-a.14151. Escrever materiais de design, design a partir de requisitos, relatórios de pesquisa, planos de isolamento de causa ou planos de contramedida.162. Nomeação (especificações públicas, nomes de estado, nomes de condição, nomes de evento, nomes de tipo para valores ou registros, nomes de método, nomes booleanos).173. Tentar resumir uma ordem de raciocínio dada pelo usuário em rótulos de trabalho curtos.1819Não se aplica a citar texto original do usuário, edição mecânica simples, reutilizar nomes existentes, saída fixa, conversa fiada ou frases curtas que podem ser escritas apenas com termos estabelecidos.2021## Aplicação Constante (3 Proibições)2223- IMPORTANTE: Em documentos alvo, não submeta o corpo sem submeter independentemente uma tabela de correspondência (tabela de referentes). A tabela de correspondência deve ser salva primeiro em um arquivo separado ou em uma rodada separada do corpo, e o corpo é escrito depois disso (simplesmente colocar a tabela no início do documento completo não prova que foi "feita primeiro").24- IMPORTANTE: Não use rótulos de trabalho para estruturas, títulos ou conclusões. Um rótulo de trabalho refere-se a uma frase que envolve trabalho não organizado em substantivos abstratos sem propósito, alvo ou julgamento (por exemplo, "Resumindo observações"). Se quiser usar um, tente escrever o alvo ao qual essa frase se refere na tabela de correspondência; se não conseguir, descarte a frase e escreva em frases concretas.25- IMPORTANTE: Ao introduzir novas palavras que não sejam a terminologia do usuário ou terminologia estabelecida, escreva uma frase de definição "X refere-se a..." na primeira ocorrência. Não introduza palavras para as quais uma frase de definição não possa ser escrita; escreva o alvo como está em frases.2627## Fluxo Normal28291. Determine se se enquadra em documentos alvo (em caso de dúvida, trate como aplicável).302. Dispare a habilidade [[semantic-generation]] e salve a tabela de correspondência como um entregável independente primeiro.313. Escreva o corpo usando apenas as palavras listadas na tabela de correspondência como o vocabulário central, mantendo a mesma correspondência em frases em japonês, elementos de design e identificadores de código.3233## Ações Preliminares em Caso de Problemas3435- Se você perceber que começou a escrever o corpo sem submeter uma tabela de correspondência para um documento alvo, não continue adicionando a tabela depois. Descarte o corpo, reenvie a tabela de correspondência de forma independente e, em seguida, regenere o corpo.36- Em ambientes onde a habilidade não está disponível, salve uma tabela de correspondência com pelo menos 6 colunas (Fonte, Propósito, Objeto Concreto, Função, Contexto, Palavra Candidata) como um arquivo independente no diretório de trabalho antes de iniciar o corpo.





