sota-anchor

Encontra as bibliotecas, ferramentas e pesquisas lançadas após o treinamento do seu agente de codificação, antes que ele as reconstrua do zero. Sua ferramenta check_what_exists pesquisa o último ano de arXiv, Hugging Face papers, GitHub, npm e crates.io quando um plano assume que algo está indisponível, e não precisa de chave de API.

Documentação

sota-anchor

Seu agente de codificação não sabe o que foi lançado após o treinamento dele.
sota-anchor é um servidor MCP e plugin do Claude Code que verifica o último ano de artigos,
repositórios e pacotes antes de seu agente reconstruir algo que já existe,
ou dizer que não é possível fazer.

CI License: MIT Python 3.11+ MCP server Claude Code plugin No API key needed

Two workflows from the same task, parsing Xcode 27 project files, to the same goal, build settings checked in CI. Without sota-anchor, the agent rebuilds it from what the model knew: strip trailing commas, model the project, resolve build settings, write a rule engine, write the CLI and tests; the model never saw Apple's library, so that is 755 lines of new code in 2 minutes 37 seconds. With sota-anchor, it checks what shipped since training, finds xcode-project-format, Apple's own library for the format, released on 2026-09-15, after the model's training, and reuses it; no code written, 42 seconds.

Um agente de codificação planeja com base no que aprendeu no treinamento. Quando uma tarefa precisa de algo que ele não conhece, ele assume que essa coisa não existe e faz uma de duas coisas caras: constrói do zero ou diz que não é possível. Muitas vezes, a biblioteca, o leitor ou o modelo que tornaria o trabalho fácil foi publicado depois que o treinamento dele terminou.

sota-anchor faz o agente verificar o que foi publicado desde então. Quando um plano depende de algo estar indisponível, o agente pesquisa o último ano de artigos, repositórios e pacotes, e avalia o que retorna, com datas. Então ele reutiliza o que existe ou constrói sabendo que nada melhor existe.

  • Qualquer área. Nada no código conhece qualquer domínio. A mesma verificação é executada para um formato de arquivo CAD, um pipeline de genômica ou uma passagem de compilador.
  • Sem chave de API extra. Seu agente faz o raciocínio; sota-anchor faz a recuperação.
  • Evidência, não memória. Cada afirmação cita uma fonte datada. Quando a pesquisa não encontra nada, ele diz isso em vez de adivinhar.

Antes e depois

A mesma solicitação nas duas vezes, no mesmo projeto Xcode 27: "o xcode 27 moveu nosso projeto para o novo formato project.xcproj e ainda não há biblioteca para ele, então escreva um parser em Swift que possamos usar no CI para verificar as configurações de build de cada target".

Antes. Sem sota-anchor, o Claude Code aceitou a solicitação e escreveu o parser: um pacote Swift de oito arquivos e 755 linhas, com o formato deduzido, nas próprias palavras dele, "do seu Logbook.xcodeproj/project.xcproj, não de qualquer documentação da Apple". Levou 2 minutos e 37 segundos.

A Claude Code session in a Mac terminal. Asked for a Swift parser for Xcode 27's project.xcproj format, which the request says has no library yet, Claude Code writes one from scratch: Package.swift, a trailing-comma stripper, a project model of 147 lines, a build-settings resolver of 169 lines, and more files below the fold.

Depois. Com sota-anchor, a verificação é executada antes de qualquer código. Ele encontra a biblioteca da própria Apple para o formato, xcode-project-format, publicada sob Apache 2.0 em 2026-09-15, depois que o modelo foi treinado. O Claude Code confirma no GitHub, descarta o parser personalizado porque "escrever o nosso próprio duplicaria isso", e pergunta quais regras a verificação do CI deve aplicar antes de escrever contra a biblioteca da Apple. 42 segundos, e nenhum código escrito ainda.

