Pular para o conteúdo

Guia de gerenciamento de múltiplos repositórios MonoSpecs

Editar página

MonoSpecs é a abordagem de gerenciamento de vários repositórios do HagiCode. Ele rastreia e gerencia sub-repositórios por meio de monospecs.yaml, e funciona para qualquer projeto que precise de um local para coordenar vários repositórios independentes.

Arquivo de configuração

monospecs.yaml é o núcleo de toda a solução de gestão, definindo:

  • Lista e localização de sub-repositórios
  • URL Git para cada repositório
  • Nome de exibição e ícone
  • Comportamento de integração com OpenSpec

Diferenças dos repositórios regulares

RecursoRepositório RegularProjeto gerenciado por monospecs
Localização OpenSpecDiretório raiz openspec/Diretório raiz do repositório principal openspec/
Alterar escopoLimitado ao repositório atualPode envolver vários sub-repositórios
Pureza do sub-repositórioEspecificações misturadas com códigoEspecificações estabelecidas no repositório principal, sub-repositórios são mais limpos
Arquivar confirmação automáticaPrecisa de commits manuais de especificaçõescommit_when_archive: true compromete automaticamente as especificações no repositório principal
  • Gerenciamento unificado: gerencie todos os subrepositórios em um arquivo de configuração
  • Suporte de automação: fornece metadados de repositório para scripts e ferramentas
  • Otimização para IA: a configuração estruturada ajuda o agente de IA a entender os relacionamentos dos repositórios
  • Integração OpenSpec: integração perfeita com o fluxo de trabalho de gerenciamento de mudanças
  • Sub-repositórios mais limpos: as especificações são mantidas no repositório principal, os sub-repositórios contêm apenas o código real

Use MonoSpecs primeiro em cenários como estes:

1. Desenvolvimento Colaborativo Multi-Repositório Quando um projeto é dividido em vários repositórios independentes:

  • Aplicativo front-end, serviço back-end e aplicativo de desktop desenvolvidos separadamente
  • Necessidade de coordenar versões e dependências entre repositórios
  • Documentação e projetos auxiliares separados do código principal

2. Gerenciamento Auxiliar de Projetos Use MonoSpecs para gerenciar:

  • Projeto de documentação
  • Site oficial
  • Crie ferramentas e scripts
  • Cada repositório mantém seu próprio controle de versão

3. Desenvolvimento de recursos entre repositórios Um recurso que requer alterações em vários repositórios:

  • Precisa rastrear alterações em quais repositórios
  • Confirmar especificações automaticamente para corrigir o repositório de destino
  • Coordenar atualizações e dependências de versão

Siga estas etapas para concluir a inicialização do monospecs:

Crie um vazio git pasta em seu repositório principal (nota: este é git, não repos/ - esta é a convenção monospecs):

Terminal window
mkdir git
cd git
git init
cd ..

Crie o monospecs.yaml arquivo de configuração no diretório raiz do repositório principal:

version: "1.0"
commit_when_archive: true
repositories:
- path: "repos/frontend"
url: "https://github.com/your-org/frontend.git"
displayName: "Frontend App"
icon: "🌐"
- path: "repos/backend"
url: "https://github.com/your-org/backend.git"
displayName: "Backend Service"
icon: "⚙️"

Itens de configuração:

Item de configuraçãoTipoObrigatórioDescrição
versioncordaSimVersão do arquivo de configuração
commit_when_archivebooleanoNãoSe deve confirmar automaticamente as especificações ao arquivar (não confirmar o código do sub-repo)
repositoriesmatrizSimLista de configuração do repositório
repositories[].pathcordaSimCaminho do repositório (relativo à raiz do projeto)
repositories[].urlcordaSimURL do repositório Git
repositories[].displayNamecordaNãoNome de exibição do repositório
repositories[].iconcordaNãoÍcone do repositório (emoji)

Adicionar sub-repositórios ao repositório principal

Seção intitulada “Adicionar sub-repositórios ao repositório principal”

Adicione todos os sub-repositórios ao repos/ diretório. Este diretório deve ser excluído do controle de versão Git do repositório principal para evitar o rastreamento do conteúdo do sub-repositório:

# Exclude all sub-repositories
repos/

Se você usa o aplicativo de desktop HagiCode, abra o aplicativo e adicione seu repositório principal como um projeto. Clique no botão “Adicionar Projeto” ou “+” na tela inicial, selecione a pasta do repositório principal e você verá todos os sub-repositórios e suas informações de status.

