O ank e as alternativas
O ank não é a primeira camada curada sobre uma base de código. Aqui está o que cada alternativa faz bem, onde o ank difere e quanto essa diferença custa a ele.
Num relance
| Alternativa | Boa em | Onde o ank difere | O que custa ao ank |
|---|---|---|---|
| Retrieval (RAG) | Boa emAchar o que parece relevante para uma consulta, num corpus que ninguém curou. | Onde o ank difereResponde o que se aplica a um caminho: um teste de pertinência, não um ranking. Sem embeddings, sem serviço de índice. | O que custa ao ankAlguém precisa ter escrito a restrição e o scope dela. |
| Um wiki mantido por LLM | Boa emPáginas derivadas de fontes brutas, que o modelo consegue regenerar se forem perdidas. | Onde o ank difereUm ADR registra uma escolha que não tem fonte. Ele é ancorado por hash e assinado na ratificação, nunca reescrito. | O que custa ao ankNada regenera um registro: a decisão é escrita uma vez e ratificada por uma pessoa. |
| Open Knowledge Format | Boa emConhecimento que cruza organizações: um consumidor nunca rejeita um documento pelo que falta nele. | Onde o ank difereMesmo instinto e mesma forma, markdown com frontmatter YAML e sem servidor. Mas o ank rejeita um campo desconhecido. | O que custa ao ankUm arquivo malformado é recusado em vez de lido. |
| Workflows de skills de processo | Boa emUm método rico para o ciclo inteiro, de entrevistar a pessoa até revisar antes do merge. | Onde o ank difereO ank também traz métodos, e mede o resultado: ank done roda os verificadores e nunca lê qual método foi usado. | O que custa ao ankUm método que ninguém segue é uma linha de frontmatter. Só a árvore diz se o trabalho foi feito. |
Contra retrieval
RAG responde o que parece relevante para esta consulta; ank context src/auth/ responde o que se aplica a este caminho. O primeiro ordena por similaridade, o segundo é um teste de pertinência a um conjunto. Para uma restrição, é exatamente isso que importa: uma regra que deveria valer mas ficou em sétimo lugar não valeu, e nada avisa.
Sem embeddings, sem serviço de índice, sem reindexar a cada commit. O custo é real: alguém precisa ter escrito a restrição e o scope dela. O ank não substitui a busca num corpus que ninguém curou. Ele substitui a página do wiki que nunca foi encontrada.
ank context src/auth/
CONSTRAINTS (1 active)
ADR-06d2 Opaque sessions rather than stateless JWT
TASKS (1)
TASK-820d [open] Migrate auth to opaque sessions
> ank claim TASK-820d to start
Contra um wiki mantido por LLM
O padrão do Karpathy tem três camadas (fontes brutas, um wiki que pertence ao modelo, um arquivo de schema) e três operações: ingest, query, lint. O ank tem essa forma e difere no que é a camada do meio.
Uma página de wiki é derivada de fontes e pode ser regenerada se for perdida. Um ADR registra uma escolha que não tem fonte: alguém decidiu por sessões opacas em vez de JWTs, o registro é a única cópia e nenhuma ingestão traz ele de volta. Por isso ele é ancorado por hash e assinado na ratificação em vez de reescrito, e o lint é mecânico em vez de um modelo relendo em busca de contradições.
Contra o Open Knowledge Format
O Open Knowledge Format do Google é o parente mais próximo, alcançado de forma independente: markdown com frontmatter YAML, sem servidor, sem SDK, identidade dada pelo caminho, o formato como contrato. Os sinais de confiança da v0.2 vêm do mesmo instinto das provas do ank, que adotou dois deles como estão: a convenção de ator e verified.
Um eixo diverge, de propósito dos dois lados. O OKF diz aos consumidores para nunca rejeitar um documento pelo que falta nele, porque entre organizações um documento rejeitado é conhecimento perdido. O ank rejeita um campo desconhecido, porque para um critério que não pode ser enfraquecido às escondidas, um arquivo aceito mas malformado é uma regra que parou de valer em silêncio.
Contra um workflow de skills de processo
As skills do Matt Pocock são o exemplo mais rico: duas dúzias de prompts cobrindo o ciclo inteiro, entrevistar a pessoa até a spec ficar precisa, quebrá-la em tickets, conduzir a implementação test-first, revisar antes do merge. A skill é o método, e o agente fica preso a ele enquanto trabalha.
O ank também traz métodos: seis skills dentro do binário, o contrato e cinco irmãs para plan, drift, loop, tdd e diagnose. Uma tarefa pode nomear uma com ank new --method tdd, o ank context indica qual é assim que a tarefa é reivindicada, e ank skills conta designações contra execuções. O que nenhum comando faz é impor uma. ank done nunca lê o método: ele mesmo roda os verificadores declarados, porque um agente avaliado pelo processo aprende a fingir o processo, e um agente avaliado pela árvore precisa mudar a árvore.
Quanto custa rodar
Dois números em vez de um adjetivo.
- ~280 tokens
- em toda sessão para as seis skills: o frontmatter delas, o nome e a descrição que um harness mantém carregados. 38 para o contrato, de 41 a 57 para cada irmã, contados com
cl100k_base. O corpo só é lido quando a skill é invocada. - 8000 caracteres
- o limite padrão do que o
ank contextentrega a quem lê.
O que o ank não é
Dito com clareza, para você descartar rápido se não for o que precisa.
Não é um tracker. Sem ciclos, estimativas, velocity ou roadmap.
Não é um wiki. Só entra o que é acionável ou vinculante para um agente.
Não é um buscador. Não substitui a busca num corpus que ninguém curou.
Não é um fiscal de processo. Ensina métodos e mede só o resultado.
Não é uma fronteira de segurança. Protege contra drift, não contra um atacante.
Instalar o ank
Dois comandos. Linux, macOS e Windows, com git 2.34 ou mais recente.
npm install -g @haksolot/ank
npx skills add haksolot/ank