Skip to content

Releases: DavidLeati/graphow

v0.4.4

Choose a tag to compare

@DavidLeati DavidLeati released this 06 Oct 04:07

A 0.4.4 traz o gerente de demandas, a etapa antes da orquestração: transforma uma demanda em prosa num Goal pronto para os agentes.

Agentes e skills

  • Nova skill graphow-gerente, que roda na sessão principal com a conexão humano. Ela tria a demanda (entra no grafo o que trabalha como desenvolvimento; suporte do dia a dia fica fora), classifica em melhoria ou projeto pelo número de pontos que a mudança toca, pergunta só o que muda a conclusão e separa fato, hipótese e pendência.
  • Com o humano de acordo, grava a definição num propor_patch: o Goal com criterios_aceite, em_aberto e fora_do_escopo, as Constraint que o escopam, as Decision de negócio com o motivo e as Evidence que as justificam, com fonte, local e trecho. As Decisions orientam o Goal e descem a toda a decomposição.
  • Depois entrega o Goal à graphow-orquestracao e, ao fim, revisa a entrega contra o que foi decidido. A mudança de rumo no meio do caminho vira uma Decision nova com substitui.
  • O gerente não é um papel novo do kernel: ele propõe e o humano decide, então Goal e Constraint continuam sendo gestos do humano. Um teste confere que o lote que a skill ensina passa pelos portões como humano e cai como planejador.
  • graphow setup passa a instalar a graphow-gerente junto da graphow-mcp e da graphow-orquestracao.

Governança

  • Nova propriedade operacional do Projeto, gravacao_do_gerente, que diz quando o gerente grava: apos_aprovacao (o padrão, também quando a propriedade falta) só depois de o humano aprovar o rascunho; durante_alinhamento grava cada Decision, Constraint ou Evidence assim que o humano a confirma. Um valor fora desses dois é recusado com o domínio na mensagem.

Interface web

  • A aba Configurações ganha o seletor "Gravação do gerente" na operação do Projeto, ao lado da cadência e do teto de rodadas, mostrando o padrão quando o Projeto não definiu.

v0.4.3

Choose a tag to compare

@DavidLeati DavidLeati released this 06 Oct 03:56

A 0.4.3 completa a arbitragem máxima e traz a seleção múltipla no canvas.

Governança

  • A arbitragem máxima passa a entregar o gesto acao_externa ao executor. Era o único gesto delegável que o preset ainda deixava com o humano: a aba Configurações mostrava "Só o humano", e a orquestração parava na linha Acao externa: mesmo num projeto em que a pessoa pediu para não ser chamada.
  • Sob o preset, o executor faz a ação quando tem as ferramentas e devolve falta_ferramenta quando não tem. A governança máxima segue com o humano, e a política personalizada escolhe.
  • A vista traz a linha acao_externa com o executor, que o condutor lê para despachar. Ontologia, README, skills e condutor foram corrigidos onde diziam que nenhum preset fixo delegava o gesto.

Interface web

  • Seleção de vários nós no canvas com Shift ou Ctrl + clique e com o laço do Shift + arrastar. Arrastar um nó da seleção leva o grupo inteiro, e no explorador Shift + clique soma o item.
  • Ações em lote sobre a seleção: Delete (ou Backspace) exclui a aresta, o nó ou todos os nós selecionados num lote atômico, com uma confirmação que lista o que sai. A barra e o menu oferecem excluir e copiar os IDs.

v0.4.2

Choose a tag to compare

@DavidLeati DavidLeati released this 06 Oct 03:56

A 0.4.2 tira o viés de desenvolvimento do graphow. O grafo já servia a pesquisa, relatório, análise ou operação, mas duas regras e o texto dos agentes supunham código: a Evidence que sustenta uma decisão precisava ser linha de arquivo, e a tarefa que é um gesto no mundo, como enviar um e-mail, não tinha onde caber. O que é próprio de código continua valendo, agora como o caso em que a entrega é código.