Use o monospecs.yaml configuração para clonar todos os sub-repositórios configurados para o repos/ diretório:

Isso clonará todos os subrepositórios com base nas URLs especificadas no arquivo de configuração.

version: "1.0"
commit_when_archive: true
repositories:
# ... repository configurations

Cada sub-repositório pode ter:

  • Pasta de alteração do OpenSpec (openspec/)
  • Independente .git/ diretório
  • Opcional AGENTS.md para configuração do AI Agent

Ao adicionar um novo sub-repositório ao monospecs.yaml repositories matriz:

repositories:
- path: "repos/new-service"
url: "https://github.com/HagiCode-org/new-service.git"
displayName: "New Service"
icon: "🆕"

Quando os URLs ou metadados do repositório mudam:

  1. Editar monospecs.yaml para atualizar as entradas correspondentes
  2. Verifique se a sintaxe YAML está correta
  3. Se a sincronização for alterada, atualize manualmente a configuração do repositório local

O AGENTS.md fornece orientação específica do repositório para o agente de IA:

Informações técnicas da pilha

  • Ferramentas de estrutura e construção
  • Convenções de código e práticas de nomenclatura
  • Gerenciamento de versão e configuração de implantação

Comportamentos Específicos do Projeto

  • Extensões de configuração e requisitos especiais
  • Padrões de integração OpenSpec
  • Necessidades de coordenação entre repositórios

Usando AGENTS.md permite que o Agente de IA:

  • Entenda os relacionamentos e dependências do repositório
  • Gere código e refatore em vários repositórios
  • Mantenha a consistência no controle de versão e nas configurações

Seja gerenciando um projeto gerenciado por monospecs ou um repositório regular, você pode usar o fluxo de trabalho OpenSpec do HagiCode:

Repositório regular:

  • OpenSpec na raiz openspec/ diretório
  • As alterações afetam apenas o repositório atual

Projeto gerenciado por monospecs:

  • Leituras OpenSpec monospecs.yaml configuração
  • Mudanças rastreadas por subrepositório
  • Especificações automaticamente comprometidas com alvos corretos

Quando commit_when_archive: true:

  • As especificações são automaticamente confirmadas no repositório principal
  • O código dos sub-repositórios não foi confirmado (permanece separado)
  • Simplifica o gerenciamento de especificações - não são necessários commits manuais de especificações para sub-repositórios

Os sub-repositórios mantêm controle de versão independente:

  • Confirmar alterações reais de código em seus próprios repositórios
  • As especificações são confirmadas separadamente (do repositório principal durante o arquivamento)
  • Use kebab-case (letras minúsculas e hífens) para caminhos de repositório
  • Use nomes de exibição simples e descritivos em chinês
  • Use emojis relevantes como ícones
  • Seja conciso e descritivo
  • Use nomenclatura consistente em repositórios semelhantes
  • Selecione ícones que representem a finalidade do repositório

Configuração de sincronização com status real

  • Verifique regularmente monospecs.yaml reflete a estrutura real do repositório
  • Atualizar ou remover entradas quando repositórios forem adicionados ou removidos
  • Teste as alterações para garantir a validade da configuração

Controle de versão para configuração

  • Rastreie alterações no arquivo de configuração com git
  • Documente os motivos das principais alterações de configuração
  • Identifique versões do arquivo de configuração para facilitar a reversão

Se o monospecs.yaml arquivo não foi encontrado na raiz do projeto:

  1. Verifique se o arquivo existe no local correto
  2. Verifique se você está no diretório de trabalho correto
  3. Verifique se há erros de digitação no nome do arquivo de configuração

Problemas comuns de sintaxe YAML:

  • Recuo incorreto (use espaços, não tabulações)
  • Aspas ausentes ou extras em torno de strings
  • Tipos de dados inválidos (strings precisam de aspas, números não)
  • Campos obrigatórios ausentes (como path ou url)

Se um repositório recém-adicionado não estiver aparecendo:

  1. Verifique o path está correto em monospecs.yaml
  2. Verifique se o repositório foi clonado com sucesso
  3. Verifique se o repositório existe no local esperado

Se a clonagem do repositório falhar:

  1. Verifique a conexão de rede
  2. Verifique se o URL do repositório Git está correto
  3. Verifique se há problemas de autenticação
  4. Revise o status do contêiner Docker
  5. Verifique a disponibilidade de espaço em disco

Para informações mais detalhadas, consulte a documentação monospecs e verifique o repositório HagiCode para exemplos de configuração.