The same request with sota-anchor. Claude Code calls the sota-anchor check twice and fetches github.com/apple/xcode-project-format. It reports that Apple publishes an official Swift library for the format, says writing its own parser would duplicate it, and asks which rules the CI check should enforce. Done in 42 seconds, with no code written.

Ambas são sessões gravadas do Claude Code (Opus 5.5, 2026-09-25 e 2026-09-26), desenhadas como um terminal Mac a partir das gravações de tela. A primeira é mostrada de cima e continua por mais 116 linhas. O arquivo do projeto de exemplo foi gerado com a biblioteca da Apple, então é o formato real.

A mesma verificação em outros planos

Seu agente, trabalhando pela memóriaSeu agente, após verificar
Faz engenharia reversa do formato .nwd byte por byte, assumindo que nada pode lê-lo sem o software da Autodesk.Encontra um leitor NWD independente publicado duas semanas antes e sinaliza que ele não tem licença, então não pode ser reutilizado sem a permissão do autor.
Envolve um modelo de visão em um pipeline de OCR, assumindo que modelos não conseguem ler desenhos de engenharia.Traz os benchmarks deste ano de modelos multimodais exatamente nesses desenhos, AECV-Bench e Enginuity, para que a escolha se baseie em resultados medidos.
Escreve gemini-3-pro no .env de um novo projeto. Isso nunca foi um ID de modelo servido.Usa gemini-3.1-pro-preview, que um registro público de modelos lista como servido hoje.

A primeira e a última linha são de execuções gravadas. Os artigos na segunda são o que a pesquisa retornou para esse plano em 2026-09-24.

Como funciona

Your request goes to your agent, which inverts it into what the plan assumes doesn't exist and writes two queries. sota-anchor searches the last year of arXiv, Hugging Face, GitHub, npm and crates.io and returns dated evidence. Your agent judges the evidence, never its memory, and reaches one of three outcomes: reuse what exists, build it, or no verdict.

Quando uma solicitação depende de algo estar indisponível (um leitor para um formato que só o software do fornecedor abre, uma biblioteca que ninguém escreveu, uma tarefa que modelos ainda não conseguem fazer), a habilidade check-what-exists executa uma verificação em três etapas:

  1. Inverter. Seu agente nomeia o que o plano assume que não existe: nenhuma biblioteca lê o formato project.xcproj do Xcode 27 ainda. Uma restrição que você declara ("não podemos usar o SDK do fornecedor") é mantida como dada; o que é verificado é se qualquer outra coisa atende a ela. O agente escreve duas consultas: a tarefa nas palavras do próprio campo e o que tornaria a solução alternativa desnecessária.
  2. Pesquisar. sota-anchor pesquisa os últimos 12 meses de artigos (arXiv, Hugging Face), repositórios (GitHub) e pacotes (npm, crates.io), além da web se você fornecer uma chave Brave. Ele relaxa cada consulta até que algo relevante retorne, e um orçamento de 60 segundos cobre todas as fontes.
  3. Julgar. Seu agente avalia apenas o que retornou. A suposição permanece a menos que a evidência documente o contrário. "Nenhuma biblioteca existe" é derrubada por um repositório publicado ou pacote que faz o trabalho, relatado com sua idade e atividade, porque existir não é o mesmo que maduro. "Modelos não conseguem fazer isso" precisa de resultados de benchmark.

O veredito é um de três. Quando algo já faz o trabalho, o agente nomeia isso e a evidência por trás, como na sessão acima. Quando a evidência não resolve a questão, a suposição permanece e o agente diz o que a derrubaria. Quando nada retorna, ele diz que nada foi verificado, em vez de tratar o silêncio como um veredito.

Também: IDs de modelos atuais

Uma conveniência menor, principalmente para novos projetos. Toda sessão do Claude Code começa com uma lista curta e datada dos IDs de API de modelos que o registro público do OpenRouter serve hoje, e os IDs mais antigos que eles substituíram, para que uma configuração nova nomeie um modelo que existe:

- GEMINI_MODEL=gemini-3-pro            # recalled from training: not a served ID
+ GEMINI_MODEL=gemini-3.1-pro-preview  # from the session's registry snapshot

A lista nomeia sua fonte e não faz nenhuma afirmação sobre qual modelo está em execução. Custa cerca de 160 ms por sessão, porque o hook lê um bloco renderizado antecipadamente e o atualiza em segundo plano uma vez por dia. Outros agentes recebem a mesma lista por meio de sota-anchor sync.

Início rápido: Claude Code

[!NOTE] Requer Python 3.11+ e uv. Sem chave de API.

No Claude Code:

/plugin marketplace add luckmanqasim/sota-anchor
/plugin install sota-anchor@sota-anchor

Depois inicie uma nova sessão. A primeira leva alguns segundos a mais enquanto o uv compila o ambiente do servidor MCP; depois disso, inicia imediatamente.

Para testar por uma sessão sem instalar:

git clone https://github.com/luckmanqasim/sota-anchor
claude --plugin-dir ./sota-anchor

O que você obtém:

ParteO que faz
Habilidade check-what-existsExecuta a verificação sozinha quando uma solicitação depende de algo estar indisponível.
/sota-check <plan>Executa a verificação sob demanda.
Servidor MCPA ferramenta check_what_exists e o recurso models://active.
Hook de início de sessãoAdiciona a lista de modelos datada a cada sessão. Nada para lembrar de executar.
/sota-syncAtualiza a lista de modelos agora e a escreve em CLAUDE.md, AGENTS.md e nas regras do Cursor.
Hook de prompt (opcional)Com SOTA_ANCHOR_PROMPT_HOOK=1, adiciona um lembrete quando uma mensagem diz que algo não pode ser feito.

Experimente

Três prompts que mostram o que ele faz:

  1. Um plano que depende de algo ausente. A verificação é executada sozinha:

    xcode 27 moved our project to the new project.xcproj format and there's no library for
    it yet, so write a swift parser we can use in CI to check each target's build settings
    

    O Claude encontra a biblioteca xcode-project-format da própria Apple, lançada após o treinamento do modelo, e pergunta o que a verificação do CI deve aplicar em vez de escrever um parser.

  2. Uma verificação sob demanda, para um formato geralmente considerado como exigindo o SDK do fornecedor:

    /sota-check "Write our own reader for Navisworks .nwd files, since we can't use the Autodesk SDK"
    

    Ele pesquisa repositórios, pacotes e artigos recentes, e relata o que encontrou, com datas, ou diz claramente que nada apareceu.

  3. Um identificador de modelo no código. A lista de modelos da sessão faz o trabalho:

    Add an Anthropic client to this script and pick the current flagship model
    

    O Claude usa um endpoint da lista datada que o plugin adiciona à sessão, em vez de um mais antigo lembrado do treinamento.

Outros agentes de codificação

A verificação é um servidor MCP simples, então funciona em qualquer agente que fale MCP. A lista de modelos vai para o arquivo de instruções do projeto.

AgenteA verificaçãoA lista de modelos vem de
Claude Codeautomática, ou /sota-checko plugin, a cada sessão
Cursorferramenta check_what_exists.cursor/rules/sota.mdc
VS Code + GitHub Copilotferramenta check_what_existsAGENTS.md
OpenAI Codex CLIferramenta check_what_existsAGENTS.md
Gemini CLIferramenta check_what_existsAGENTS.md
OpenCodeferramenta check_what_existsAGENTS.md
Qualquer outro cliente MCPferramenta check_what_existsarquivo de instruções do seu cliente

1. Instale a CLI uma vez:

uv tool install sota-anchor   # or: pipx install sota-anchor

2. Registre o servidor MCP no seu agente, usando o trecho abaixo para ele.

3. Opcionalmente, escreva a lista de modelos no projeto e execute novamente sempre que quiser uma lista nova:

sota-anchor sync --target agents   # writes AGENTS.md
sota-anchor sync --target cursor   # writes .cursor/rules/sota.mdc and .cursorrules

