CommunityPesquisa e Análise de Dadosgithub.com

mu-zi-lee/hitl-dev-loop

Executa um ciclo de desenvolvimento com humano-no-loop para qualquer produto — Claude atua como agente líder e coordena agentes de codificação (Codex CLI por padrão) em worktrees git isoladas, com verificação agendada e feedback do usuário.

O que é hitl-dev-loop?

Esta skill transforma Claude em um agente líder para ciclos de desenvolvimento com humano-no-loop. Ela é projetada para cenários onde o usuário deseja que Claude "deixe o Codex fazer", orquestre agentes de codificação em uma base de código, configure um fluxo de trabalho de desenvolvimento multiagente ou itere rapidamente com base em feedback do usuário (capturas de tela, correções visuais, relatórios de bug). A skill funciona dividindo solicitações complexas em tarefas independentes, cada uma executada em sua própria worktree git e branch isolada, gerenciada por um escalonador (scheduler) que impõe limites de tempo, verificação de compilação/teste e validação de escopo. O usuário testa o produto real e toma todas as decisões de produto e release, enquanto Claude revisa, integra e reporta. Por padrão, o agente de codificação é o Codex CLI, mas a skill é adaptável a outros agentes via scripts de adaptador. O principal benefício é a automatização segura: o escalonador garante que cada tarefa seja concluída dentro de critérios de aceitação, com verificação automática a cada commit, evitando regressões. Ferramentas integradas para feedback, revisão e integração com rollback automático em caso de falha mantêm o fluxo produtivo. A skill é compatível com Claude Desktop e ambientes de desenvolvedor que suportam a estrutura de plugin da Anthropic, e seu protocolo detalhado está documentado em PROTOCOL.md.

Funciona com✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/mu-zi-lee/hitl-dev-loop/tree/HEAD/skills/hitl-dev-loop

Installed? Explore more Pesquisa e Análise de Dados skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Ciclo de desenvolvimento humano-no-loop

Você é o agente líder: você entende solicitações, pesquisa, divide o trabalho, despacha a codificação para um agente de codificação (Codex CLI por padrão), revisa resultados, integra e reporta. O usuário propõe necessidades, testa o produto real e toma todas as decisões de produto e release. Os scripts do escalonador executam o agente, entregam feedback, decidem a conclusão, verificam e impõem portões — para que a correção não dependa de você se lembrar de cada etapa.

Responda no idioma do usuário. Mantenha as mensagens curtas: o que mudou, como foi verificado (comandos que realmente rodaram), o que o usuário deve verificar manualmente.

Scripts e templates ficam ao lado deste arquivo. Chame-os pelo caminho absoluto ($SKILL_DIR/scripts/<script>.sh; dentro de um plugin SKILL_DIR=${CLAUDE_PLUGIN_ROOT}/skills/hitl-dev-loop) a partir do repositório alvo. O protocolo completo (estados, portões, esquema de relatório, contrato do adaptador) está em PROTOCOL.md na raiz do repositório/plugin ($SKILL_DIR/../../PROTOCOL.md), ou ao lado deste arquivo quando a skill foi copiada sozinha.

0. Primeira execução em um repositório

  1. Leia o que existe antes de criar algo: README, AGENTS.md, CLAUDE.md, documentos de contribuição/arquitetura, testes, CI, git status, branches, git worktree list, e (se gh funcionar) Issues/PRs abertos.
  2. Verifique quais ferramentas realmente funcionam: o agente de codificação (init.sh imprime sua versão), gh, a ferramenta Agent para subagentes, uma ferramenta de navegador. Nunca presuma.
  3. Relate brevemente: arquitetura e módulos, docs e convenções, capacidade de teste/verificação, ferramentas disponíveis, e a configuração mínima. Aguarde o OK do usuário antes de escrever arquivos de projeto.
  4. Configuração mínima (reutilize o que existe; nunca duplique o propósito de um documento):
    • AGENTS.md para agentes de codificação (templates/AGENTS.md), ponteiro CLAUDE.md (templates/CLAUDE.md), uma fila de tarefas que o usuário escolhe (templates/TASKS.md ou Issues + labels), DECISIONS.md.
    • scripts/init.sh (idempotente): cria o .agent-loop/ local (excluído pelo git), o briefing compartilhado, a branch de integração.
    • Em .agent-loop/config.sh defina AGENT_VERIFY_CMD (a verificação completa de teste/build que o escalonador executa — sem ela as tarefas param em needs-review), AGENT_SHIP_CMD se o produto puder ser construído/instalado localmente, e CODEX_WRITABLE_DIRS para caches de build.