Evidence com fonte genérica

  • A Evidence localizada ganha uma segunda forma de ponteiro: fonte (URL, documento, conversa com data e participantes), local opcional e livre (página, seção, minuto) e o trecho literal. A forma de arquivo (arquivo, linhas, trecho) segue como era.
  • Com isso, o planejador justifica uma Decision com o que a diretoria disse numa reunião ou com o parágrafo de um relatório publicado, sem gravar uma ata só para citá-la.
  • local passa a declarar ponteiro, como linhas e trecho já declaravam: quem o cita traz o ponteiro inteiro. arquivo ou fonte sozinhos seguem livres.
  • A ontologia vai a 1.4.0.

Tarefa de ação externa

  • A Task ganha a propriedade entrega: artefato (o padrão: arquivo, documento, dado) ou acao_externa (enviar um e-mail, marcar uma reunião, publicar). criar_tarefa a grava e recusa outro valor, e proximas_tarefas a devolve.
  • Novo gesto de governança, acao_externa, com os valores humano ou executor: quem assume e entrega a Task de ação externa. Nesta versão os dois presets fixos o deixam com o humano, e só a política personalizada o entrega ao executor (a 0.4.3 muda a arbitragem máxima). Na composição entre projetos, o humano vence o executor.
  • O RoleGate recusa o executor que assume ou entrega essa Task sob o gesto do humano, inclusive por propor_patch, e o que troca a entrega para fugir da reserva. A posse para fechar a Task já aprovada segue livre.
  • A prova da ação é uma Evidence com fonte e resultado, ligada a um Artifact sem arquivos. A revisão e o fechamento seguem o ciclo de sempre.
  • A vista diz quando o gesto está com o executor, e a aba Configurações o oferece.

Agentes e skills

  • Os sete subagentes e as duas skills falam de entrega, fonte e verificação. Testes, git diff, base-colisoes, commit e push ficam como o caso em que a entrega é código ou o trabalho mora num repositório git.
  • O condutor devolve à raiz a Task de ação externa que é do humano, na linha nova Acao externa:. A raiz mostra a tarefa à pessoa, espera e registra a prova em nome dela quando ela diz que fez.
  • O executor que tem o gesto faz a ação com as ferramentas que tiver e devolve os resultados novos falta_ferramenta, quando não tem a ferramenta, ou acao_externa_do_humano, quando o kernel recusa a posse.
  • O revisor julga o que prova o critério: os testes no código, a leitura e a conferência de números e fontes no texto, a prova na ação externa. O revisor Sonnet dispensa o git diff quando a entrega não é código.
  • O explorador localiza também em documentos, planilhas e atas. O cookbook ganha as receitas da Evidence de fonte e da prova de ação externa.
  • Os frontmatters do graphow-executor-opus e da skill graphow-mcp, que não eram YAML válido, foram corrigidos.

Ontologia, README e interface

  • A ontologia e o README descrevem o graphow como coordenação de qualquer trabalho, e as descrições das ferramentas MCP deixam de supor código: exemplos, motivo do modelo, trilha leve e arquivos relativos à raiz do trabalho.
  • Na interface, a sessão do hook passa a ser de um ambiente por pasta de trabalho, e ramo base e caminhos de colisão aparecem como o caso do repositório git.

v0.4.1

Choose a tag to compare

@DavidLeati DavidLeati released this 06 Oct 03:56

A 0.4.1 junta o setup do Claude Code num comando só. Antes, instalar o graphow pedia copiar skills e subagentes à mão e ajustar o caminho do executável em cada um; agora o graphow setup faz isso e diz o que ainda segue manual.

Setup do Claude Code

  • Novo comando graphow setup. Ele copia as duas skills (graphow-mcp e graphow-orquestracao) e os sete subagentes para ~/.claude e troca o command: graphow de cada subagente pelo caminho absoluto do executável que está rodando, para o servidor MCP subir mesmo fora do PATH.
  • Com --escrever-settings, mescla os hooks e as permissões no settings.json e guarda o anterior em .graphow.bak. Sem a flag, só imprime o que gravaria.
  • --conferir diz se as cópias instaladas estão em dia com o repositório e sai com 1 quando alguma envelheceu. Depois de cada git pull, basta rodar graphow setup de novo.
  • No fim, o comando lista o que segue manual: registrar o servidor MCP da sessão principal (papel humano), gravar a política de governança do projeto e reiniciar o Claude Code.
  • A fiação de hooks do repositório passa à forma executável + args que o setup gera, e um teste a mantém igual à que ele gera.