Apenas o texto entre os marcadores SOTA-ANCHOR é tocado, então o resto do arquivo permanece seu.

[!TIP] Fora do Claude Code, seu agente decide quando chamar check_what_exists a partir da própria descrição da ferramenta. Para garantir que seja executado, peça: "execute check_what_exists neste plano antes de construí-lo."

Cursor

.cursor/mcp.json no projeto, ou ~/.cursor/mcp.json para todos os projetos:

{
  "mcpServers": {
    "sota-anchor": { "command": "sota-anchor", "args": ["serve"] }
  }
}

Lista de modelos: sota-anchor sync --target cursor escreve .cursor/rules/sota.mdc, que é sempre aplicado. O Cursor também lê AGENTS.md.

VS Code (GitHub Copilot)

.vscode/mcp.json. A chave do VS Code é servers, não mcpServers:

{
  "servers": {
    "sota-anchor": { "command": "sota-anchor", "args": ["serve"] }
  }
}

Ou adicione ao seu perfil de usuário a partir de um terminal:

code --add-mcp '{"name":"sota-anchor","command":"sota-anchor","args":["serve"]}'

Lista de modelos: sota-anchor sync --target agents, depois ative a configuração chat.useAgentsMdFile. O agente local do VS Code não lê AGENTS.md por padrão.

OpenAI Codex CLI
codex mcp add sota-anchor -- sota-anchor serve

ou em ~/.codex/config.toml:

[mcp_servers.sota-anchor]
command = "sota-anchor"
args = ["serve"]

Lista de modelos: sota-anchor sync --target agents. O Codex lê AGENTS.md.

Gemini CLI
gemini mcp add sota-anchor sota-anchor serve

ou em ~/.gemini/settings.json (.gemini/settings.json para um projeto). Esse arquivo também é onde você diz ao Gemini CLI para ler AGENTS.md, já que ele lê GEMINI.md por padrão:

{
  "mcpServers": {
    "sota-anchor": { "command": "sota-anchor", "args": ["serve"] }
  },
  "context": { "fileName": ["AGENTS.md", "GEMINI.md"] }
}

Lista de modelos: sota-anchor sync --target agents.

OpenCode

opencode.json no projeto:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sota-anchor": { "type": "local", "command": ["sota-anchor", "serve"], "enabled": true }
  }
}

Para executá-lo por meio de uvx em vez de instalar, aumente o timeout: o OpenCode espera 5 segundos pelas ferramentas de um servidor, e o primeiro lançamento leva mais tempo que isso baixando pacotes.

"sota-anchor": {
  "type": "local",
  "command": ["uvx", "sota-anchor", "serve"],
  "enabled": true,
  "timeout": 30000
}

Lista de modelos: sota-anchor sync --target agents. O OpenCode lê AGENTS.md e recorre a CLAUDE.md quando não há um.

Qualquer outro cliente MCP

A maioria dos clientes, incluindo o Claude Desktop, aceita o formato comum mcpServers. Verifique a documentação do seu cliente para saber onde o arquivo fica.

{
  "mcpServers": {
    "sota-anchor": { "command": "sota-anchor", "args": ["serve"] }
  }
}

Para executá-lo sem instalar nada, deixe o uv buscá-lo do PyPI sob demanda. O primeiro lançamento baixa seus pacotes, então um cliente com timeout de inicialização curto pode precisar de uma segunda tentativa:

{
  "mcpServers": {
    "sota-anchor": { "command": "uvx", "args": ["sota-anchor", "serve"] }
  }
}

No Claude Code sem o plugin: claude mcp add sota-anchor -- sota-anchor serve.

[!TIP] Se seu editor disser que não consegue encontrar sota-anchor, forneça o caminho completo. uv tool dir --bin imprime a pasta onde o uv o instalou.

Linha de comando

Tudo o que o plugin faz também é um comando, e nenhum deles precisa de chave de API.

