okf-gem · blog
Release · 1.10.0

Busque em todos os bundles de uma vez: okf 1.10.0

RS Rodrigo Serradura · ·6 min de leitura
🇺🇸 Read in English

Conhecimento não fica em um bundle só. Tem o manual, tem o serviço do qual você está de plantão, tem o repositório em que você esteve uma hora atrás. A okf 1.8.0 deu um nome a cada um deles e deixou um okf server hospedar todos, e a CLI já conseguia fazer uma pergunta ao conjunto inteiro. A página em que você de fato lê esses bundles, não. De dentro de um bundle, a caixa de busca conhecia só aquele bundle, e uma palavra que morava ao lado devolvia um canvas vazio e nenhuma saída.

A okf 1.10.0 fecha isso. Aperte Cmd-K em qualquer grafo servido e a busca alcança todos os bundles que o hub hospeda.

A página do grafo da okf com a paleta de comandos aberta sobre ela. A consulta é transaction, e seis linhas de resultado aparecem abaixo, cada uma com o título do conceito com o termo destacado, seu tipo, um trecho de uma linha e o slug do bundle de onde veio: crypto-bitcoin e ga4. O bundle aberto no momento é o okf-gem. A página do grafo da okf com a paleta de comandos aberta sobre ela. A consulta é transaction, e seis linhas de resultado aparecem abaixo, cada uma com o título do conceito com o termo destacado, seu tipo, um trecho de uma linha e o slug do bundle de onde veio: crypto-bitcoin e ga4. O bundle aberto no momento é o okf-gem.
De dentro do okf-gem, perguntando sobre transações, e sendo respondido pelo Bitcoin e pelo Google Analytics. Cada linha carrega o bundle de onde veio, e abrir uma cai naquele conceito naquele bundle.

Um índice, não quatro listas

O jeito óbvio de construir isso é perguntar a cada bundle e concatenar o que voltar. É também o jeito que produz um ranking em que ninguém pode confiar, porque uma pontuação só significa alguma coisa contra o corpus sobre o qual foi calculada. Quatro rankings separados colados em sequência colocam o melhor acerto local de um bundle acima de um acerto muito melhor de outro, por um motivo que o leitor jamais consegue ver.

Então o hub ranqueia um índice sobre todos os bundles que ele hospeda, de uma vez só. Um termo raro no corpus inteiro vale mais que um termo que está em toda parte, que é para isso que serve o motor de índice que a 1.9.0 trouxe, e é o que listas por bundle não conseguem expressar. O que volta é uma ordem em que dá para confiar: a melhor resposta da máquina é a primeira linha, esteja ela no bundle que estiver. Os resultados param em 50 e o total é informado junto, porque um limite silencioso é lido como uma resposta completa e quem acha que já viu tudo para de procurar.

A caixa e a paleta fazem coisas diferentes, e agora dizem isso

A página do grafo tem duas superfícies de busca que pareciam iguais e queriam dizer coisas diferentes. A caixa na barra de cima filtra o grafo à sua frente. O Cmd-K encontra, em todos os bundles. A caixa não carregava nenhum desses fatos, então esvaziava o canvas em silêncio e nunca mencionava a outra.

Três coisas agora vivem dentro da caixa: o atalho que abre a paleta, um contador vivo 4/27 para que um resultado vazio seja lido como um número que chegou a zero e não como uma tela que apagou, e, no zero, um painel que nomeia o bundle e a consulta com a busca entre bundles a uma tecla de distância.

O topo da página do grafo da okf. A caixa de busca contém a palavra attribution, mostrando uma contagem de 0 de 27 e um chip Cmd-K. Abaixo dela um painel diz: nenhum resultado em okf-gem/.okf para attribution, com um botão Buscar em todos os bundles ligado ao Enter e um botão Limpar ligado ao Escape. O topo da página do grafo da okf. A caixa de busca contém a palavra attribution, mostrando uma contagem de 0 de 27 e um chip Cmd-K. Abaixo dela um painel diz: nenhum resultado em okf-gem/.okf para attribution, com um botão Buscar em todos os bundles ligado ao Enter e um botão Limpar ligado ao Escape.
Zero de vinte e sete, dito com todas as letras, com a busca que teria encontrado a uma tecla de distância.

Um canvas em branco não consegue dizer se o grafo está vazio, se o filtro quebrou ou se a página caiu. O 0/27 consegue: o filtro rodou, é isto que ele varreu, e a resposta é genuinamente nada. O Enter entrega a consulta à busca entre bundles já digitada, e o Escape limpa.