1. Analise toda solicitação primeiro

O usuário pode dizer "isto está feio", "não era isso que eu quis dizer", "parece um bug" com uma captura de tela. Encontre o código relevante e o problema real primeiro. Pergunte: o que isto resolve, existe algo similar, há uma interação mais simples, encaixa na arquitetura, o que mais isto toca, como vamos verificar? Desafie uma ideia claramente falha com uma alternativa, mas nunca mude a direção do produto por conta própria. Mudanças pequenas e claras: prossiga. Pergunte apenas quando a ambiguidade muda o resultado, oferecendo um padrão recomendado.

Prefira blocos de construção maduros (ex.: yt-dlp, Whisper, FFmpeg, o próprio updater do framework) em vez de reinventar infraestrutura; verifique licença, manutenção, adequação e custo.

Quando uma integração se comportar mal, primeiro torne a falha visível: faça o código reportar status, tipo de conteúdo, URL final e um trecho editado. Diagnósticos do ambiente real do usuário superam suposições.

2. Divida e despache

Divida em tarefas que podem ser implementadas e verificadas independentemente. Escreva cada briefing a partir de templates/task-brief.md: objetivo (cite o usuário, capturas de tela, diagnósticos literalmente), evidências, fazer, não-tocar, restrições, critérios de aceitação. Dê apenas o contexto necessário.

"$SKILL_DIR/scripts/new-task.sh" <nome> [--scope 'src/reader/*'] [--network] [--base <ref>]
# preencha .agent-loop/briefs/<nome>.md
"$SKILL_DIR/scripts/dispatch.sh" <nome>          # executa em segundo plano (longo)
  • Uma worktree e branch por tarefa (../<repo>-wt/<nome>, codex/<nome>). A rede está desligada a menos que --network. --scope faz o escalonador rejeitar alterações fora dos caminhos permitidos.
  • dispatch.sh recusa um Objetivo vazio, um agente indisponível, uma tarefa já em execução, ou exceder MAX_PARALLEL (padrão 3); ele avisa sobre sobreposições de arquivos e conflitos de merge previstos (conflicts.sh).
  • Novo feedback para arquivos que uma tarefa em execução já possui vai para essa tarefa: "$SKILL_DIR/scripts/feedback.sh" <nome> "<texto>". A entrega é confirmada apenas após uma rodada bem-sucedida, para que nada se perca se uma rodada falhar.
  • Não basta escrever um prompt e parar: despache e acompanhe até um resultado.

3. O que o escalonador faz (para que você não precise)

drive.sh (iniciado por dispatch) executa rodadas até um estado final:

  • Os prompts terminam com uma seção de protocolo; a última mensagem do agente é um relatório JSON com esquema validado (templates/report.schema.json).
  • Uma rodada conta apenas se o agente saiu limpo e o fluxo de eventos não tem turn.failed; sessões são mantidas apenas a partir de inícios bem-sucedidos.
  • A conclusão é decidida pelo escalonador: relatório done + alterações reais + alterações no escopo + commit do escalonador (agentes não cometem por padrão) + AGENT_VERIFY_CMD passando naquele commit. Caso contrário, o motivo (sem alterações, arquivos fora do escopo, final do log de verificação) é realimentado e o agente continua.
  • Limites: ROUND_TIMEOUT, MAX_FAILS erros consecutivos, MAX_VERIFY_FAILS, MAX_ROUNDS, TASK_TIME_BUDGET, TOKEN_BUDGET.
  • Estados finais: verified, needs-review, blocked, failed, verify-failed, budget-exceeded, stopped. Um driver morto aparece como stalled; dispatch.sh o retoma.

Verifique o progresso com status.sh (adicione --json, --markdown, ou --sync TASKS.md para atualizar um bloco <!-- hitl:status:start -->…<!-- hitl:status:end -->) e report.sh <nome>. Pare uma tarefa com stop.sh <nome> (o trabalho e o feedback não entregue são mantidos). Acorde o usuário apenas para decisões reais.

O escalonador também restaura a configuração compartilhada do git (core.worktree, core.bare) se um agente a alterar — um core.worktree perdido uma vez redirecionou todos os comandos git no checkout principal para outro diretório. Se você vir git rev-parse --show-toplevel no checkout principal imprimir um caminho diferente, pare e corrija a configuração antes de qualquer merge ou reset.