Documentação

  • A instalação do README passa a ter quatro passos: o pacote, o graphow setup, o que segue manual e como atualizar.
  • O guia do MCP ganha a seção do Claude Code, com o papel humano da sessão principal e a leitura liberada, e os caminhos da máquina viram marcadores.
  • A configuração da orquestração aponta para o setup no lugar das cópias à mão.

v0.4

Choose a tag to compare

@DavidLeati DavidLeati released this 05 Oct 18:39

A 0.4 traz duas mudanças. A governança vira configurável: cada projeto escolhe, gesto a gesto, se quem decide é o humano ou um árbitro agêntico. E a orquestração fica mais barata, com medida de onde o custo nasce e regras para cortá-lo.

Governança configurável

  • Novo tipo Governanca e novo papel arbitro (ontologia 1.3.0). O nó guarda a política global e só o humano o escreve.
  • Dois presets fixos, governanca_maxima (o padrão, tudo com o humano) e arbitragem_maxima, e uma política personalizada. O Projeto herda do global e pode sobrepor só parte dos gestos.
  • Os gestos que antes eram só do humano passam a seguir a política do projeto do alvo: responder Question, promover Aprendizado ao Setor ou ao Projeto, criar Constraint, excluir, fechar Goal, encerrar Sessão, liberar posse alheia e integração. Também entram na política o max_correcoes e a estrutura (estrito ou ilimitado).
  • Seguem sempre humanos: criar Goal, promover Aprendizado a global, configurar a governança e fazer push.
  • O Projeto de um nó sai só das arestas de contenção (contem, produz, decompoe). Quando o nó alcança mais de um Projeto, vale a política mais restritiva: humano vence árbitro, estrito vence ilimitado e vale o menor max_correcoes.
  • Um agente só conclui uma Task que tenha veredito vigente aprovado, de revisor, humano ou árbitro, ou um aceite legítimo pelo teto de correções. A propriedade veredito fica reservada a quem julga.
  • O árbitro não decide o que ele mesmo abriu e não promove o aprendizado que ele mesmo registrou.
  • MCP: a sessão árbitro passa a existir, junto com a ferramenta configurar_governanca. O protocolo e as vistas de Sessão, Task e Goal mostram a governança vigente.
  • Novo subagente graphow-arbitro. A raiz da orquestração o despacha para os gestos que a política lhe entrega, em vez de parar no humano.
  • A consolidação de aprendizados deixa de ser reaberta enquanto o consolidado espera a promoção.

Interface web

  • Nova aba Configurações, aberta pela engrenagem da faixa global. Ela tem escopo Global ou Projeto, cartões dos presets, uma tabela de gestos editável na personalizada com a origem de cada valor e a auditoria dos gestos do árbitro.
  • Liberar a posse de uma Task pelo inspetor ou pelo menu.
  • O Goal ganha o vocabulário de status.
  • Question respondida e Aprendizado promovido pelo árbitro levam o selo "pelo árbitro".
  • API: GET e PUT da governança global e por projeto, auditoria do árbitro e liberação de posse.

Custo da orquestração

A linha de base de 414 transcrições de um projeto extenso mostrou de onde vem o custo:

  • executores de 99 a 138 turnos, com 190 a 280 mil tokens de contexto por turno;
  • saídas de ferramenta acima de 2 mil caracteres que ficam na conversa até o fim (Bash 1954, expandir_no 1623, Read 993);
  • o executor mais caro leu 51 caminhos, 47 deles fora dos arquivos_alvo.

