Use
AGENTS.mdcomo fonte canonica das regras deste repositorio. Stack, comandos, convencoes, estrutura, CI e padroes estao documentados emAGENTS.md— nao duplicados aqui.
- Ler
AGENTS.mdno inicio da sessao. .agents/skills/e a fonte de verdade dos fluxos procedurais..gemini/commands/sao adaptadores finos que apontam para a habilidade correta (apenas no modo wrapper legado; no modo ACP, skills sao invocadas pelo runner).- Em tarefas de execucao, carregar apenas
AGENTS.md,agent-governancee a skill operacional da linguagem ou atividade afetada. - Skills de planejamento (
analyze-project,create-prd,create-technical-specification,create-tasks) entram apenas quando a tarefa pedir esse fluxo explicitamente. - Carregar referencias adicionais apenas quando a tarefa exigir.
- Preservar estilo, arquitetura e fronteiras existentes antes de propor mudancas.
- Validar mudancas com comandos proporcionais ao risco.
Hook de preload: .gemini/hooks/validate-preload.sh (instalado via ai-spec-harness install).
Se o hook nao estiver presente ou falhar, consulte .gemini/docs/workaround-preload.md.
Shell hooks em .gemini/hooks/*.sh servem o modo interativo (uso direto do gemini CLI pelo usuario).
Go hooks em internal/runtime/hooks/ servem o modo orquestrado (ACPRunner via --runtime acp).
Os dois conjuntos coexistem sem conflito. Para portar hooks interativos: gemini hooks migrate.
Quando o Orchestrator invoca Gemini via ACP (--runtime acp --tool gemini), o runtime expoe:
ai-spec task-loop --tool gemini --runtime acp .specs/prd-X- ACP nativo via
gemini --acp. Fallback:npx --yes @google/gemini-cli@0.43.0 --acp. Modelo default:gemini-2.5-pro. Pinning eminternal/runtime/specs/gemini.go. - Spec:
Command="gemini",FixedArgs=["--acp"],BootstrapArgs=nil— modelo, reasoning e sandbox sao configurados pelo gemini upstream via gemini config; nao propagamos via flags-c. - Mapeamento D-05 (ADR-015):
AccessModeRestricted → --approval-mode=default;AccessModeFull → --approval-mode=yolo. Divergencia intencional do Compozy documentada em ADR-015. Warning:--access-mode=fullequivale ayolo— sem confirmacao de tool calls. Usar com cautela.
# Wrapper legado — sem events.jsonl, sem metricas, sem cascata F2-F5
gemini run --skill <name> --project <dir>internal/wrapper/wrapper.go preserva o wrapper legado durante a transicao. Emite warning de
deprecation via sync.Once quando invocado. Remocao planejada para release N+2 apos ADR-015.
Para migrar: substituir por --runtime acp --tool gemini.
ai-spec task-loop --tool gemini --runtime acp --mcp-nested .specs/prd-X- MCP nested-agent (
--mcp-nested): expoe toolrun_agent(agent_name, prompt, model?, timeout?)via protocolo MCP stdio. Profundidade maxima:AISPEC_MAX_AGENT_DEPTH(default 3). Child sessions produzemevents.jsonleexecution_report.mdem sub-dir proprio. Eventos espelhados no parent com kindnested_agent. Implementado porinternal/runtime/mcpserver/(tool-agnostico; cascata automatica apos F0/F1-Gemini). - Tool-call normalization (sempre ativa por default a partir de F2-Gemini): nomes de tool
canonicalizados via
.agents/normalization-rules.yaml. Gemini herda tabelacommon(inherit: common) — sem overrides especificos (Compozy confirma que Gemini usa nomes proximos ao schema canonico).events.jsonlganhanormalized_nameeraw_namelado a lado.--no-normalizedesabilita (debug). Implementado eminternal/runtime/events/normalize.go.
ai-spec task-loop --tool gemini --runtime acp \
--memory-workflow-limit-lines 250 .specs/prd-X- Hooks in-process Go: pontos canonicos
runtime.pre_open,prompt.pre_build,prompt.post_build,tool_call.pre_dispatch,tool_call.post_complete,session.post_end. Compartilhados com Claude/Codex/Copilot viainternal/runtime/hooks/dispatcher.go(tool-agnostico).--disable-hooksdesabilita todos (debug). - Memoria 2-tier com defaults Gemini-generosos (aproveitando janela 1M+):
workflow 250 linhas / 20 KiB; task 400 linhas / 32 KiB (vs 150/12 KiB e 200/16 KiB defaults Claude).
Override via
--memory-workflow-limit-lines,--memory-task-limit-lines, etc.NeedsCompaction=trueanexa diretiva textual de compactacao ao prompt. Implementado eminternal/runtime/memory/store.go(tool-agnostico). Trade-off: janela 1M+ barateia re-carga vs Claude, mas latencia inicial do prompt-build e custo de cache lookup sobem com prompt maior.
- Evidence Gemini-2026:
execution_report.mdganha secao "Metricas Gemini-2026" com:cache_read_tokens— tokens lidos do context cache Gemini (TTL configuravel; diferente do Claude)effective_context_tokens— tamanho real do contexto carregado na sessaoprompt_tokens_billed— tokens efetivamente cobrados apos cache hitthoughts_tokens— tokens de reasoning interno Gemini 2.5 (opt-in; pode ser zero por default)
- Captura via
internal/runtime/events/gemini_metrics.go(extracao defensiva — campo ausente nao bloqueia). - Telemetria opt-in (
GOVERNANCE_TELEMETRY=1): entriesgemini.cache_read,gemini.thoughts,gemini.effective_context,gemini.prompt_billedaparecem no relatorio final. - Caveat:
thoughts_tokenspode ser sempre zero em Gemini 2.5 quando reasoning nao e exposto por default — valor zero e semanticamente valido, nao e erro.
ai-spec task-loop --tool gemini --runtime acp --auto-review .specs/prd-X- Auto-review (opt-in
--auto-review, default-off): apos sessao principal spawna nova ACPRunner com skillreview+ git diff como prompt. Resultado emevidence/<task>/review.md. Issues com tag[HARD]→Summary.ReviewStatus="blocked". Recursao hard-bloqueada (child Job temAutoReview=falseforcado). Hooksession.post_reviewdisparado apos review. - Warning de custo amplificado: auto-review em Gemini com diff grande pode ultrapassar quota de tokens da org — Gemini 2.5 Pro com janela 1M+ potencialmente preenchida amplifica custo vs Claude/Codex (~200K). Usar seletivamente em tasks de alto risco.
- Ao iniciar uma tarefa, ler
AGENTS.mde.agents/skills/agent-governance/SKILL.mdcomo contexto base antes de editar codigo. - No modo ACP (
--runtime acp), skills sao invocadas pelo runner diretamente — sem necessidade de@workspace.<command>. - No modo wrapper legado, usar
@workspace.<command>para invocar o wrapper TOML correspondente em.gemini/commands/e evitar colisao com comandos nativos das skills. - Seguir as etapas procedurais do SKILL.md carregado pelo comando como se fossem instrucoes sequenciais.
- Ao final da tarefa, executar os comandos de validacao descritos na secao Validacao do
AGENTS.md. - Nao confiar em enforcement automatico — a compliance depende de seguir as instrucoes procedurais manualmente.