✏️ Personalizando o HIVE
O HIVE foi projetado para ser clonado e adaptado. Tudo é editável — squads, personas, skills, schema de memória e workers. Este guia cobre todas as adaptações mais comuns.
🏗️ Criando um novo squad
Um squad é uma pasta com um CLAUDE.md, um diretório memory/ e, opcionalmente, foundation/, skills/ e workers/. O Claude Code o carrega quando você navega para essa pasta.
Passo 1 — Crie a estrutura de pastas
mkdir -p squads/my-squad/{context,memory,foundation,skills,workers,data}Passo 2 — Crie o CLAUDE.md
Este é o arquivo central. Ele define a persona, o escopo e as regras. Copie a estrutura de um squad existente e adapte conforme necessário.
Passo 3 — Inicialize o STATE.md
# squads/my-squad/memory/STATE.md [L1] Squad criado. Nenhum trabalho ativo ainda. [L2] [L3]
Passo 4 — Registre no CLAUDE.md raiz
Abra o CLAUDE.md raiz e adicione seu squad à tabela de squads:
# No CLAUDE.md raiz — tabela de squads | Squad | Folder | Persona | Scope | |---|---|---|---| | ... squads existentes ... | | Meu Squad | `squads/my-squad/` | [Nome] | [escopo em uma linha] |
Passo 5 — Preencha o contexto
Crie squads/my-squad/context/squad-context.md com os dados específicos da empresa que este squad precisa. Ou rode /hive-setup — ele fará as perguntas e preencherá automaticamente.
🌿 Adicionando sub-squads
Sub-squads são pastas aninhadas dentro de um squad pai. Use-os quando um squad precisar de especialização — vários produtos dentro de Produto, várias regiões dentro de CS, vários clientes dentro de Operações.
A cascata de CLAUDE.md do Claude Code faz com que abrir um sub-squad carregue três contextos: raiz + pai + sub-squad.
Estrutura
CLAUDE.md do pai — padrão roteador
O CLAUDE.md do pai descreve o que cada filho trata e quando usar cada um:
# squads/product/CLAUDE.md ## Sub-squads Este squad tem duas especializações. Navegue para a correta: | Sub-squad | Folder | Quando usar | |---|---|---| | SaaS Product | `squads/product/saas/` | Features de plataforma, assinaturas, self-serve | | Services Product | `squads/product/services/` | Projetos customizados, entrega enterprise | # O STATE.md do pai agrega o L1 dos dois filhos # Rode: python _core/state-aggregator.py squads/product/
Criar um sub-squad
# Crie a pasta mkdir -p squads/product/saas/{memory,foundation,skills} # Crie o CLAUDE.md para o sub-squad (mesma estrutura de um squad regular) # A seção Persona deve ser mais específica que a do pai # Inicialize o STATE.md echo "[L1]\nSub-squad criado.\n\n[L2]\n\n[L3]" > squads/product/saas/memory/STATE.md
🗑️ Removendo um squad
Se você não precisa de um squad (ex.: sem squad de Dev por ser não-técnico, sem squad de Financeiro no estágio inicial):
-
1
Remova-o da tabela de squads no
CLAUDE.mdraiz -
2
Atualize o L1 de
squads/<nome>/memory/STATE.mdpara marcá-lo como inativo:Squad inativo — não utilizado nesta instalação. -
3
Opcionalmente, delete a pasta por completo. Se puder precisar dela no futuro, mantenha-a marcada como inativa — reativar é apenas uma linha no
CLAUDE.mdraiz.
🎭 Renomeando personas
As personas padrão (Victor, Leah, Maya, Ethan…) são placeholders genéricos. Substitua por nomes que se encaixem na cultura da sua empresa, ou use títulos de cargos no lugar de nomes.
Edite a seção de persona no topo do squads/<nome>/CLAUDE.md:
# Antes ## Persona **Victor** — Head of Sales. Challenger Sale methodology. Direct, numbers-driven... # Depois — com o seu nome ## Persona **Rafael** — Head of Sales. Challenger Sale methodology. Direct, numbers-driven...
CLAUDE.md — nenhum outro arquivo o referencia. Um simples localizar-e-substituir no arquivo é tudo que você precisa.
Personalização da personalidade
Além do nome, edite as 2-3 frases que descrevem como a persona se comunica. Isso afeta diretamente o tom e o estilo:
# Cultura mais formal/conservadora **Marcus** — Head of Sales. Metodológico, baseado em evidências, prefere resumos escritos a briefings verbais. Pede dados antes de formar opiniões. Nunca exagera no pitch. # Cultura mais startup/agressiva **Jake** — Head of Sales. Alta energia, se move rápido, confortável com ambiguidade. Viés para ação. Questiona o "vamos esperar para ver".
⚡ Escrevendo skills customizadas
Skills são arquivos markdown que definem um comportamento repetível. Qualquer membro do squad pode invocá-las com /nome-da-skill no Claude Code.
Onde colocá-las
# Disponível globalmente (todos os squads) skills/my-skill.md # Disponível apenas em um squad squads/commercial/skills/my-skill.md
Formato do arquivo de skill
Registre no CLAUDE.md do squad
Após criar o arquivo, adicione-o à seção ## Skills do squad para que o agente saiba que ela existe:
# No squads/commercial/CLAUDE.md ## Skills - `/sales-call` — Challenger Sale 7-part framework - `/handle-objection` — objection mapping flow - `/my-skill` — [descrição breve] ← adicione esta linha
⚙️ Workers customizados
Workers são scripts Python que rodam em agendamento e atualizam o estado do squad — sem IA no meio. Eles buscam dados das suas ferramentas e escrevem no STATE.md.
Criar um worker
# workers/daily-pipeline.py import json, subprocess from pathlib import Path from datetime import date def get_pipeline_value(): # Consulte sua API de CRM, banco de dados, etc. # Retorne um dict com os dados que você precisa return {"hot_leads": 3, "pipeline_value": 42000} def update_state(data): state_path = Path("squads/commercial/memory/STATE.md") content = state_path.read_text() l1_line = ( f"Victor (Commercial) — {data['hot_leads']} hot leads, " f"pipeline ${data['pipeline_value']:,}. Updated {date.today()}." ) # Substitua o bloco L1 content = re.sub(rr'\[L1\]\n.*?\n\n', f'[L1]\n{l1_line}\n\n', content, flags=re.DOTALL) state_path.write_text(content) if __name__ == "__main__": data = get_pipeline_value() update_state(data) print("Pipeline state updated")
Registre no harness.sh
# _core/harness.sh run_worker "workers/daily-pipeline.py" "09:00" # diariamente às 9h run_worker "workers/health-check.py" "every:1h" # a cada hora run_worker "workers/weekly-report.py" "monday:08:00" # toda segunda-feira
Regras para workers: determinísticos (sem aleatoriedade, sem chamadas de LLM) · escrevem apenas no STATE.md · exit 0 em sucesso · falham com barulho em caso de erro.
🧠 Customizando o schema de memória
A seção ## Memory schema de cada squad no CLAUDE.md diz ao agente o que rastrear em L1, L2 e L3. Altere isso para refletir o que realmente importa para o seu squad.
# Padrão (genérico) ## Memory schema - **L1:** Status atual — 1-3 linhas - **L2:** Em andamento - **L3:** Backlog # Squad de CS (centrado no cliente) ## Memory schema - **L1:** Clientes ativos (N), risco de churn (N), onboardings abertos (N) - **L2:** Onboardings em andamento, contas em risco sendo trabalhadas - **L3:** Oportunidades de expansão, post-mortems de churn pendentes # Squad Financeiro (números em primeiro lugar) ## Memory schema - **L1:** MRR ($N), burn ($N/mês), runway (N meses), caixa ($N) - **L2:** Faturas em aberto, folha pendente, prazos fiscais - **L3:** Relatório anual, revisão de preços, atualização para investidores
/status para agregar o estado da empresa. Mantenha-o escaneável por máquina — fatos e números, não prosa. Bom L1: "3 hot leads, pipeline $42k, 1 proposta enviada." Ruim: "As coisas estão indo bem no comercial esta semana."
🔧 Trocando a ferramenta de gestão de projetos
O HIVE vem com o Linear como padrão porque sua integração MCP com o Claude Code é a mais profunda disponível. Veja como trocar.
GitHub Issues
# No CLAUDE.md raiz, substitua a seção de gestão: ## Project management HIVE uses **GitHub Issues**. Reference issues as `#123`. Use labels for squad routing: `commercial`, `cs`, `dev`, etc. Use `gh` CLI to create and update issues.
Sem ferramenta de PM (só STATE.md)
# Remova a seção de PM do CLAUDE.md raiz completamente # Use o L2 no STATE.md como sua lista de tarefas # Use memory/decisions.md para registros de decisão # O L2 vira seu board de sprint: [L2] - [ ] Construir landing page — até sexta - [ ] Revisar proposta para Acme Corp - [x] Atualizar perfil de ICP
Jira / Notion / outros
Atualize a seção de PM no CLAUDE.md raiz com as convenções da sua ferramenta. Conecte um MCP se disponível, ou crie uma skill que chame a REST API. O agente segue as instruções que estiverem no CLAUDE.md.
🔄 Atualizando do upstream do HIVE
Se você fez um fork do HIVE e quer receber melhorias do framework sem perder suas customizações:
# Adicione o remote upstream (apenas uma vez) git remote add upstream https://github.com/felipeluissalgueiro/hive.git # Busque as atualizações git fetch upstream git merge upstream/main --no-ff
Conflitos aparecerão em squads/<nome>/context/ e memory/ — essas são suas customizações. Sempre resolva em seu favor nesses arquivos. Aceite as alterações do upstream para _core/, skills/ raiz e arquivos CLAUDE.md do framework.
_core/lookup.py, _core/state-aggregator.py, _core/harness.sh, .claude/hooks/, CLAUDE.md raiz (faça o merge com cuidado — não sobrescreva sua tabela de squads).Sempre mantenha os seus:
squads/*/context/, squads/*/memory/, squads/*/foundation/, CNAME.