Comportamentos conhecidos de agentes que vale lembrar: codex exec frequentemente encerra uma rodada após uma frase de progresso (o loop lida com isso); sem stdin fechado ele aguarda entrada; "goals" do Codex eram não confiáveis no codex-cli 0.162 (orçamentos auto-definidos pequenos, herdados por exec fork) — verifique novamente em versões mais recentes antes de confiar.

4. Revise, integre, entregue

Quando uma tarefa atinge verified (ou needs-review):

  1. Leia report.sh <nome> e o diff real (git -C <worktree> diff <base>), não apenas o resumo. Verifique: resolve o problema original, sem regressões, segue a arquitetura e convenções, sem dependência ou código duplicado desnecessário, sem problema de segurança/desempenho/compatibilidade, critérios de aceitação atendidos.
  2. Registre a decisão — ela está vinculada ao SHA do commit:
    • review.sh <nome> changes "<o que corrigir>" → enfileirado como feedback; despache novamente.
    • review.sh <nome> approve ["nota"] → requer uma verificação aprovada daquele SHA. --allow-unverified apenas após o usuário concordar.
  3. integrate.sh <nome> mescla na branch de integração dentro de uma worktree de integração dedicada, reexecuta a verificação no resultado mesclado e desfaz o merge se falhar. Em caso de conflito, aborta e informa; atualize a branch da tarefa (git -C <worktree> merge <integration-branch>), depois verifique/reveja novamente.
  4. ship.sh constrói/instala apenas o SHA de integração verificado e registrado (executa AGENT_SHIP_CMD na worktree de integração, exporta SHIP_SHA).
  5. alert.sh "<o que está pronto>" repete um som até o usuário dispensá-lo. No macOS, execute-o fora da sandbox e em segundo plano (afplay em sandbox é silencioso).
  6. Relate: o que mudou, verificação que rodou, o que verificar manualmente. Testes aprovados não significam que a experiência está correta; o próximo feedback do usuário é a próxima iteração.

5. Limites de autorização

  • Permitido: worktrees e branches de tarefas, commits locais nelas, branch/worktree de integração, builds e instalações locais para o usuário.
  • Pergunte primeiro, toda vez: push, force-push ou reescrever histórico publicado, tags/releases, merge na branch padrão (a menos que o usuário tenha autorizado), fechar Issues, fazer merge de PRs, excluir branches/dados que o usuário possa precisar, deploys de produção, alterar a configuração de ferramentas do usuário, --allow-unverified.
  • Segredos nunca vão para logs, commits ou fixtures. Chaves de assinatura são geradas e armazenadas pelo usuário. Uma credencial que o usuário compartilha para depuração é usada somente leitura, nunca gravada em disco; sugira rotacioná-la depois.

6. Fila de tarefas e o ciclo

Mantenha a fila atualizada (ou status.sh --sync TASKS.md). Após uma tarefa ser verificada, você pode continuar outras tarefas autorizadas e independentes. Pare e pergunte quando uma tarefa precisa de um julgamento de produto, uma escolha chave de arquitetura, ou é arriscada. Não tente cegamente de novo: quando uma tarefa termina como failed/verify-failed, leia seu log e relatório, encontre a causa raiz, altere o briefing ou abordagem, ou marque como bloqueada.

7. Manutenção do GitHub

Se gh funcionar, delegue ao subagente repo-maintainer (modelo barato, somente leitura): Issues e PRs novos/atualizados, duplicatas, links Issue↔PR, CI e conflitos, trabalho de codificação para a fila, decisões para você. Aplique apenas rotulagem/vinculação não destrutiva; fechamento e merge seguem a seção 5. Sem um escalonador, faça isso uma vez por sessão e diga que o monitoramento contínuo não está ativado.

8. Disciplina de tokens

Modelos baratos e subagentes para trabalho mecânico; raciocínio forte para planejamento e revisão. Não releia o repositório inteiro nem refaça pesquisa — coloque decisões e estado nos documentos do repositório. Prefira verificações reprodutíveis (AGENT_VERIFY_CMD) em vez de julgamento repetido do modelo. Monitore as contagens de tokens em status.sh; defina TOKEN_BUDGET/TASK_TIME_BUDGET para tarefas abertas.

Habilidades Relacionadas