Skip to content

Capítulo 24 — Memória lazy e memória inline

O framework tem duas formas de memória entre subagentes. Conhecer a diferença evita criar arquivos parasitas — e é uma aplicação direta do princípio do contexto mínimo.

Memória lazy — T{N}.md em .tmp/

AtributoValor
Pathdocs/specs/features/{feature}/{version}/tasks/.tmp/T{N}.md
Criada porOrquestrador, apenas em rejeição de gate
Lida porExecutor (em retry) e os gates (contexto de retry)
Conteúdoattempt_count, last_severity, JSON do(s) gate(s) que rejeitaram, paths tocados
Apagada quandoAmbos os gates aprovam
VersionadaNão (.gitignore)

Por que lazy: cria custo só quando há rejeição — aprovação na primeira tentativa não gera arquivo nenhum. Por que dentro da feature (e não em .claude/.tmp/): .claude/ é área protegida e exigia autorização a cada gravação; mover para tasks/.tmp/ eliminou o prompt e co-localizou a memória com as tasks.

Memória inline — base_sha + sumário do executor

AtributoValor
Persistida emVariáveis em memória do orquestrador (não em disco)
Lida porGate 1 e Gate 2, inline em instrucoes
Conteúdobase_sha (SHA git pré-task) + sumário do executor (4-6 linhas)

💡 Dica

A versão anterior gravava um T{N}-execution-summary.md com git diff --stat, hashes SHA-256 e paths consolidados. Esses campos eram redundantes (o Tech Review gera o diff sozinho via git diff <base_sha>) ou nunca consultados. Cortar isso economizou ~300-800 tokens × 2 gates × N tasks por run — menos arquivo, fluxo mais simples.

📚 Aprofundamento na Referência

AgentSpec Framework · Spec-driven com IA sobre Claude Code