Medição

  • O Run grava a forma do contexto, lida da transcrição: o contexto por turno (média e pico), a maior saída de ferramenta, as saídas acima de 2 mil caracteres por ferramenta, as pausas acima de 5 min (o cache de prompt expira) e os caminhos lidos. Os caminhos contam o que passa por Read, Grep e Glob e os leitores de shell (cat, sed, grep, Get-Content).
  • O graphow orquestracao-medir ganha as linhas contexto: e mais caros:, com as leituras fora do alvo de cada Task.
  • Novo comando graphow transcricao-medir <arquivo-ou-pasta>. Ele mede transcrições .jsonl direto do disco e dá a linha de base sem escrever no banco.

Executor

  • Lê só os arquivos_alvo, as faixas apontadas pelas Evidence e até cerca de 5 consultas pontuais de símbolo.
  • Quando falta contexto, devolve o novo RESULTADO: falta_contexto com uma pergunta de localização. O condutor a resolve com o explorador, sem abrir Question.
  • Saída longa vai para arquivo.
  • expandir_no fica limitado a cerca de 5 por tarefa.
  • Espera de CI é uma chamada bloqueante só.

Condutor

  • Teto de tamanho por Task: cerca de 30 min e 60 a 80 turnos.
  • Operação longa é cortada por etapa: preparar, esperado, executar o lote e apurar.
  • O modelo é escolhido pela etapa, e a etapa mecânica vai em Sonnet.
  • Ao dividir uma Task, a original vira a última etapa, e quem depende dela espera a cadeia inteira.

Instrução do humano

  • Chega literal numa linha Humano: do despacho e é gravada no grafo (Note e Decision) antes do desenho.
  • Se ela muda o desenho, a rodada devolve decomposicao sem executar.
  • A linha de cota do harness passa a ser ancorada no início da linha, para uma cota citada nessa instrução não contar.

Custo visível

  • O condutor devolve a linha Custo: com minutos, ferramentas e tokens de cada filho, e marca ALERTA o executor acima de 40 min ou 100 ferramentas. A raiz repete isso ao humano.
  • O portão de higiene da raiz cai para 150 mil tokens de contexto, porque cada rodada deixa expirar o cache da raiz.

Atualização: copie de novo .agents/skills/graphow-orquestracao e .agents/agents/graphow-*.md para ~/.claude. O graphow-arbitro é novo.

v0.3.2

Choose a tag to compare

@DavidLeati DavidLeati released this 30 Sep 23:20

A 0.3.2 deixa a lateral direita do front web legível em tela pequena e faz responder uma dúvida caber nela.

Responder uma dúvida

  • A pergunta da Question aparece como texto de leitura, com parágrafos, listas e código, sem a caixa que rolava dentro do painel. Um botão "Editar" abre o campo de edição.
  • "Responder e destravar" fica preso no pé do painel, sempre à vista.
  • O status de Task e Question vai para a linha do topo.
  • Um botão abre a dúvida numa aba de leitura no centro, com texto maior e a resposta ao lado quando há espaço.

Histórico do log

  • A metade do histórico recolhe até o cabeçalho e dá a altura ao inspetor. Ela começa recolhida em janelas com menos de 800px de altura e recolhe sozinha enquanto uma dúvida aberta está selecionada.
  • O calendário mostra a semana, e o mês abre num clique.
  • A viagem no tempo e os filtros ficam presos no topo enquanto a lista rola.
  • Os eventos são agrupados por dia, e o replay funciona também pelo teclado e em tela de toque.

Legibilidade

  • Nenhum texto da lateral direita fica abaixo de 11,5px. O corpo do texto fica em cerca de 14px.
  • Os botões A−/A+ ajustam o tamanho do texto entre 90% e 130%.
  • O texto fraco do app inteiro passa de 3,8:1 para 5,3:1 de contraste, e os metadados dos cartões do canvas passam de 3,7:1 para 5,6:1, ambos acima do mínimo do WCAG AA.
  • O título do nó acompanha a largura da lateral, e o caminho fica numa linha só.

Telas estreitas

  • Abaixo de 900px de largura, a lateral direita flutua sobre o canvas em vez de espremê-lo. Um X, o Esc ou o botão da faixa a fecham, e o rascunho é mantido.
  • Numa lateral estreita, as propriedades mostram a chave acima do valor.
  • A largura máxima da lateral acompanha a janela, e o centro nunca fica com menos de 320px.