Pular para o conteúdo

Authorship

O plugin Authorship registra quem escreveu cada seção de cada Blueprint (o plano), uma pessoa ou um agente, e quais seções de um agente uma pessoa revisou. Assim você vê, em qualquer Blueprint, quanto um agente escreveu e nenhuma pessoa respalda ainda. É registrado, nunca adivinhado: nenhum modelo e nenhuma detecção de estilo, só onde cada mudança foi feita. Desligado por padrão; eidos plugin enable authorship o liga.

  • Authorship, uma visão na barra lateral auxiliar ao lado do Blueprint aberto, começa com um número sob o título do Blueprint: a parte das suas palavras que um agente escreveu e nenhuma pessoa revisou. Uma barra mostra quem escreveu cada palavra, com uma legenda de cada parte (Agent, waiting for review, Agent, reviewed, People e Nobody claimed it) e uma linha que diz o que falta revisar.
  • Sob Sections, cada seção nomeia quem a escreveu em palavras simples (Claude (agent), Grace Hopper (from Git), Nobody claimed it) e se está Waiting for review ou Reviewed by alguém. Mark reviewed em uma seção, e Mark all reviewed sob o resumo, marcam as seções de um agente como revisadas em nome da pessoa na página. Sem ninguém escolhido como a pessoa na página, a visão diz para escolher quem você é no menu do pé da barra de atividades.
  • O plugin não tem nada para configurar; a sua página de configurações diz onde fica a visão.

Cada seção de um Blueprint (um cabeçalho e o texto abaixo dele, até o próximo cabeçalho) recebe quem a escreveu de acordo com onde a sua mudança foi feita:

  • Um salvamento a partir do editor da página é da pessoa na página: o usuário com que esta máquina age, senão a identidade do git que corresponde a um usuário da lista. Uma mudança feita em outro lugar antes do salvamento não é atribuída a ela.
  • Um agente escreve direto no arquivo, então depois de cada edição que faz em um Blueprint ele roda eidos authorship attribute <blueprint> --as <alias>, e as seções que ele mudou ficam registradas como dele. O guia do agente diz para fazer isso.
  • Uma mudança que ninguém reivindicou, como uma edição à mão em outro editor, é do autor do git quando cada linha da seção está em um commit (o autor do commit mais recente entre elas, associado a um usuário da raiz por e-mail ou nome, lido pelo plugin Git), e de ninguém caso contrário.

A detecção compara hashes, nunca diffs. Uma seção cujo texto já está registrado mantém quem a escreveu e a sua revisão, mesmo se foi movida. Uma seção cujo texto mudou pega o novo autor e perde a revisão. Espaços em branco, comentários HTML e as regiões de uma ferramenta ficam fora do hash, então reajustar as linhas não é uma mudança. Uma seção que só tem a região de uma ferramenta, como Tasks ou uma lista de registros, é da ferramenta e não é registrada.

Uma pessoa respalda a seção de um agente revisando-a: o agente continua sendo quem a escreveu, e a seção fica marcada como revisada por essa pessoa. Uma revisão é só de uma pessoa, nunca de um agente. Uma mudança posterior na seção a apaga.

Janela do terminal
eidos authorship review B-PNSQ --section Intent --as grace # one section; without --section, every one waiting

Em cada Blueprint, o plugin conta as suas palavras e a parte delas em seções que um agente escreveu (agent), e nas que nenhuma pessoa revisou (agent_unreviewed). eidos authorship imprime as duas, e eidos list --json as leva sob plugins.authorship em cada Blueprint.

O registro é um único arquivo, .eidos/plugins/authorship/snapshot.yaml, compartilhado e commitado para que uma equipe veja a mesma coisa, e nunca dentro de um Blueprint. É um snapshot, não um histórico: para cada Blueprint pelo seu id, cada seção pelo caminho dos seus cabeçalhos tem um hash do seu texto, quem a escreveu (o alias de um usuário da raiz), ou git (um autor do git que não corresponde a nenhum usuário), ou nenhum dos dois, e reviewed_by.

blueprints:
B-PNSQ:
Login > Intent:
hash: 29131ad07db3
writer: claude
reviewed_by: grace

Um hash que nenhum Blueprint tem mais é retirado, e um Blueprint que a raiz não tem mais vai junto, então o arquivo é só do tamanho do texto atual da raiz e nada é escrito por mudança. As chaves são ordenadas, então uma mudança é um diff pequeno. Só a CLI o escreve; nunca o edite à mão.

  • .eidos/plugins/authorship/snapshot.yaml, compartilhado: o snapshot acima.

O plugin não tem configurações além do seu interruptor.

Janela do terminal
eidos authorship # every blueprint's share an agent wrote and no person reviewed
eidos authorship B-PNSQ # one blueprint, section by section, with each writer; --json
eidos authorship attribute B-PNSQ --as claude # what an agent runs after each edit it makes
eidos authorship review B-PNSQ --as grace # a person marks the agent's sections reviewed; --section <heading>

Cada comando aceita --json. Sem --as, EIDOS_USER nomeia o usuário, senão o usuário com que esta máquina age, senão a identidade do git que corresponde a um usuário da lista; um nome que não é ninguém é recusado com o comando eidos users add que o adiciona. Ler um Blueprint recalcula os seus hashes, então uma mudança que ninguém reivindicou é registrada na próxima vez que algo o lê.

Um agente se adiciona uma vez com eidos users add "<Its name>" --alias <alias> --agent quando eidos users não o lista, roda attribute --as <alias> depois de cada edição e nunca roda review: uma revisão é de uma pessoa.

Nada: o Authorship não acrescenta nenhum achado ao eidos check. Desligado, nada é registrado e o snapshot fica onde está.