ComandoO que faz
sota-anchor check "<your plan>"Executa a verificação completa. Veja Em CI para saber o que ele retorna.
sota-anchor evidence --query "Xcode 27 project.xcproj parser"Busca por evidências. Sem LLM envolvido; --json para scripts.
sota-anchor serveExecuta o servidor MCP via stdio.
sota-anchor seedImprime o bloco de sessão. --refresh busca o registro primeiro.
sota-anchor sync --target allEscreve a lista de modelos em CLAUDE.md, AGENTS.md e nas regras do Cursor.

Opções do sync:

OpçãoO que faz
--targetclaude (o padrão), cursor, agents ou all.
--providerQuais provedores listar. Repetível; o padrão é anthropic, google e openai.
--all-providersLista todos os provedores: cerca de 4.600 tokens de contexto contra 510.
--max-per-providerEndpoints listados por provedor. Padrão 4.
--staleness-monthsQuão atrás do lançamento mais recente do provedor um modelo pode ficar antes de ser considerado superado. Padrão 12; aumente para provedores que lançam devagar.
--refreshIgnora o cache de 24 horas.

Em CI

Sem uma chave de API, check imprime o protocolo para um agente responder. Com uma, ele chega a um veredito por conta própria, o que o torna utilizável como um portão:

Código de saídaSignificado
0A limitação ainda se mantém.
2O plano depende de algo obsoleto.
3Sem veredito: nenhuma chave foi definida, então um agente ainda precisa julgar. Deliberadamente não é 0.
- run: uv tool install sota-anchor
- run: sota-anchor check "$(cat docs/design-notes.md)"
  env:
    SOTA_ANCHOR_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}

Configuração

Nada precisa ser definido. Tudo isso é opcional.

No Claude Code, o plugin pede suas duas chaves opcionais quando você o habilita e as mantém no armazenamento de credenciais do seu sistema. Deixe qualquer uma vazia para seguir sem ela.

Configuração do pluginEfeito
Token do GitHubAumenta o limite de busca do GitHub de 10 para 30 requisições por minuto. Não dê escopos: um token que pode ver seus repositórios privados os adiciona aos resultados de busca que seu agente lê.
Chave da API do Brave SearchAdiciona busca web geral como fonte de evidência. Sem ela, a web não é consultada.

O sota-anchor só lê variáveis nomeadas para ele, então uma chave que você definiu para outras ferramentas, como GITHUB_TOKEN, nunca é captada. Fora do plugin, defina estas em vez disso:

VariávelEfeito
SOTA_ANCHOR_GITHUB_TOKENO token do GitHub acima.
SOTA_ANCHOR_BRAVE_API_KEYA chave do Brave Search acima.
SOTA_ANCHOR_CACHE_DIROnde o catálogo e o bloco de sessão são armazenados em cache. Padrão ~/.cache/sota-anchor.
SOTA_ANCHOR_TTL_MINUTESQuão antigo o bloco de sessão pode ficar antes que o hook o atualize. Padrão 1440.
SOTA_ANCHOR_PROMPT_HOOK1 ativa o empurrãozinho no momento do prompt no Claude Code.

Para um veredito sem cabeça, onde nenhum agente está presente para julgar (como em CI):

VariávelEfeito
SOTA_ANCHOR_API_KEYQualquer chave compatível com OpenAI.
SOTA_ANCHOR_BASE_URLA URL base da API. Padrão OpenRouter; defina para usar a chave de outro provedor. Deve ser https://, ou http:// para um servidor nesta máquina (localhost, 127.0.0.1, ::1).
SOTA_ANCHOR_MODELO modelo julgador. Sem definição, é escolhido do catálogo ao vivo.

O que ele envia e busca

Tudo o que o sota-anchor faz pela rede e cada arquivo que ele escreve. Não há telemetria.

Quando a verificação roda, as consultas de busca que seu agente escreve a partir do seu pedido, e versões mais curtas delas conforme a busca relaxa, vão para estas APIs públicas com um User-Agent sota-anchor/<version>:

