Controlador de Contexto Git (GCC)
Visão Geral
O GCC transforma a memória do agente de um fluxo de tokens passivo em um sistema de arquivos estruturado e versionado sob .GCC/. Inspirado em Git, fornece quatro operações — COMMIT, BRANCH, MERGE, CONTEXT — para persistir marcos, explorar alternativas isoladamente, sintetizar resultados e recuperar contexto histórico com eficiência.
Inicialização
No primeiro uso, verifique se .GCC/ existe na raiz do projeto. Se não existir, execute scripts/gcc_init.sh para criar a estrutura de diretórios:
.GCC/
├── main.md # Roadmap global e objetivos
├── metadata.yaml # Estado da infraestrutura (branches, árvore de arquivos, config)
├── commit.md # Histórico de commits do branch principal
├── log.md # Log de execução OTA do branch principal
└── branches/ # Workspaces isolados para experimentos
└── <branch-name>/
├── commit.md
├── log.md
└── summary.md
Para especificações detalhadas de formato de arquivo, consulte references/file_formats.md.
Configuração
O comportamento do GCC é controlado via metadata.yaml:
proactive_commits: true— Sugere automaticamente commits após completar subtarefas coerentesproactive_commits: false— Apenas faz commit quando explicitamente solicitado
Alterne com: "enable/disable proactive commits" ou editando metadata.yaml.
Comandos
COMMIT
Persiste um marco no branch atual.
Ativa com: /gcc commit <summary>, "commit this progress", "save this milestone", "checkpoint"
Procedimento:
- Leia o
commit.mddo branch atual para determinar o próximo número de commit - Acrescente uma nova entrada a
commit.mdcom:- ID sequencial (ex.:
[C004]) - Data (UTC ISO 8601)
- Nome do branch atual
- Propósito do branch (de
summary.mdse em um branch, ou demain.md) - Resumo do progresso anterior (1-2 frases do último commit)
- Contribuição deste commit (descrição técnica detalhada com arquivos tocados)
- ID sequencial (ex.:
- Acrescente uma entrada OTA a
log.mdregistrando a ação de commit - Atualize a árvore de arquivos em
metadata.yamlse arquivos foram criados/modificados - Se no branch principal, atualize a seção de marcos em
main.md
Comportamento proativo: Quando proactive_commits: true, sugira um commit após:
- Completar uma função, módulo ou unidade coerente de trabalho
- Corrigir um bug e verificar a correção
- Terminar uma fase de pesquisa/exploração com conclusões
- Qualquer ponto onde perder contexto significaria refazer trabalho significativo
BRANCH
Cria um workspace isolado para explorar uma abordagem alternativa.
Ativa com: /gcc branch <name>, "branch to try...", "explore alternative...", "experiment with..."
Procedimento:
- Crie o diretório
.GCC/branches/<branch-name>/ - Crie
summary.mdcom: propósito, branch pai, data de criação, hipóteses principais - Crie
commit.mdelog.mdvazios para o branch - Atualize
metadata.yamlpara registrar o novo branch - Atualize a seção Active Branches em
main.md - Registre a criação do branch no
log.mddo branch pai
A partir deste ponto, todos os COMMITs e logs OTA vão para os arquivos específicos do branch até um MERGE ou mudança explícita de branch.
MERGE
Integra um branch completo de volta ao fluxo principal.
Ativa com: /gcc merge <branch>, "merge results from...", "integrate the experiment", "branch X is done"
Procedimento:
- Leia
summary.mdecommit.mddo branch para compreender resultados - Acrescente um commit de síntese ao
commit.mddo branch principal resumindo:- O que foi tentado
- O que foi aprendido
- O que está sendo integrado (ou por que o branch está sendo abandonado)
- Atualize
main.md:- Adicione entrada de marco com resultados do branch
- Remova da seção Active Branches
- Atualize objetivos se aplicável
- Atualize
metadata.yaml: defina status do branch comomergedouabandoned - Registre o merge no
log.mddo branch principal
CONTEXT
Recupera memória histórica em diferentes níveis de resolução.
Ativa com: /gcc context <flag>, "what did we do on...", "recover context", "show me the history", "where were we"
Flags:
--branch [name]— Leiasummary.mde últimos commits para um branch específico (ou branch atual se nenhum nome for fornecido). Fornece compreensão de alto nível do que aconteceu e por quê.--log [n]— Leia as últimas N entradas (padrão 20) dolog.mddo branch atual. Fornece rastreamentos OTA granulares para debug ou retomada de trabalho interrompido.--metadata— Leiametadata.yamlpara recuperar a estrutura do projeto: árvore de arquivos, dependências, branches ativos, configuração.--full— Leiamain.mdpara o roadmap completo do projeto, todos os marcos e branches ativos. Use para recuperação entre sessões ou handoff para outro agente.
Quando nenhuma flag for especificada, use como padrão --branch para o branch ativo atual.
Log de Execução OTA
Durante todo trabalho (não apenas durante comandos explícitos), mantenha o log de execução OTA:
- Observation (Observação): O que foi notado ou descoberto
- Thought (Pensamento): Raciocínio sobre o que fazer a seguir
- Action (Ação): Que ação foi tomada
Acrescente entradas ao log.md do branch ativo. Mantenha um máximo de 50 entradas; ao exceder, remova as entradas mais antigas. Cada entrada inclui um ID sequencial, timestamp e nome do branch.
Registre entradas OTA em pontos significativos de decisão — não em cada ação isolada, mas em observações significativas, mudanças de estratégia e resultados.
Recuperação Entre Sessões
Ao iniciar uma nova sessão em um projeto existente com .GCC/:
- Leia
metadata.yamlpara compreender o estado do projeto e branches ativos - Leia
main.mdpara o roadmap global e objetivos - Leia os últimos commits e entradas de log do branch ativo
- Retome o trabalho com contexto completo do que foi realizado e do que resta
Mapeamento de Linguagem Natural
| Você diz | Comando |
|---|---|
| "save/checkpoint/persist this" | COMMIT |
| "try a different approach" | BRANCH |
| "that experiment worked, integrate it" | MERGE |
| "where were we?" / "what's the status?" | CONTEXT --full |
| "what happened on branch X?" | CONTEXT --branch X |
| "show recent activity" | CONTEXT --log |
| "what files do we have?" | CONTEXT --metadata |
| "enable/disable auto-commits" | Alterne proactive_commits em metadata.yaml |