Files
msd-core/docs/pt-BR/ARCHITECTURE.md
Tom Boucher de78f2eef2 docs(#2775): align package-legitimacy docs to the ADR-0656 registry-API gate (#3010)
* docs(#2775): align package-legitimacy docs to the ADR-0656 registry-API gate

security-model.md, USER-GUIDE.md, ARCHITECTURE.md, COMMANDS.md,
FEATURES.md, and gsd-planner.md's STRIDE template (+ ja-JP mirrors)
described the pre-ADR-0656 design: slopcheck as the install-or-degrade
gate, with unavailability degrading every package to [ASSUMED].
ADR-0656 inverted this months ago — registry-API verdicts (npm/PyPI/
crates.io) are the gate; slopcheck is an optional escalate-only adapter
that no shipped configuration wires. Verified every replacement claim
against src/package-legitimacy.cts (checkPackages, classifyPackage,
lookupNpm/lookupPypi/lookupCrates) via Memtrace before writing it, so
the corrected prose matches the live implementation rather than
restating the ADR from memory.

Restored docs/explanation/security-model.md:79-84 (and its ja-JP
mirror) to original wording after an orthogonal spec review caught
that an earlier draft had edited the "Why WebSearch packages are
always [ASSUMED]" paragraph — inside the range issue #2775 explicitly
named as correct and to leave alone.

The ja-JP mirror was missing the closing clause present in the
corrected English original ("its absence leaves registry-API verdicts
intact rather than downgrading everything to [ASSUMED]") — added for
parity. This completes the ja-JP mirror the issue's acceptance
criteria named explicitly.

zh-CN/ko-KR/pt-BR (not named by #2775, but carrying the same stale
design) get the mechanical portion of the same fix: command-string
swaps, table headers, ARCHITECTURE.md diagram labels, and technical-
term swaps that reuse a word already attested elsewhere in the same
file (合法性/적법성/legitimidade for "legitimacy") — surrounding prose
untouched. The remainder in those three locales — full-paragraph
rewrites of the corrected degrade-path mechanism, deleted "External
dependency" bullets, and "manually install slopcheck" code blocks —
needs prose composed by a fluent speaker of each language and is filed
as open-gsd/gsd-core#3002 with an exact file:line inventory.

* test(#2775): acknowledge gsd-planner.md byte growth from the STRIDE-row fix

agents/gsd-planner.md grew 14 bytes (49309 -> 49323) from the STRIDE
supply-chain row correction (slopcheck -> package-legitimacy gate).
Emitted agent/workflow files are byte-tracked; this fragment
acknowledges the growth per tests/emitted-attribution.test.cjs's
"differential attribution over the real tree" check.

* docs(#2775): close ja-JP FEATURES.md gap; fix a ko-KR transliterated heading

docs/ja-JP/FEATURES.md:2808 still read the katakana transliteration
"スロップチェック verdict" in REQ-PKG-GATE-01 — invisible to a literal
"slopcheck" grep, so it was missed when ja-JP parity was checked and
declared complete. Corrected to "正当性判定" (legitimacy verdict),
matching the term already established in ja-JP/explanation/
security-model.md and ja-JP/USER-GUIDE.md. This was the only
remaining ja-JP gap; a full sweep for the transliterated form across
docs/ja-JP/ now returns zero hits, and the ja-JP mirror is genuinely
at parity.

docs/ko-KR/USER-GUIDE.md:398's heading "슬롭체크 판정:" had the same
transliteration problem. Fixed inline to "적법성 판정:", reusing the
적법성/legitimacy word already attested two lines below in the same
table. A parallel sweep of zh-CN and pt-BR found no transliterated
forms of "slopcheck" in either locale. The remaining transliterated
occurrence in ko-KR (USER-GUIDE.md:406, the lead-in to the
pip-install code block) needs prose composition like the rest of that
block and is added to open-gsd/gsd-core#3002's inventory.

* chore(#2775): backfill changeset PR number to 3010

---------

Co-authored-by: sim <sim@local>
2026-08-02 20:24:42 -04:00

782 lines
52 KiB
Markdown

# Arquitetura do GSD Core
> Arquitetura do sistema para contribuidores e usuários avançados. Para a documentação voltada ao usuário, consulte a [Referência de Funcionalidades](FEATURES.md) ou o [Guia do Usuário](USER-GUIDE.md).
---
## Índice
- [Visão Geral do Sistema](#visão-geral-do-sistema)
- [Princípios de Design](#princípios-de-design)
- [Arquitetura de Componentes](#arquitetura-de-componentes)
- [Modelo de Agentes](#modelo-de-agentes)
- [Fluxo de Dados](#fluxo-de-dados)
- [Estrutura do Sistema de Arquivos](#estrutura-do-sistema-de-arquivos)
- [Arquitetura do Instalador](#arquitetura-do-instalador)
- [Sistema de Hooks](#sistema-de-hooks)
- [Camada de Ferramentas CLI](#camada-de-ferramentas-cli)
- [Abstração de Runtime](#abstração-de-runtime)
---
## Visão Geral do Sistema
O GSD Core é um **framework de meta-prompting** que fica entre o usuário e os agentes de codificação com IA (Claude Code, Gemini CLI, OpenCode, Kilo, Codex, Copilot, Antigravity, Trae, Cline, Augment Code). Ele fornece:
1. **Engenharia de contexto** — Artefatos estruturados que fornecem à IA tudo o que ela precisa por tarefa (consulte [Engenharia de contexto](explanation/context-engineering.md))
2. **Orquestração multi-agente** — Orquestradores leves que criam agentes especializados com janelas de contexto novas (consulte [Orquestração multi-agente](explanation/multi-agent-orchestration.md))
3. **Desenvolvimento orientado por especificações** — Pipeline de Requisitos → pesquisa → planos → execução → verificação
4. **Gerenciamento de estado** — Memória persistente do projeto entre sessões e reinicializações de contexto
```
┌──────────────────────────────────────────────────────┐
│ USUÁRIO │
│ /gsd-command [args] │
└─────────────────────┬────────────────────────────────┘
│
┌─────────────────────▼────────────────────────────────┐
│ CAMADA DE COMANDOS │
│ commands/gsd/*.md — Arquivos de comandos baseados │
│ em prompts (comandos customizados Claude Code / │
│ skills do Codex) │
└─────────────────────┬────────────────────────────────┘
│
┌─────────────────────▼────────────────────────────────┐
│ CAMADA DE WORKFLOWS │
│ gsd-core/workflows/*.md — Lógica de │
│ orquestração │
│ (Lê referências, cria agentes, gerencia estado) │
└──────┬──────────────┬─────────────────┬──────────────┘
│ │ │
┌──────▼──────┐ ┌─────▼─────┐ ┌────────▼───────┐
│ AGENTE │ │ AGENTE │ │ AGENTE │
│ (contexto │ │ (contexto│ │ (contexto │
│ novo) │ │ novo) │ │ novo) │
└──────┬──────┘ └─────┬─────┘ └────────┬───────┘
│ │ │
┌──────▼──────────────▼─────────────────▼──────────────┐
│ CAMADA DE FERRAMENTAS CLI │
│ gsd-tools.cjs command families + domain modules │
│ command-routing-hub + observability seams │
└──────────────────────┬───────────────────────────────┘
│
┌──────────────────────▼───────────────────────────────┐
│ SISTEMA DE ARQUIVOS (.planning/) │
│ PROJECT.md | REQUIREMENTS.md | ROADMAP.md │
│ STATE.md | config.json | phases/ | research/ │
└──────────────────────────────────────────────────────┘
```
---
## Princípios de Design
### 1. Contexto Novo por Agente
Cada agente criado por um orquestrador recebe uma janela de contexto limpa (até 200 mil tokens). Isso elimina o desgaste do contexto — a degradação de qualidade que ocorre à medida que uma IA preenche sua janela de contexto com a conversa acumulada.
### 2. Orquestradores Leves
Os arquivos de workflow (`gsd-core/workflows/*.md`) nunca fazem trabalho pesado. Eles:
- Carregam contexto via `gsd-tools.cjs init <workflow>`
- Criam agentes especializados com prompts focados
- Coletam resultados e encaminham para a próxima etapa
- Atualizam o estado entre as etapas
### 3. Estado Baseado em Arquivos
Todo o estado fica em `.planning/` como Markdown e JSON legíveis por humanos. Sem banco de dados, sem servidor, sem dependências externas. Isso significa:
- O estado sobrevive a reinicializações de contexto (`/clear`)
- O estado é inspecionável tanto por humanos quanto por agentes
- O estado pode ser commitado no git para visibilidade da equipe
### 4. Ausente = Habilitado
Os feature flags de workflow seguem o padrão **ausente = habilitado**. Se uma chave estiver ausente do `config.json`, o padrão é `true`. Os usuários desabilitam funcionalidades explicitamente; não precisam habilitar os padrões.
### 5. Defesa em Profundidade
Múltiplas camadas previnem modos comuns de falha:
- Os planos são verificados antes da execução (agente plan-checker)
- A execução produz commits atômicos por tarefa
- A verificação pós-execução confronta os objetivos da fase
- O UAT fornece verificação humana como portão final
---
## Arquitetura de Componentes
### Comandos (`commands/gsd/*.md`)
Pontos de entrada voltados ao usuário. Cada arquivo contém frontmatter YAML (name, description, allowed-tools) e um corpo de prompt que inicializa o workflow. Os comandos são instalados como:
- **Claude Code:** Comandos slash customizados (forma com hífen, `/gsd-command-name`)
- **OpenCode / Kilo:** Comandos slash (forma com hífen, `/gsd-command-name`)
- **Codex:** Skills (`$gsd-command-name`)
- **Copilot:** Comandos slash (forma com hífen, `/gsd-command-name`)
- **Gemini CLI:** Comandos slash sob o namespace `gsd:` (forma com dois-pontos, `/gsd:command-name`) — o Gemini agrupa todos os comandos customizados sob o id do plugin, portanto a instalação reescreve cada referência no corpo do texto para a forma com dois-pontos
- **Antigravity:** Skills
**Total de comandos:** consulte [`docs/INVENTORY.md`](INVENTORY.md#commands) para a contagem oficial e o roster completo.
#### Roteamento hierárquico em dois estágios (v1.40, [#2792](https://github.com/open-gsd/gsd-core/issues/2792))
Para manter baixo o custo em tokens da listagem de skills antecipada, a v1.40 introduz seis **meta-skills** de namespace (`gsd-workflow`, `gsd-project`, `gsd-quality`, `gsd-context`, `gsd-manage`, `gsd-ideate` — originados de `commands/gsd/ns-*.md`, mas o `name:` invocável é a forma básica mostrada aqui) dispostos acima das sub-skills concretas. O modelo vê 6 roteadores de namespace (~120 tokens) em vez de uma listagem plana de 86 skills (~2.150 tokens), seleciona um namespace e depois roteia para a sub-skill concreta via tabela de roteamento embutida no corpo do roteador de namespace. As skills de namespace são **aditivas** — cada comando concreto ainda é diretamente invocável.
As descrições dos roteadores usam tags de palavras-chave separadas por pipe (≤ 60 caracteres) conforme a pesquisa Tool Attention, que mostra que tags ricas em palavras-chave superam a prosa no roteamento com ~40% do custo em tokens.
#### Interação com o orçamento de tokens do MCP
A listagem de skills antecipada é um dos dois custos recorrentes de tokens por turno. O outro é o schema de ferramenta MCP injetado por cada servidor MCP habilitado em `.claude/settings.json`. Servidores MCP pesados (browser/playwright, Mac-tools, Windows-tools) podem custar mais de 20 mil tokens por turno cada — muitas vezes eclipsando o que o ajuste do `model_profile` economiza. O controle fica no harness do Claude Code (`enabledMcpjsonServers` / `disabledMcpjsonServers` em `.claude/settings.json`) e **não** é uma preocupação do GSD. Juntos, a camada de roteamento em dois estágios (#2792) e o controle criterioso do MCP são as maiores alavancas de custo por turno. Consulte [`docs/USER-GUIDE.md`](USER-GUIDE.md) e `references/context-budget.md` para o checklist de auditoria.
### Workflows (`gsd-core/workflows/*.md`)
Lógica de orquestração que os comandos referenciam. Contém o processo passo a passo, incluindo:
- Carregamento de contexto via handlers `gsd-tools.cjs init`
- Instruções de criação de agente com resolução de modelo
- Definições de portões/checkpoints
- Padrões de atualização de estado
- Tratamento de erros e recuperação
**Total de workflows:** consulte [`docs/INVENTORY.md`](INVENTORY.md#workflows) para a contagem oficial e o roster completo.
#### Divulgação progressiva para workflows
Os arquivos de workflow são carregados verbatim no contexto do Claude cada vez que o
comando `/gsd-*` correspondente é invocado. Para manter esse custo limitado, o
orçamento de tamanho de workflow aplicado por `tests/workflow-size-budget.test.cjs`
espelha a convenção de orçamento de tamanho de agentes:
| Tier | Limite de linhas por arquivo |
|-----------|------------------------------|
| `XL` | 1700 — orquestradores de nível superior (`execute-phase`, `plan-phase`, `new-project`) |
| `LARGE` | 1500 — planejadores com múltiplas etapas e workflows de funcionalidades grandes |
| `DEFAULT` | 1000 — workflows simples e de propósito único (o tier alvo) |
`workflows/discuss-phase.md` é mantido em um teto mais restrito conforme
o orçamento de bytes do discuss-phase (#717; a divisão discuss-phase/modes mantém ≈32000 bytes). Quando um workflow cresce além de seu tier, extraia os corpos por modo
em `workflows/<workflow>/modes/<mode>.md`, templates em
`workflows/<workflow>/templates/`, e conhecimento compartilhado em
`gsd-core/references/`. O arquivo pai se torna um despachante leve que
lê apenas os arquivos de modo e template necessários para a invocação atual.
`workflows/discuss-phase/` é o exemplo canônico deste padrão —
o pai despacha, modes/ contém o comportamento por flag (`power.md`, `all.md`,
`auto.md`, `chain.md`, `text.md`, `batch.md`, `analyze.md`, `default.md`,
`advisor.md`), e templates/ contém os schemas CONTEXT.md, DISCUSSION-LOG.md e
checkpoint.json que são lidos apenas quando o arquivo de saída correspondente
está sendo escrito.
### Agentes (`agents/*.md`)
Definições de agentes especializados com frontmatter especificando:
- `name` — Identificador do agente
- `description` — Papel e propósito
- `tools` — Acesso às ferramentas permitidas (Read, Write, Edit, Bash, Grep, Glob, WebSearch, etc.)
- `color` — Cor de saída no terminal para distinção visual
**Total de agentes:** 33
### Referências (`gsd-core/references/*.md`)
Documentos de conhecimento compartilhado que workflows e agentes `@-referenciam` (consulte [`docs/INVENTORY.md`](INVENTORY.md#references-41-shipped) para a contagem oficial e o roster completo):
**Referências principais:**
- `checkpoints.md` — Definições de tipos de checkpoint e padrões de interação
- `gates.md` — 4 tipos canônicos de portões (Confirm, Quality, Safety, Transition) conectados ao plan-checker e ao verifier
- `model-profiles.md` — Atribuições de tier de modelo por agente
- `model-profile-resolution.md` — Documentação do algoritmo de resolução de modelo
- `verification-patterns.md` — Como verificar diferentes tipos de artefatos
- `verification-overrides.md` — Regras de substituição de verificação por artefato
- `planning-config.md` — Schema completo de configuração e comportamento
- `git-integration.md` — Padrões de commit no git, branching e histórico
- `git-planning-commit.md` — Convenções de commit do diretório de planejamento
- `questioning.md` — Filosofia de extração de visão para inicialização de projetos
- `tdd.md` — Padrões de integração de desenvolvimento orientado por testes
- `ui-brand.md` — Padrões de formatação de saída visual
- `common-bug-patterns.md` — Padrões comuns de bugs para revisão de código e verificação
**Referências de workflow:**
- `agent-contracts.md` — Interface formal entre orquestradores e agentes
- `context-budget.md` — Regras de alocação do orçamento da janela de contexto
- `continuation-format.md` — Formato de continuação/retomada de sessão
- `domain-probes.md` — Perguntas de sondagem específicas de domínio para a discuss-phase
- `gate-prompts.md` — Templates de prompt para portões/checkpoints
- `revision-loop.md` — Padrões de iteração de revisão de plano
- `universal-anti-patterns.md` — Anti-padrões comuns a detectar e evitar
- `artifact-types.md` — Definições de tipos de artefatos de planejamento
- `phase-argument-parsing.md` — Convenções de análise de argumentos de fase
- `decimal-phase-calculation.md` — Regras de numeração decimal de sub-fases
- `workstream-flag.md` — Convenções do ponteiro ativo de workstream
- `user-profiling.md` — Metodologia de perfilamento comportamental do usuário
- `thinking-partner.md` — Ativação condicional de parceiro de raciocínio em pontos de decisão
**Referências para modelos de raciocínio:**
Referências para integrar modelos de classe thinking (o3, o4-mini, Gemini 2.5 Pro) aos workflows do GSD:
- `thinking-models-debug.md` — Padrões de modelos de raciocínio para workflows de depuração
- `thinking-models-execution.md` — Padrões de modelos de raciocínio para agentes de execução
- `thinking-models-planning.md` — Padrões de modelos de raciocínio para agentes de planejamento
- `thinking-models-research.md` — Padrões de modelos de raciocínio para agentes de pesquisa
- `thinking-models-verification.md` — Padrões de modelos de raciocínio para agentes de verificação
**Decomposição modular do planner:**
O agente planner (`agents/gsd-planner.md`) foi decomposto de um único arquivo monolítico em um agente central mais módulos de referência para permanecer abaixo do limite de 50 mil caracteres imposto por alguns runtimes:
- `planner-gap-closure.md` — Comportamento do modo de fechamento de lacunas (lê VERIFICATION.md, replanejamento direcionado)
- `planner-reviews.md` — Integração de revisão entre IAs (lê REVIEWS.md do `/gsd-review`)
- `planner-revision.md` — Padrões de revisão de plano para refinamento iterativo
### Templates (`gsd-core/templates/`)
Templates Markdown para todos os artefatos de planejamento. Usados por `gsd-tools.cjs template fill` / `phase.scaffold` (e `scaffold` de nível superior) para criar arquivos pré-estruturados:
- `project.md`, `requirements.md`, `roadmap.md`, `state.md` — Arquivos principais do projeto
- `phase-prompt.md` — Template de prompt de execução de fase
- `summary.md` (+ `summary-minimal.md`, `summary-standard.md`, `summary-complex.md`) — Templates de resumo com granularidade ajustável
- `DEBUG.md` — Template de acompanhamento de sessão de depuração
- `UI-SPEC.md`, `UAT.md`, `VALIDATION.md` — Templates de verificação especializados
- `discussion-log.md` — Template de trilha de auditoria de discussão
- `codebase/` — Templates de mapeamento de brownfield (stack, architecture, conventions, concerns, structure, testing, integrations)
- `research-project/` — Templates de saída de pesquisa (SUMMARY, STACK, FEATURES, ARCHITECTURE, PITFALLS)
### Hooks (`hooks/`)
Hooks de runtime que se integram ao agente de IA anfitrião:
| Hook | Evento | Propósito |
|------|--------|-----------|
| `gsd-statusline.js` | `statusLine` | Exibe modelo, tarefa, diretório e barra de uso do contexto |
| `gsd-context-monitor.js` | `PostToolUse` / `AfterTool` | Injeta avisos de contexto voltados ao agente em 35%/25% restante |
| `gsd-check-update.js` | `SessionStart` | Gatilho em primeiro plano para a verificação de atualização em segundo plano |
| `gsd-check-update-worker.js` | (auxiliar) | Worker em segundo plano criado por `gsd-check-update.js`; sem registro de evento direto |
| `gsd-prompt-guard.js` | `PreToolUse` | Escaneia escritas em `.planning/` em busca de padrões de injeção de prompt (consultivo) |
| `gsd-read-injection-scanner.js` | `PostToolUse` | Escaneia saídas da ferramenta Read em busca de instruções injetadas em conteúdo não confiável |
| `gsd-workflow-guard.js` | `PreToolUse` | Detecta edições de arquivos fora do contexto de workflow do GSD (consultivo, ativado via `hooks.workflow_guard`) |
| `gsd-read-guard.js` | `PreToolUse` | Guarda consultivo que impede Edit/Write em arquivos ainda não lidos na sessão |
| `gsd-session-state.sh` | `PostToolUse` | Rastreamento de estado de sessão para runtimes baseados em shell |
| `gsd-validate-commit.sh` | `PostToolUse` | Validação de commit para aplicação de commits convencionais |
| `gsd-phase-boundary.sh` | `PostToolUse` | Detecção de limite de fase para transições de workflow |
Consulte [`docs/INVENTORY.md`](INVENTORY.md#hooks-11-shipped) para o roster oficial de 11 hooks.
### Hub de Roteamento de Comandos (`gsd-core/bin/lib/command-routing-hub.cjs`)
Os roteadores de família de comandos CJS despacham através do `CommandRoutingHub`. O hub possui o contrato de resultado puro sem lançamento de exceções (`hub.dispatch()` captura exceções internas e retorna `{ ok: false, kind, ...typedPayload }`) e a taxonomia fechada de erros de runtime (`UnknownCommand`, `InvalidArgs`, `HandlerRefusal`, `HandlerFailure`). Os adaptadores de roteador permanecem como tradutores CLI leves — eles constroem o hub, chamam `dispatch` e depois mapeiam o Result para chamadas `output()`/`error()`. O runtime é de caminho único (sem seleção de modo de runtime duplo). Consulte `docs/adr/0174-retire-gsd-sdk-package-boundary.md`.
### Ferramentas CLI (`gsd-core/bin/`)
Utilitário CLI Node.js (`gsd-tools.cjs`) com módulos de domínio distribuídos em `gsd-core/bin/lib/` (consulte [`docs/INVENTORY.md`](INVENTORY.md#cli-modules-33-shipped) para o roster oficial):
| Módulo | Responsabilidade |
| ---------------------- | ----------------------------------------------------------------------------------------------------- |
| `core.cjs` | Tratamento de erros, formatação de saída, utilitários compartilhados; re-exportações de compatibilidade para helpers de planejamento |
| `planning-workspace.cjs` | Camada de planejamento (`planningDir`, `planningPaths`, roteamento de workstream ativo, `.planning/.lock`) |
| `state.cjs` | Análise, atualização, progressão e métricas do STATE.md |
| `phase.cjs` | Operações de diretório de fase, numeração decimal, indexação de planos |
| `roadmap.cjs` | Análise do ROADMAP.md, extração de fases, progresso do plano |
| `config.cjs` | Leitura/escrita do config.json, inicialização de seções |
| `verify.cjs` | Estrutura do plano, integridade de fase, referência, validação de commit |
| `template.cjs` | Seleção e preenchimento de template com substituição de variáveis |
| `frontmatter.cjs` | Operações CRUD de frontmatter YAML |
| `init.cjs` | Carregamento composto de contexto para cada tipo de workflow |
| `milestone.cjs` | Arquivamento de milestones, marcação de requisitos |
| `commands.cjs` | Comandos diversos (slug, timestamp, todos, scaffolding, stats) |
| `model-profiles.cjs` | Tabela de resolução de perfis de modelo |
| `security.cjs` | Prevenção de path traversal, detecção de injeção de prompt, análise segura de JSON, validação de argumentos de shell |
| `uat.cjs` | Análise de arquivo UAT, rastreamento de débito de verificação, suporte a audit-uat |
| `docs.cjs` | Inicialização do workflow de atualização de docs, escaneamento de Markdown, detecção de monorepo |
| `workstream.cjs` | CRUD de workstream, migração, ponteiro ativo com escopo de sessão |
| `schema-detect.cjs` | Detecção de desvio de schema para padrões ORM (Prisma, Drizzle, etc.) |
| `profile-pipeline.cjs` | Pipeline de dados de perfilamento comportamental do usuário, escaneamento de arquivos de sessão |
| `profile-output.cjs` | Renderização de perfil, geração de USER-PROFILE.md e dev-preferences.md |
---
## Modelo de Agentes
### Padrão Orquestrador → Agente
```
Orquestrador (workflow .md)
│
├── Carregar contexto: gsd-tools.cjs init <workflow> <phase>
│ Retorna JSON com: informações do projeto, config, estado, detalhes da fase
│
├── Resolver modelo: gsd-tools.cjs resolve-model <agent-name>
│ Retorna: opus | sonnet | haiku | inherit
│
├── Criar Agente (chamada Task/SubAgent)
│ ├── Prompt do agente (agents/*.md)
│ ├── Payload de contexto (JSON do init)
│ ├── Atribuição de modelo
│ └── Permissões de ferramentas
│
├── Coletar resultado
│
└── Atualizar estado: gsd-tools.cjs state update / state patch / state advance-plan
```
### Categorias Principais de Criação de Agentes
Taxonomia conceitual de padrões de criação para os 21 agentes primários. Para o roster oficial de 31 agentes (incluindo os 10 agentes avançados/especializados como `gsd-pattern-mapper`, `gsd-code-reviewer`, `gsd-code-fixer`, `gsd-ai-researcher`, `gsd-domain-researcher`, `gsd-eval-planner`, `gsd-eval-auditor`, `gsd-framework-selector`, `gsd-debug-session-manager`, `gsd-intel-updater`), consulte [`docs/INVENTORY.md`](INVENTORY.md#agents-31-shipped).
| Categoria | Agentes | Paralelismo |
| ---------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| **Pesquisadores** | gsd-project-researcher, gsd-phase-researcher, gsd-ui-researcher, gsd-advisor-researcher | 4 paralelos (stack, features, architecture, pitfalls); advisor criado durante a discuss-phase |
| **Sintetizadores** | gsd-research-synthesizer | Sequencial (após a conclusão dos pesquisadores) |
| **Planejadores** | gsd-planner, gsd-roadmapper | Sequencial |
| **Verificadores de plano** | gsd-plan-checker, gsd-integration-checker, gsd-ui-checker, gsd-nyquist-auditor | Sequencial (loop de verificação, máximo 3 iterações) |
| **Executores** | gsd-executor | Paralelo dentro de ondas, sequencial entre ondas |
| **Verificadores** | gsd-verifier | Sequencial (após a conclusão de todos os executores) |
| **Mapeadores** | gsd-codebase-mapper | 4 paralelos (tech, arch, quality, concerns) |
| **Depuradores** | gsd-debugger | Sequencial (interativo) |
| **Auditores** | gsd-ui-auditor, gsd-security-auditor | Sequencial |
| **Escritores de doc** | gsd-doc-writer, gsd-doc-verifier | Sequencial (escritor depois verificador) |
| **Perfiladores** | gsd-user-profiler | Sequencial |
| **Analisadores** | gsd-assumptions-analyzer | Sequencial (durante a discuss-phase) |
### Modelo de Execução em Ondas
Durante a `execute-phase`, os planos são agrupados em ondas de dependência:
```
Análise de Ondas:
Plano 01 (sem deps) ─┐
Plano 02 (sem deps) ─┤── Onda 1 (paralelo)
Plano 03 (depende: 01) ─┤── Onda 2 (aguarda a Onda 1)
Plano 04 (depende: 02) ─┘
Plano 05 (depende: 03,04) ── Onda 3 (aguarda a Onda 2)
```
Cada executor recebe:
- Janela de contexto nova de 200 mil tokens (ou até 1 M para modelos que suportam)
- O PLAN.md específico a executar
- Contexto do projeto (PROJECT.md, STATE.md)
- Contexto da fase (CONTEXT.md, RESEARCH.md se disponível)
### Enriquecimento Adaptativo de Contexto (Modelos de 1 M)
Quando a janela de contexto tem 500 mil tokens ou mais (modelos classe 1 M como Opus 4.6, Sonnet 4.6), os prompts de subagentes são automaticamente enriquecidos com contexto adicional que não caberia em janelas de 200 mil tokens padrão:
- **Agentes executores** recebem os arquivos SUMMARY.md de ondas anteriores e o CONTEXT.md/RESEARCH.md da fase, possibilitando consciência entre planos dentro de uma fase
- **Agentes verificadores** recebem todos os arquivos PLAN.md, SUMMARY.md, CONTEXT.md mais REQUIREMENTS.md, possibilitando verificação com consciência do histórico
O orquestrador lê `context_window` da configuração (`gsd-tools.cjs config-get context_window`) e inclui condicionalmente um contexto mais rico quando o valor é >= 500.000. Para janelas de 200 mil tokens padrão, os prompts usam versões truncadas com ordenação favorável ao cache para maximizar a eficiência do contexto.
#### Segurança de Commits Paralelos
Quando múltiplos executores rodam dentro da mesma onda, dois mecanismos previnem conflitos:
1. Commits `--no-verify` — Agentes paralelos pulam hooks de pré-commit (que podem causar contenção de lock de build, por exemplo, disputas de cargo lock em projetos Rust). O orquestrador executa `git hook run pre-commit` uma vez após a conclusão de cada onda.
2. **Bloqueio de arquivo STATE.md** — Todas as chamadas `writeStateMd()` usam exclusão mútua baseada em lockfile (`STATE.md.lock` com criação atômica `O_EXCL`). Isso previne a condição de corrida leitura-modificação-escrita onde dois agentes leem o STATE.md, modificam campos diferentes, e o último a escrever sobrescreve as alterações do outro. Inclui detecção de lock obsoleto (timeout de 10 s) e espera em spin com jitter.
---
## Fluxo de Dados
### Fluxo de Novo Projeto
```
Entrada do usuário (descrição da ideia)
│
▼
Perguntas (filosofia questioning.md)
│
▼
4x Pesquisadores de Projeto (paralelo)
├── Stack → STACK.md
├── Features → FEATURES.md
├── Architecture → ARCHITECTURE.md
└── Pitfalls → PITFALLS.md
│
▼
Sintetizador de Pesquisa → SUMMARY.md
│
▼
Extração de requisitos → REQUIREMENTS.md
│
▼
Roadmapper → ROADMAP.md
│
▼
Aprovação do usuário → STATE.md inicializado
```
### Fluxo de Execução de Fase
```
discuss-phase → CONTEXT.md (preferências do usuário)
│
▼
ui-phase → UI-SPEC.md (contrato de design, opcional)
│
▼
plan-phase
├── Portão de pesquisa (bloqueia se RESEARCH.md tiver perguntas abertas não resolvidas)
├── Pesquisador de Fase → RESEARCH.md
│ └── Portão de Legitimidade de Pacotes: veredicto da API de registro em cada pacote; [SLOP] removido,
│ [SUS]/[ASSUMED] sinalizados; tabela de Auditoria escrita no RESEARCH.md
├── Planner (com verificação de alcançabilidade) → arquivos PLAN.md
│ └── checkpoint:human-verify injetado antes de instalações [ASSUMED]/[SUS];
│ linha STRIDE T-{phase}-SC adicionada para planos com instalação
├── Plan Checker → Loop de verificação (máximo 3x)
├── Portão de cobertura de requisitos (REQ-IDs → planos)
└── Portão de cobertura de decisões (CONTEXT.md `<decisions>` → planos, BLOQUEANTE — #2492)
│
▼
state planned-phase → STATE.md (Planned/Ready to execute)
│
▼
execute-phase (redução de contexto: prompts truncados, ordenação favorável ao cache)
├── Análise de ondas (agrupamento por dependência)
├── Executor por plano → código + commits atômicos
├── SUMMARY.md por plano
└── Verifier → VERIFICATION.md
└── Portão de cobertura de decisões (decisões do CONTEXT.md → artefatos entregues, NÃO BLOQUEANTE — #2492)
│
▼
verify-work → UAT.md (testes de aceitação do usuário)
│
▼
ui-review → UI-REVIEW.md (auditoria visual, opcional)
```
### Propagação de Contexto
Cada estágio de workflow produz artefatos que alimentam as etapas subsequentes:
```
PROJECT.md ────────────────────────────────────────────► Todos os agentes
REQUIREMENTS.md ───────────────────────────────────────► Planner, Verifier, Auditor
ROADMAP.md ────────────────────────────────────────────► Orquestradores
STATE.md ──────────────────────────────────────────────► Todos os agentes (decisões, bloqueadores)
CONTEXT.md (por fase) ─────────────────────────────────► Researcher, Planner, Executor
RESEARCH.md (por fase) ────────────────────────────────► Planner, Plan Checker
PLAN.md (por plano) ───────────────────────────────────► Executor, Plan Checker
SUMMARY.md (por plano) ────────────────────────────────► Verifier, rastreamento de estado
UI-SPEC.md (por fase) ─────────────────────────────────► Executor, UI Auditor
```
---
## Estrutura do Sistema de Arquivos
### Arquivos de Instalação
```
~/.claude/ # Claude Code (instalação global)
├── skills/gsd-*/SKILL.md # Skills globais (roster oficial: docs/INVENTORY.md)
├── commands/gsd/*.md # Instalações locais do Claude usam slash commands em vez de skills globais
├── gsd-core/
│ ├── bin/gsd-tools.cjs # Utilitário CLI
│ ├── bin/lib/*.cjs # Módulos de domínio (roster oficial: docs/INVENTORY.md)
│ ├── workflows/*.md # Definições de workflow (roster oficial: docs/INVENTORY.md)
│ ├── references/*.md # Docs de referência compartilhados (roster oficial: docs/INVENTORY.md)
│ └── templates/ # Templates de artefatos de planejamento
├── agents/*.md # Definições de agentes (roster oficial: docs/INVENTORY.md)
├── hooks/*.js # Hooks Node.js (statusline, guards, monitors, verificação de atualização)
├── hooks/*.sh # Hooks shell (estado de sessão, validação de commit, limite de fase)
├── settings.json # Registros de hooks
└── VERSION # Número da versão instalada
```
Caminhos equivalentes para outros runtimes:
- **OpenCode:** `~/.config/opencode/` global ou `./.opencode/` local
- **Kilo:** `~/.config/kilo/` global ou `./.kilo/` local
- **Gemini CLI:** `~/.gemini/` global ou `./.gemini/` local
- **Codex:** `~/.codex/` global ou `./.codex/` local
- **Copilot:** `~/.copilot/` global ou `./.github/` local
- **Antigravity:** raiz global detectada automaticamente (`~/.gemini/antigravity/`, `~/.gemini/antigravity-ide/`, ou `~/.gemini/antigravity-cli/`) ou `./.agent/` local
- **Cursor:** `~/.cursor/` global ou `./.cursor/` local
- **Windsurf:** `~/.codeium/windsurf/` global ou `./.windsurf/` local
- **Augment Code:** `~/.augment/` global ou `./.augment/` local
- **Trae:** `~/.trae/` global ou `./.trae/` local
- **Qwen Code:** `~/.qwen/` global ou `./.qwen/` local
- **Hermes Agent:** `~/.hermes/` global ou `./.hermes/` local
- **CodeBuddy:** `~/.codebuddy/` global ou `./.codebuddy/` local
- **Cline:** `~/.cline/` global ou `.clinerules` local na raiz do projeto
### Arquivos do Projeto (`.planning/`)
```
.planning/
├── PROJECT.md # Visão do projeto, restrições, decisões, regras de evolução
├── REQUIREMENTS.md # Requisitos com escopo (v1/v2/fora do escopo)
├── ROADMAP.md # Detalhamento de fases com rastreamento de status
├── STATE.md # Memória viva: posição, decisões, bloqueadores, métricas
├── config.json # Configuração de workflow
├── MILESTONES.md # Arquivo de milestones concluídos
├── research/ # Pesquisa de domínio do /gsd-new-project
│ ├── SUMMARY.md
│ ├── STACK.md
│ ├── FEATURES.md
│ ├── ARCHITECTURE.md
│ └── PITFALLS.md
├── codebase/ # Mapeamento de brownfield (do /gsd-map-codebase ou /gsd-onboard)
├── onboarding/ # Resumo de onboarding brownfield (do /gsd-onboard)
│ ├── STACK.md # Frontmatter YAML carrega `last_mapped_commit`
│ ├── ARCHITECTURE.md # para o portão de desvio pós-execução (#2003)
│ ├── CONVENTIONS.md
│ ├── CONCERNS.md
│ ├── STRUCTURE.md
│ ├── TESTING.md
│ └── INTEGRATIONS.md
├── phases/
│ └── XX-phase-name/
│ ├── XX-CONTEXT.md # Preferências do usuário (da discuss-phase)
│ ├── XX-RESEARCH.md # Pesquisa de ecossistema (da plan-phase)
│ ├── XX-YY-PLAN.md # Planos de execução
│ ├── XX-YY-SUMMARY.md # Resultados de execução
│ ├── XX-VERIFICATION.md # Verificação pós-execução
│ ├── XX-VALIDATION.md # Mapeamento de cobertura de testes Nyquist
│ ├── XX-UI-SPEC.md # Contrato de design de UI (da ui-phase)
│ ├── XX-UI-REVIEW.md # Pontuações de auditoria visual (da ui-review)
│ └── XX-UAT.md # Resultados de testes de aceitação do usuário
├── quick/ # Rastreamento de tarefas rápidas
│ └── YYMMDD-xxx-slug/
│ ├── PLAN.md
│ └── SUMMARY.md
├── todos/
│ ├── pending/ # Ideias capturadas
│ └── completed/ # Todos concluídos
├── threads/ # Threads de contexto persistentes (do /gsd-thread)
├── seeds/ # Ideias prospectivas (do /gsd-capture --seed)
├── debug/ # Sessões de depuração ativas
│ ├── *.md # Sessões ativas
│ ├── resolved/ # Sessões arquivadas
│ └── knowledge-base.md # Aprendizados persistentes de depuração
├── ui-reviews/ # Screenshots do /gsd-ui-review (ignoradas pelo git)
└── continue-here.md # Handoff de contexto (do pause-work)
```
### Portão de Desvio de Código Base Pós-Execução (#2003)
Após a última onda de commits do `/gsd-execute-phase`, o workflow executa uma
etapa `codebase_drift_gate` não bloqueante (entre `schema_drift_gate` e
`verify_phase_goal`). Ele compara o diff `last_mapped_commit..HEAD`
contra `.planning/codebase/STRUCTURE.md` e conta quatro tipos de
elementos estruturais:
1. Novos diretórios fora dos caminhos mapeados
2. Novas exportações barrel em `(packages|apps)/<name>/src/index.*`
3. Novos arquivos de migração
4. Novos módulos de rota em `routes/` ou `api/`
Se a contagem atingir `workflow.drift_threshold` (padrão 3), o portão
**avisa** (padrão) com o comando `/gsd-map-codebase --paths …` sugerido,
ou **remapeia automaticamente** (`workflow.drift_action = auto-remap`) criando
`gsd-codebase-mapper` com escopo para os caminhos afetados. Qualquer erro na detecção
ou remapeamento é registrado e a fase continua — a detecção de desvio não pode falhar
a verificação.
`last_mapped_commit` fica no frontmatter YAML no topo de cada
arquivo `.planning/codebase/*.md`; `bin/lib/drift.cjs` fornece
os helpers de ida e volta `readMappedCommit` e `writeMappedCommit`.
---
## Arquitetura do Instalador
O instalador (`bin/install.js`, ~10.700 linhas) trata de:
1. **Detecção de runtime** — Prompt interativo ou flags CLI (`--claude`, `--opencode`, `--gemini`, `--kilo`, `--codex`, `--copilot`, `--antigravity`, `--cursor`, `--windsurf`, `--augment`, `--trae`, `--qwen`, `--hermes`, `--codebuddy`, `--cline`, `--all`)
2. **Seleção de local** — Global (`--global`) ou local (`--local`)
3. **Implantação de arquivos** — Copia comandos, skills, workflows, referências, templates, agentes e hooks
4. **Adaptação de runtime** — Transforma o conteúdo de arquivos por runtime:
- Claude Code: Usa como está
- OpenCode: Converte comandos/agentes para o formato de comando plano + subagente compatível com OpenCode
- Kilo: Reutiliza o pipeline de conversão do OpenCode com os caminhos de configuração do Kilo
- Codex: Gera config TOML + skills a partir de comandos
- Copilot: Mapeia nomes de ferramentas (Read→read, Bash→execute, etc.)
- Gemini: Ajusta nomes de eventos de hook (`AfterTool` em vez de `PostToolUse`)
- Antigravity: Skills em primeiro lugar com equivalentes de modelo do Google
- Cursor: Skills em primeiro lugar com referências de regras do Cursor
- Windsurf: Skills em primeiro lugar com referências de regras do Windsurf
- Trae: Instalação skills-first em `~/.trae` / `./.trae` sem `settings.json` ou integração de hooks
- Qwen Code: Skills em primeiro lugar com reescritas de caminho e prompt com marca Qwen
- Hermes Agent: Skills por categoria em `skills/gsd/`
- CodeBuddy: Skills em primeiro lugar com reescritas de caminho e prompt do CodeBuddy
- Cline: Escreve `.clinerules` para integração baseada em regras
- Augment Code: Skills em primeiro lugar com conversão completa de skills e gerenciamento de configuração
5. **Normalização de caminhos** — Substitui caminhos `~/.claude/` por caminhos específicos do runtime
6. **Integração de configurações** — Registra hooks no `settings.json` do runtime
7. **Backup de patches** — Desde a v1.17, faz backup de arquivos modificados localmente em `gsd-local-patches/` para `/gsd-update --reapply`
8. **Rastreamento de manifesto** — Escreve `gsd-file-manifest.json` para desinstalação limpa
9. **Modo de desinstalação** — `--uninstall` remove todos os arquivos, hooks e configurações do GSD
Movimentações de arquivos no momento da instalação, limpeza de artefatos obsoletos, reescritas de configuração e
preservação de dados do usuário são governadas pelo Módulo de Migração do Instalador. Consulte
[Migrações do Instalador](../installer-migrations.md) e
[ADR 0008](../adr/0008-installer-migration-module.md).
O módulo de migração também controla o escaneamento de linha de base inicial condicionado para
instalações legadas, classificando as superfícies de instalação de runtime conhecidas antes que migrações posteriores
removam ou reescrevam qualquer coisa.
O guarda de desvio de plano (`plan_review.source_grounding`) — que verifica referências de símbolos em planos gerados contra o código-fonte ativo antes da execução — é especificado no [ADR 22](../adr/22-plan-drift-guard.md).
### Tratamento de Plataforma
- **Windows:** `windowsHide` em processos filho, proteção EPERM/EACCES em diretórios protegidos, normalização de separador de caminho
- **WSL:** Detecta o Node.js do Windows rodando no WSL e avisa sobre incompatibilidades de caminho
- **Docker/CI:** Suporta a variável de ambiente `CLAUDE_CONFIG_DIR` para locais de diretório de configuração personalizados
---
## Sistema de Hooks
### Arquitetura
```
Motor de Runtime (Claude Code / Gemini CLI)
│
├── evento statusLine ──► gsd-statusline.js
│ Lê: stdin (JSON de sessão)
│ Escreve: stdout (status formatado), /tmp/claude-ctx-{session}.json (bridge)
│
├── evento PostToolUse/AfterTool ──► gsd-context-monitor.js
│ Lê: stdin (JSON de evento de ferramenta), /tmp/claude-ctx-{session}.json (bridge)
│ Escreve: stdout (hookSpecificOutput com aviso additionalContext)
│
└── evento SessionStart ──► gsd-check-update.js
Lê: arquivo VERSION
Escreve: ~/.claude/cache/gsd-update-check.json (cria processo em segundo plano)
```
### Limites do Monitor de Contexto
| Contexto Restante | Nível | Comportamento do Agente |
| ----------------- | -------- | ------------------------------------------------ |
| > 35% | Normal | Nenhum aviso injetado |
| ≤ 35% | AVISO | "Evite iniciar trabalho complexo novo" |
| ≤ 25% | CRÍTICO | "Contexto quase esgotado, informe o usuário" |
Debounce: 5 usos de ferramenta entre avisos repetidos. A escalada de severidade (AVISO→CRÍTICO) contorna o debounce.
### Propriedades de Segurança
- Todos os hooks encapsulam em try/catch, saem silenciosamente em caso de erro
- Guarda de timeout de stdin (3 s) evita travamento em problemas de pipe
- Métricas obsoletas (> 60 s) são ignoradas
- Arquivos bridge ausentes são tratados graciosamente (subagentes, sessões novas)
- O monitor de contexto é consultivo — nunca emite comandos imperativos que substituam as preferências do usuário
### Portão de Legitimidade de Pacotes (v1.42.1)
O pipeline pesquisador → planner → executor inclui um portão de cadeia de suprimentos contra slopsquatting (nomes de pacotes alucinados por IA pré-registrados com scripts pós-instalação maliciosos).
**Modelo de ameaça:** O GSD automatiza o caminho completo de "pesquisador nomeia um pacote" a "executor executa `npm install`". Um nome alucinado que passa pelo `npm view` (provando apenas o registro, não a legitimidade) anteriormente fluía sem ser detectado. ~20% das referências de pacotes geradas por IA são alucinadas; ~43% desses nomes recorrem consistentemente entre prompts, tornando o pré-registro economicamente viável para atacantes.
**Camadas do portão:**
| Camada | Componente | Ação |
|--------|------------|------|
| Pesquisa | `gsd-phase-researcher` | Executa `gsd-tools query package-legitimacy check --ecosystem <npm\|pypi\|crates> <pkgs>`; escreve tabela `## Package Legitimacy Audit` no RESEARCH.md; remove pacotes `[SLOP]` antes de o RESEARCH.md ser escrito |
| Planejamento | `gsd-planner` | Lê a tabela de Auditoria; insere `checkpoint:human-verify` antes de qualquer tarefa de instalação `[ASSUMED]` ou `[SUS]`; adiciona linha STRIDE `T-{phase}-SC` supply-chain ao `<threat_model>` |
| Execução | `gsd-executor` | REGRA 3 exclui a instalação de pacotes do escopo de correção automática; instalações com falha surgem como checkpoints, nunca substituições silenciosas |
**Integração de proveniência de afirmações:** Nomes de pacotes descobertos via WebSearch são marcados como `[ASSUMED]` (não `[VERIFIED]`) independentemente do resultado do `npm view`. Isso estende o sistema de proveniência `[ASSUMED]` / `[VERIFIED]` / `[CITED]` existente, aplicando a tag de proveniência como um portão rígido no limite de instalação — `[ASSUMED]` sempre gera um `checkpoint:human-verify` no PLAN.md.
**Cobertura de ecossistemas:** O pesquisador usa comandos de verificação específicos de registro — `npm view` (Node), `pip index versions` (Python), `cargo search` (Rust) — em vez de uma única verificação genérica. Isso captura alucinações entre ecossistemas (taxa de ~9% documentada em pesquisa USENIX de 2025).
**Degradação graceful:** Se o `slopcheck` não estiver disponível, cada pacote recomendado é marcado como `[ASSUMED]` e condicionado com um checkpoint. Pesquisa e planejamento prosseguem; o sistema nunca falha definitivamente por dependência de ferramenta ausente.
**Dependência externa:** `slopcheck` (MIT, instalável via pip). Se abandonado, o fallback do portão `[ASSUMED]` mantém a cobertura de checkpoint humano.
---
### Hooks de Segurança (v1.27)
Para uma visão geral conceitual de como as camadas de hook e guarda se encaixam na abordagem de segurança mais ampla, consulte [Modelo de segurança](explanation/security-model.md).
**Prompt Guard** (`gsd-prompt-guard.js`):
- Acionado em Write/Edit para arquivos `.planning/`
- Escaneia o conteúdo em busca de padrões de injeção de prompt (substituição de papel, bypass de instrução, injeção de tag de sistema)
- Apenas consultivo — registra a detecção, não bloqueia
- Padrões são embutidos (subconjunto de `security.cjs`) para independência do hook
**Workflow Guard** (`gsd-workflow-guard.js`):
- Acionado em Write/Edit para arquivos fora de `.planning/`
- Detecta edições fora do contexto de workflow do GSD (sem comando `/gsd-` ativo ou subagente Task)
- Aconselha o uso de `/gsd-quick` ou `/gsd-fast` para alterações rastreadas por estado
- Ativado via `hooks.workflow_guard: true` (padrão: false)
---
## Abstração de Runtime
O GSD suporta múltiplos runtimes de codificação com IA por meio de uma arquitetura unificada de comandos/workflows:
### Matriz de Contrato de Instalação por Runtime
Esta matriz descreve as superfícies de runtime que o instalador materializa hoje.
A propriedade específica de migração e os snapshots de fonte vivem em
[Migrações do Instalador](../installer-migrations.md#runtime-configuration-contract-registry).
| Runtime | Raiz global | Raiz local | Superfície de invocação | Superfície de agente | Configuração e hooks |
| --- | --- | --- | --- | --- | --- |
| Claude Code | `~/.claude` | `./.claude` | `skills/gsd-*/SKILL.md` global; `commands/gsd/*.md` local | `agents/gsd-*.md` | Entradas de hook e statusLine em `settings.json` |
| OpenCode | `~/.config/opencode` | `./.opencode` | `command/gsd-*.md` | `agents/gsd-*.md` | `opencode.json` ou `opencode.jsonc`; sem hooks do GSD |
| Kilo | `~/.config/kilo` | `./.kilo` | `command/gsd-*.md` | `agents/gsd-*.md` | `kilo.json` ou `kilo.jsonc`; sem hooks do GSD |
| Gemini CLI | `~/.gemini` | `./.gemini` | `commands/gsd/*.toml` | `agents/gsd-*.md` | flag de funcionalidade, hooks e statusline em `settings.json` |
| Codex | `~/.codex` | `./.codex` | `skills/gsd-*/SKILL.md` | markdown de origem de agentes mais TOML por agente | `config.toml` `[agents.gsd-*]`, `[features].hooks` (canônico; alias legado `codex_hooks` é reconhecido e migrado no reinstall, #3566) e tabelas de hooks |
| GitHub Copilot | `~/.copilot` | `./.github` | `skills/gsd-*/SKILL.md` e `copilot-instructions.md` | arquivos `.agent.md` | Sem hooks ou statusline do GSD |
| Antigravity | detectado automaticamente: `~/.gemini/antigravity`, `~/.gemini/antigravity-ide`, ou `~/.gemini/antigravity-cli` | `./.agent` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | Entradas de hook `settings.json` no estilo Gemini quando instalado pelo GSD |
| Cursor | `~/.cursor` | `./.cursor` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | Referências de regras em `rules/`; sem hooks do GSD |
| Windsurf | `~/.codeium/windsurf` | `./.windsurf` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | Referências de regras em `rules/`; sem hooks do GSD |
| Augment Code | `~/.augment` | `./.augment` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | Sem hooks ou statusline do GSD |
| Trae | `~/.trae` | `./.trae` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | Referências de regras em `rules/`; sem hooks do GSD |
| Qwen Code | `~/.qwen` | `./.qwen` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | Configurações comuns do GSD e entradas de hook onde suportado |
| Hermes Agent | `~/.hermes` | `./.hermes` | `skills/gsd/DESCRIPTION.md` mais `skills/gsd/gsd-*/SKILL.md` | `agents/gsd-*.md` | Configurações comuns do GSD e entradas de hook onde suportado |
| CodeBuddy | `~/.codebuddy` | `./.codebuddy` | `skills/gsd-*/SKILL.md` | `agents/gsd-*.md` | Configurações comuns do GSD e entradas de hook onde suportado |
| Cline | `~/.cline` | raiz do projeto | `.clinerules` | Somente regras | Sem hooks ou statusline do GSD |
### Fontes do Contrato Upstream
As expectativas de instalação por runtime são verificadas contra documentação primária quando
disponível. O snapshot de fonte atual é 2026-05-11:
- Claude Code: Documentação de comandos slash, configurações, hooks e subagentes da Anthropic.
- OpenCode e Kilo: Documentação de configuração do OpenCode e documentação de subagente customizado do Kilo.
- Gemini CLI e Qwen Code: Documentação de comandos/configuração; a documentação de comandos do Qwen foi atualizada pela última vez em 2026-05-06.
- Codex: Documentação do OpenAI Codex e `config-schema.json`; o instalador também carrega compatibilidade com o Codex 0.124.0 para o formato de tabela de agentes.
- Copilot, Cursor, Cline, Augment, Hermes e CodeBuddy: Documentação do fornecedor para instruções customizadas, regras, skills ou configuração.
- Antigravity, Windsurf e Trae: Linhas com fontes limitadas. O instalador documenta os shims de compatibilidade atuais, e as migrações devem atualizar essas fontes antes de reescrever sua configuração.
### Pontos de Abstração
1. **Mapeamento de nomes de ferramentas** — Cada runtime tem seus próprios nomes de ferramentas (ex.: `Bash` do Claude → `execute` do Copilot)
2. **Nomes de eventos de hook** — Claude usa `PostToolUse`, Gemini usa `AfterTool`
3. **Frontmatter de agente** — Cada runtime tem seu próprio formato de definição de agente
4. **Convenções de caminho** — Cada runtime armazena a configuração em diretórios diferentes
5. **Referências de modelo** — O perfil `inherit` permite que o GSD adie para a seleção de modelo do runtime
O instalador trata de toda a tradução no momento da instalação. Workflows e agentes são escritos no formato nativo do Claude Code e transformados durante a implantação.
---
## Relacionados
- [Orquestração multi-agente](explanation/multi-agent-orchestration.md)
- [Modelo de segurança](explanation/security-model.md)
- [Ferramentas CLI](CLI-TOOLS.md)
- [Índice de documentação](README.md)