ServiçoEndpointO que recebe
arXivexport.arxiv.org/api/queryas consultas
Hugging Facehuggingface.co/api/papers/searchas consultas
GitHubapi.github.com/search/repositoriesas consultas, e seu token do GitHub se você definir um
npmregistry.npmjs.org/-/v1/searchas consultas
crates.iocrates.io/api/v1/cratesas consultas
Brave Searchapi.search.brave.com/res/v1/web/searchas consultas e sua chave, apenas se você definir uma

Para a lista de modelos, ele busca openrouter.ai/api/v1/models, um endpoint público que não exige chave e não recebe nada sobre você. O hook de sessão o atualiza em segundo plano no máximo uma vez por dia.

Para um veredito sem cabeça, quando SOTA_ANCHOR_API_KEY está definido, o plano e as evidências encontradas para ele vão para a API em SOTA_ANCHOR_BASE_URL, que é openrouter.ai/api/v1 a menos que você a altere. Tanto sota-anchor check quanto a ferramenta MCP fazem isso, incluindo o servidor do plugin se a variável estiver no ambiente do qual o Claude Code parte. Sem ela, seu agente faz o julgamento e nada vai para uma API de LLM.

No primeiro lançamento, o uv baixa os pacotes Python que o servidor precisa do PyPI, nas versões exatas que uv.lock fixa.

No disco, ele escreve o catálogo de modelos e o bloco de sessão em ~/.cache/sota-anchor, ou em SOTA_ANCHOR_CACHE_DIR. /sota-sync e sota-anchor sync escrevem um bloco marcado em CLAUDE.md, AGENTS.md ou nas regras do Cursor no projeto atual, e apenas quando você os executa. O hook de prompt opcional lê seu prompt na sua máquina para decidir se adiciona um empurrãozinho, e não o envia a lugar nenhum.

Solução de problemas

SintomaO que fazer
O servidor check não conecta no Claude CodeCertifique-se de que uv está instalado e em PATH, então inicie uma nova sessão. O primeiro início constrói o ambiente do servidor e leva alguns segundos a mais. /mcp mostra o status do servidor.
Outro agente não consegue encontrar sota-anchorDê a ele o caminho completo. uv tool dir --bin imprime a pasta onde o uv o instalou.
O OpenCode relata falha no servidor ao usar uvxAumente seu timeout para 30000. O OpenCode espera 5 segundos por padrão, e um primeiro lançamento do uvx leva mais tempo baixando pacotes.
Uma verificação diz que nada foi encontradoLeia os erros que ele lista: uma fonte pode ter sido limitada ou ter expirado. Defina um token do GitHub para aumentar o limite do GitHub, tente novamente com um months maior, ou reformule as consultas com o termo mais específico primeiro.
A lista de modelos está ausente ou antigaExecute /sota-sync, ou sota-anchor sync fora do Claude Code.
check diz SOTA_ANCHOR_BASE_URL must start with https://Use a URL https:// do provedor. http:// simples é aceito apenas para um servidor na sua própria máquina.

Qualquer outra coisa: abra uma issue. Para um problema de segurança, siga SECURITY.md em vez disso.

