# harness

> Original em inglês. Tradução gerada por IA, não pelo autor. [Ler o original em inglês](https://www.ferueda.com/projects/harness).

> Kit pessoal para agentes com skills reutilizáveis, fluxos de trabalho e uma fábrica de software mínima.

Criei o Harness para manter meu fluxo de desenvolvimento consistente entre projetos. Ele reúne as skills e os fluxos de revisão que uso todos os dias, além do Factory: um caminho persistente de um item de trabalho até um pull request revisado.

O Factory cuida da triagem, do planejamento, da implementação e da revisão, uma etapa por vez. Registra cada resultado, pausa quando preciso tomar uma decisão e publica apenas o commit exato que passou pela revisão. Ele nunca faz o merge do pull request.

[Veja o código no GitHub](https://github.com/ferueda/harness)

## Como as peças se encaixam

- **Factory.** O caminho completo de um item de trabalho até um pull request revisado. Começa com uma issue do Linear ou um item local, encaminha o trabalho para planejamento ou diretamente para implementação, executa revisões e pode publicar o commit exato que passou. Cada execução processa no máximo uma etapa pendente e termina.
- **Revisões.** `change-review` e `plan-review` também funcionam de forma independente. Usam papéis de revisão separados e deixam achados estruturados e artefatos no repositório de destino.
- **Skills.** Componentes reutilizáveis no formato [Agent Skills](https://agentskills.io/) para planejamento, diagnóstico, passagens de contexto, revisões e outras tarefas repetíveis. Algumas incluem seus próprios scripts, como a CLI `sessions` para buscar trabalhos anteriores.
- **Provedores e executor.** Cursor e Codex usam os mesmos fluxos. A CLI gerencia as configurações do repositório e executa o trabalho. Revisões independentes gravam em `.harness/runs/`; o Factory mantém seu estado e suas evidências em um armazenamento persistente separado.

## Como eu uso

Para uma mudança pequena, executo `change-review` antes de abrir ou integrar um pull request. Ele executa revisores de implementação e de qualidade de código sobre o mesmo diff. Corrijo o que importa e executo de novo.

Para trabalhos maiores, começo com uma issue do Linear. O Factory leva o mesmo item por triagem, planejamento, implementação e revisão. Se uma revisão exigir mudanças, ele para e pede que eu revise o trabalho ou avalie o mesmo candidato novamente. Quando o candidato passa, peço ao Factory que publique o pull request. Continuo fazendo o merge pessoalmente.