O registry veio para dentro da página que ele descreve

Registrar um bundle sempre foi trabalho de um agente num terminal. Ler um, não. Uma reunião com leitores não técnicos resolveu a divisão: okf registry set é a superfície certa para quem escreve bundles e a errada para quem só os lê.

Então a barra lateral ganhou uma engrenagem, e atrás dela o painel Bundles: cada bundle que o servidor conhece, com seu @slug, sua pasta, sua contagem de conceitos e um veredito de saúde, e as três mudanças que valem ser feitas de uma cadeira.

A página do grafo da okf com um painel deslizante aberto à direita, intitulado Bundles, quatro bundles no registry. Cada linha mostra um nome de pasta, um arroba-slug, uma contagem de conceitos e um veredito verde de nenhum problema; a primeira tem os selos padrão e atual. Uma nota no rodapé diz: adicionar um bundle é feito no terminal, okf registry set, normalmente pelo seu agente. A página do grafo da okf com um painel deslizante aberto à direita, intitulado Bundles, quatro bundles no registry. Cada linha mostra um nome de pasta, um arroba-slug, uma contagem de conceitos e um veredito verde de nenhum problema; a primeira tem os selos padrão e atual. Uma nota no rodapé diz: adicionar um bundle é feito no terminal, okf registry set, normalmente pelo seu agente.
Quatro bundles, cada um com os fatos pelos quais você escolheria entre eles, e três verbos ao alcance sem sair do grafo.

Tornar padrão, renomear, remover. Gerenciar é o padrão e o --read-only recusa, porque o público para quem isso foi feito não deveria precisar de uma linha de comando para usar a página cujo link recebeu. Se você hospeda o hub para outras pessoas, essa é a flag a conhecer. A segurança vem de onde o servidor está ouvindo, e não do que você lembrou de passar: um bind em loopback é gravável, qualquer outro endereço é recusado direto, e não existe flag que abra. Adicionar continua acontecendo no terminal, porque um navegador não consegue entregar um caminho de sistema de arquivos.

refine, o terceiro verbo de autoria

A agent skill tinha dois verbos para manter um bundle honesto: curate mantém a estrutura sã como ela está, maintain mantém o conteúdo verdadeiro. Nenhum dos dois faz a pergunta mais difícil, que é se o conhecimento está no lugar certo.

O refine faz. Ele reestrutura um bundle para extrair o valor que o OKF foi desenhado para dar: revelação progressiva, grafo emergente, tags transversais, capturar uma vez e linkar muitas. Ele parte de evidência, prefere coesão a equilíbrio, usa as alavancas gratuitas antes de mover um arquivo, e propõe em vez de aplicar, devolvendo um relatório e um prompt de execução que você lê antes de qualquer coisa mudar.

Duas visões de leitura tornam essa evidência mecânica em vez de estimada no olho. O okf graph --hubs ranqueia cada conceito por links de entrada e os agrupa por onde esses links nasceram:

$ okf graph --hubs @okf-gem
Hubs — @okf-gem (26 of 27 concepts with inbound links)

  capabilities/graph-server     ×14   capabilities 5, (root) 3, design 3, model 2, format 1
  capabilities/search           ×11   design 5, (root) 3, capabilities 3
  cli                           ×11   capabilities 5, design 3, (root) 2, model 1

Um hub cuja maioria de entrada vem de fora da própria área é um conceito morando no diretório errado, e a linha diz isso. E as linhas do okf tags --by agora carregam count/total, então cli 2/8 conta de relance que aquela tag é uma preocupação espalhada pelo bundle, e não um rótulo local de uma área.

Qualquer um pode somar um verbo

O okf agora é extensível. Instale uma gem chamada okf-* e os verbos que ela carrega aparecem no okf help sob installed extensions:, despachados como nativos. Instalar a gem é a instalação inteira: não existe uma lista de addons abençoados e não há nada para você configurar. Um addon quebrado é pulado e reportado em vez de derrubar a CLI junto, e um verbo nativo não custa nada a mais para rodar.

Atualizando

gem update okf
okf server            # todos os bundles registrados, uma busca

A entrada completa está no changelog. Se você hospeda o hub para outras pessoas, --read-only é a flag a conhecer; se você escreve bundles, refine é o próximo a experimentar.