Limitações

  • Se a verificação roda é decisão do seu agente. No Claude Code, ela rodou antes de qualquer código ser escrito em todos os testes em solicitações de engenharia como as acima, e ficou quieta nas comuns. Em outros agentes, peça por nome quando importar.
  • Uma descoberta é uma pista, não uma decisão. Um artigo não prova que uma ferramenta pronta para produção existe, e um repositório não prova que funciona. Trate uma descoberta como um motivo para investigar.
  • A relevância é lexical. Um resultado precisa mencionar dois dos termos da consulta, o que mantém fora projetos que apenas compartilham uma sigla, mas não os que compartilham palavras genéricas. Seu agente vê cada descrição e descarta o que está fora do tópico, mas espere algum ruído.
  • PyPI não é pesquisado. Não tem API de busca. Pacotes Python geralmente ainda aparecem através de seus repositórios no GitHub.
  • arXiv é lento e peculiar. As solicitações são espaçadas em 3,5 s de acordo com seus termos de uso. Sua borda recusa alguns clientes HTTP, então uma solicitação recusada tenta novamente através da biblioteca padrão. Quando uma fonte falha, os erros dizem isso; leia-os antes de confiar em uma "limitação se mantém".
  • A recuperação para em 60 segundos. Uma fonte ainda em execução no prazo mantém o que encontrou e relata a deficiência.
  • A lista de modelos pode estar um dia antiga. O hook nunca espera pela rede. Execute /sota-sync para atualizá-la imediatamente.
  • O veredito sem cabeça não foi testado contra um provedor ao vivo. Ele é coberto por testes com um modelo falso, mas nenhuma execução real de API foi feita ainda.

Notas de design

  • Sem dicionários de tópicos. A recuperação conhece palavras funcionais genéricas do inglês e nada sobre qualquer campo. As consultas mantêm a ordem em que seu autor as escreveu, e uma consulta relaxa descartando seus últimos termos primeiro.
  • E, não OU. arXiv lê all:{phrase} como um OU sobre cada palavra; para uma consulta de teste que correspondeu a 329.590 artigos, então ordenada por data, retornou os artigos mais recentes sobre qualquer coisa. Os termos são combinados com E, e a consulta é relaxada apenas quando não encontra nada.
  • Sem veredito do nada. Um conjunto de evidências vazio nunca chega à etapa de julgamento, então um agente não pode preencher um veredito de obsolescência da memória.
  • Dados de referência, não ordens. O bloco de sessão diz de onde seus dados vieram e para que servem, e não reivindica autoridade sobre o modelo que o lê. Uma redação anterior que fazia isso foi corretamente recusada por um modelo anfitrião como injeção de prompt.
  • Sem modelos codificados. A hierarquia lê a estrutura de um ID de modelo: um token com um dígito é uma versão, um token alfabético pertence à linhagem. Então gpt-4o e gpt-5.5 compartilham uma linhagem através de uma mudança de nome. Um modelo conta como superado quando algo mais novo compartilha sua linhagem, quando fica mais atrás do lançamento mais recente do provedor do que a janela de obsolescência, ou quando o registro o expirou.

Desenvolvimento

git clone https://github.com/luckmanqasim/sota-anchor
cd sota-anchor
uv sync --extra dev
uv run pytest            # all offline
uv run ruff check .
claude plugin validate .

A suíte nunca toca a rede ou seu próprio cache. HTTP passa por httpx.MockTransport e o LLM por um falso injetado. Cada teste recebe um diretório de cache privado, uma consulta DNS real falha o teste, e testes de hook colocam ferramentas de atualização falsas primeiro em PATH. CI roda no Ubuntu e Windows com Python 3.11, 3.12, 3.13 e 3.14.

Contexto

SciUnlearn (Paul, Patwardhan & Cohan, arXiv:2608.20960) descobre que os métodos atuais de desaprendizado de máquina "são incapazes de eliminar efetivamente conhecimento em nível de afirmação e muitas vezes alcançam apenas supressão superficial." Se afirmações desatualizadas não podem ser removidas limpa e completamente dos pesos de um modelo, a correção tem que acontecer no contexto, no momento em que o modelo está prestes a agir com base na crença obsoleta. É aí que o sota-anchor trabalha.

A habilidade pede seu veredito de "algo já faz isso" como um bloco de afirmação-razão ([SOTA ARBITER PARADIGM SHIFT]), um dos quatro formatos de QA nesse benchmark, emprestado aqui como uma forma. A ideia de que formular uma atualização dessa maneira torna um agente mais propenso a agir sobre ela é a hipótese de design deste projeto, não uma descoberta do artigo.

Licença

MIT © 2026 Luckman Qasim