Skip to content
Apothem
Referência

Registro de harnesses

The English page has changed since this translation was made. Read the English page.

Referência técnica do registro dos adaptadores de harness integrados do Apothem.

O registro de harnesses é o inventário de adaptadores que serve como fonte de verdade para a CLI, a documentação, os testes de fixtures e a validação dos pins de convenção. A fonte em tempo de execução é src/apothem/lib/harness_registry.py; cada linha abaixo é rastreável até esse registro, até o capabilities.yml de cada adaptador e até o STANDARD-CONVENTION-PIN.md de cada adaptador.

Matriz do registro

HarnessNome de instalaçãoEscopoFormatoAlvosMCPPin de convenção
Antigravityantigravityusermarkdown~/.gemini/GEMINI.md; ~/.gemini/antigravity-cli/plugins/apothem/discovery-pendingsrc/apothem/harnesses/antigravity/STANDARD-CONVENTION-PIN.md
Claude Codeclaude-codeuserjson~/.claude/settings.json; ~/.claude/CLAUDE.md; agents, rules, skills, statuslines, output-styles nativos; ~/.claude/.apothem/support/discovery-pendingsrc/apothem/harnesses/claude_code/STANDARD-CONVENTION-PIN.md
CodeBuddycodebuddyprojectmarkdown<project>/.codebuddy/rules/apothem-rules.md; <project>/.codebuddy/agents/; <project>/.codebuddy/settings.local.json; <project>/.apothem/support/hooks/; ~/.codebuddy/skills/; ~/.config/apothem/{rules,templates}/discovery-pendingsrc/apothem/harnesses/codebuddy/STANDARD-CONVENTION-PIN.md
Codexcodexusermarkdown~/.codex/AGENTS.md; hooks.json; hooks/; agents/*.toml; ~/.agents/skills/; ~/.config/apothem/discovery-pendingsrc/apothem/harnesses/codex/STANDARD-CONVENTION-PIN.md
Cursorcursorprojectmdc<project>/.cursor/rules/apothem-rules.mdc; <project>/.cursor/agents/; <project>/.cursor/hooks.json; <project>/.apothem/support/cursor/hooks/; ~/.agents/skills/; ~/.config/apothem/{rules,templates}/discovery-pendingsrc/apothem/harnesses/cursor/STANDARD-CONVENTION-PIN.md
Gemini CLIgemini-cliprojectmarkdown<project>/GEMINI.md; <project>/.gemini/{commands,skills,agents}/; <project>/.gemini/.apothem/support/discovery-pendingsrc/apothem/harnesses/gemini_cli/STANDARD-CONVENTION-PIN.md
GitHub Copilotgithub-copilotprojectmarkdown<project>/.github/copilot-instructions.md; <project>/.github/agents/; <project>/.github/hooks/apothem.json; <project>/.apothem/support/github-copilot/hooks/; ~/.agents/skills/; ~/.config/apothem/{rules,templates}/unsupportedsrc/apothem/harnesses/github_copilot/STANDARD-CONVENTION-PIN.md
GLM (Z.ai)glmprojecttoml<project>/.apothem/providers/glm.tomlunsupportedsrc/apothem/harnesses/glm/STANDARD-CONVENTION-PIN.md
Hermeshermesuseryaml~/.hermes/config.yaml; ~/.hermes/.apothem/support/nativesrc/apothem/harnesses/hermes/STANDARD-CONVENTION-PIN.md
Kimi Codekimi-codeprojectmarkdown<project>/AGENTS.md; <project>/.kimi-code/skills/; <project>/.kimi-code/agents/; <project>/.kimi-code/.apothem/support/discovery-pendingsrc/apothem/harnesses/kimi_code/STANDARD-CONVENTION-PIN.md
Kirokiroprojectmarkdown<project>/.kiro/steering/apothem-rules.md; <project>/.kiro/agents/; <project>/.kiro/hooks/apothem.json; <project>/.apothem/support/kiro/hooks/; ~/.kiro/skills/; ~/.config/apothem/{rules,templates}/discovery-pendingsrc/apothem/harnesses/kiro/STANDARD-CONVENTION-PIN.md
Open-Clawopen-clawuserjson~/.openclaw/openclaw.json; ~/.openclaw/.apothem/support/unsupportedsrc/apothem/harnesses/open_claw/STANDARD-CONVENTION-PIN.md
OpenCodeopencodeuserjson~/.config/opencode/opencode.json; commands, skills, agents nativos; ~/.config/opencode/.apothem/support/nativesrc/apothem/harnesses/opencode/STANDARD-CONVENTION-PIN.md
Qwen Codeqwen-codeuserjson~/.qwen/settings.json; ~/.qwen/QWEN.md; commands, skills, agents nativos; ~/.qwen/.apothem/support/nativesrc/apothem/harnesses/qwen_code/STANDARD-CONVENTION-PIN.md
Traetraeprojectmarkdown<project>/.trae/rules/apothem-rules.md; <project>/.trae/agents/; ~/.trae/skills/; ~/.config/apothem/{rules,templates}/discovery-pendingsrc/apothem/harnesses/trae/STANDARD-CONVENTION-PIN.md
Windsurfwindsurfprojectmarkdown<project>/.devin/rules/apothem-rules.md; <project>/.devin/agents/; <project>/.devin/config.local.json; <project>/.apothem/support/windsurf/hooks/; ~/.agents/skills/; ~/.config/apothem/{rules,templates}/discovery-pendingsrc/apothem/harnesses/windsurf/STANDARD-CONVENTION-PIN.md
Zedzedprojectmarkdown<project>/.rules; ~/.agents/skills/; ~/.config/apothem/{rules,templates}/discovery-pendingsrc/apothem/harnesses/zed/STANDARD-CONVENTION-PIN.md

Suporte a cohorts de payload

Os valores de status são native, converted, support-tree, profile-projected, unsupported, not-applicable e discovery-pending.

Um cohort converted é reescrito no formato próprio do harness, e alguns campos de origem não têm lugar nele. Para cada cohort convertido de comandos, agentes ou regras, o capabilities.yml do adaptador carrega um mapa conversion_losses que informa o que acontece com cada campo de frontmatter de origem:

ValorSignificado
native:<field>O harness o lê sob esse campo.
sidecar:<path>Ele é gravado em um arquivo separado ao lado do arquivo convertido, como o agents/openai.yaml do Codex.
filenameO nome do arquivo ou da pasta o carrega.
inlinedEle passa para o texto do prompt ou do corpo.
ignoredEle permanece no arquivo, mas o harness não o lê.
droppedEle é omitido.

Um teste renderiza cada arquivo convertido e confere os mapas contra a saída.

HarnessPayloads nativos ou convertidosPayloads na árvore de suporteAvisos de não suportado ou pendente
Antigravitycomandos, agentes e regras convertidos; skills, despacho de subagentes e templates de prompt de sistema nativoshooks, templatesstatuslines, output-styles; descoberta de MCP e de memória pendente
Claude Codecomandos convertidos; skills, hooks, agentes, regras, statuslines, output-styles e despacho de subagentes nativostemplatesCLAUDE.md continua sendo de propriedade do operador, exceto pelo único bloco do Apothem; nenhum template de prompt de sistema gravado pelo adaptador; descoberta de MCP pendente
CodeBuddycomandos e agentes convertidos; skills, hooks, regras, despacho de subagentes e templates de prompt de sistema nativostemplatesstatuslines, output-styles; descoberta de MCP pendente
Codexcomandos e agentes convertidos; skills, hooks, despacho de subagentes e templates de prompt de sistema nativosregras, templatesstatuslines, output-styles; descoberta de MCP pendente porque o Apothem não sobrescreve config.toml
Cursorcomandos e agentes convertidos; skills, hooks, regras, despacho de subagentes e templates de prompt de sistema nativostemplatesstatuslines, output-styles, memória; descoberta de MCP pendente
Gemini CLIcomandos e agentes convertidos; skills, despacho de subagentes, templates de prompt de sistema e memória nativoshooks, regras, templatesstatuslines, output-styles; descoberta de MCP pendente
GitHub Copilotcomandos e agentes convertidos; skills, hooks, regras, despacho de subagentes e templates de prompt de sistema nativostemplatesstatuslines, output-styles, MCP, memória
GLM (Z.ai)nenhumnenhumcomandos, skills, hooks, agentes, regras, templates, statuslines, output-styles, MCP, despacho de subagentes, restrições de ferramentas, templates de prompt de sistema, memória — o GLM é um backend de modelo sem superfície de configuração nativa
Hermescomandos convertidos; templates de prompt de sistema, MCP e despacho de subagentes nativosskills, hooks, agentes, regras, templatesstatuslines, output-styles
Kimi Codecomandos e agentes convertidos; skills, despacho de subagentes, templates de prompt de sistema e memória nativoshooks, regras, templatesstatuslines, output-styles; descoberta de MCP e de restrições de ferramentas pendente
Kirocomandos e agentes convertidos; skills, hooks, regras, despacho de subagentes e templates de prompt de sistema nativostemplatesstatuslines, output-styles; descoberta de MCP pendente
Open-Clawcomandos convertidos; templates de prompt de sistema e despacho de subagentes nativosskills, hooks, agentes, regras, templatesstatuslines, output-styles, MCP
OpenCodecomandos e agentes convertidos; skills, MCP, despacho de subagentes e templates de prompt de sistema nativoshooks, regras, templatesstatuslines, output-styles
Qwen Codecomandos e agentes convertidos; skills, hooks, MCP, despacho de subagentes e templates de prompt de sistema nativosregras, templatesstatuslines, output-styles
Traecomandos e agentes convertidos; skills, regras, despacho de subagentes e templates de prompt de sistema nativostemplateshooks, statuslines, output-styles, memória; descoberta de MCP pendente
Windsurfcomandos e agentes convertidos; skills, hooks, regras, despacho de subagentes e templates de prompt de sistema nativostemplatesstatuslines, output-styles, memória; descoberta de MCP pendente
Zedcomandos convertidos; skills, regras e templates de prompt de sistema nativostemplateshooks, agentes, statuslines, output-styles, despacho de subagentes, memória; descoberta de MCP pendente

A tabela omite as células que o registro marca como not-applicable: restrições de ferramentas em todos os harnesses, exceto Kimi Code (discovery-pending) e GLM (Z.ai) (unsupported), e memória em Claude Code, CodeBuddy, Codex, Hermes, Kiro, Open-Claw, OpenCode e Qwen Code.

Raízes compartilhadas

Alguns alvos de instalação são carregados por harnesses diferentes daquele que os grava. O registro anota cada um desses caminhos em SHARED_ROOTS com um proprietário registrado (o adaptador para o qual o fornecedor documenta o caminho), os coinstaladores que gravam os mesmos arquivos nele e os leitores cuja documentação do fornecedor o carrega por padrão, além das páginas do fornecedor que o mostram e da data em que foram obtidas.

Um caminho com coinstaladores é uma pasta de nível de usuário no diretório pessoal que várias instalações gravam com os mesmos bytes. Uma máquina com apenas o Cursor instalado não tem um Codex para gravar ~/.agents/skills/, de modo que cada instalação que nomeia a pasta a grava, e o livro-razão de instalação conta as instalações que a usam. O proprietário de referência é o proprietário registrado enquanto ele usa a pasta e, caso contrário, a instalação mais antiga que a usa; nada muda quando o proprietário registrado é desinstalado. Uma desinstalação remove a pasta somente quando nenhuma outra instalação ainda a usa (veja uninstall). Instalar um leitor não coloca nenhum arquivo na pasta; instalar o proprietário ou um coinstalador coloca o conteúdo do Apothem diante de cada leitor.

CaminhoProprietárioCoinstaladoresLeitores
~/.agents/skills/CodexCursor, GitHub Copilot, Windsurf, ZedGemini CLI, Kimi Code, Open-Claw, OpenCode, Qwen Code
~/.config/apothem/rules/CodexCodeBuddy, Cursor, GitHub Copilot, Kiro, Trae, Windsurf, Zednenhum
~/.config/apothem/templates/CodexCodeBuddy, Cursor, GitHub Copilot, Kiro, Trae, Windsurf, Zednenhum
~/.claude/skills/Claude CodenenhumCursor, OpenCode
~/.claude/agents/Claude CodenenhumCursor
~/.codex/agents/CodexnenhumCursor
~/.claude/CLAUDE.mdClaude CodenenhumOpenCode
<project>/AGENTS.mdKimi CodenenhumAntigravity, CodeBuddy, Codex, Cursor, GitHub Copilot, Hermes, Kiro, OpenCode, Windsurf, Zed
<project>/GEMINI.mdGemini CLInenhumAntigravity, GitHub Copilot, Zed
~/.gemini/GEMINI.mdAntigravitynenhumGemini CLI
<project>/.github/copilot-instructions.mdGitHub CopilotnenhumZed

~/.config/apothem/rules/ e ~/.config/apothem/templates/ contêm os arquivos que as skills e os arquivos de instruções do próprio Apothem citam. Nenhuma outra ferramenta os carrega, então eles não têm leitores nem páginas do fornecedor. CodeBuddy, Kiro e Trae também gravam uma pasta de skills própria (~/.codebuddy/skills/, ~/.kiro/skills/ e ~/.trae/skills/); somente essa ferramenta a carrega, então ela não é uma raiz compartilhada.

Um leitor só é listado onde a documentação do seu fornecedor mostra um carregamento padrão desse caminho exato. Um leitor traz uma condição, e a nota de instalação a repete: Open-Claw indexa ~/.agents/skills/ somente sob o seu diretório de estado padrão (ele ignora a pasta quando OPENCLAW_STATE_DIR aponta para outro lugar). A documentação do Cursor lista ~/.codex/agents/ como uma pasta de compatibilidade com o Codex, mas não diz quais formatos de arquivo o Cursor interpreta ali, e uma instalação do Codex grava arquivos TOML, então não está confirmado se o Cursor lê esses auxiliares. A instalação do Cursor também grava sua própria cópia <project>/.cursor/agents/ dos auxiliares, que a precedência do fornecedor classifica acima das pastas que ele importa, de modo que, em um projeto instalado, a cópia nativa prevalece sobre a de ~/.claude/agents/.

Algumas ferramentas deliberadamente não são leitoras de ~/.agents/skills/: a documentação do Antigravity, do CodeBuddy, do Kiro e do Trae não diz que elas a carregam por padrão (o Trae carrega a pasta .agents/skills/ do projeto somente depois que uma configuração é ativada), e é por isso que CodeBuddy, Kiro e Trae recebem uma pasta de skills própria. A documentação do Hermes a nomeia apenas como um valor de exemplo para skills.external_dirs. O GitHub Copilot não é leitor de ~/.claude/agents/: a documentação do VS Code lista essa pasta para o agente Anthropic Claude, não para o agente que o GitHub Copilot executa.

O bloco do Apothem que um proprietário grava em um arquivo de instruções compartilhado não nomeia nenhuma ferramenta específica como sua leitora. tests/unit/test_shared_roots.py falha quando os adaptadores que gravam um alvo do registro não são exatamente o seu proprietário e os seus coinstaladores, e quando um alvo do registro cujo nome é o de um arquivo de instruções entre ferramentas (AGENTS.md, CLAUDE.md, GEMINI.md, copilot-instructions.md) não tem um proprietário declarado. A única exceção é ~/.codex/AGENTS.md, cujo carregamento nenhum outro harness registrado documenta.

Hooks de validação

O registro permanece sincronizado por meio destas verificações:

VerificaçãoPropósito
python scripts/dev/validate_harness_convention_pins.py --today YYYY-MM-DDConfirma que cada adaptador tem um pin de convenção que não tem mais de 90 dias de idade, cita pelo menos uma URL do fornecedor e não tem nenhum alvo de descoberta vencido. A CI o executa em cada pull request, semanalmente e antes de um lançamento.
python scripts/dev/check_vendor_urls.pyBusca cada URL de fornecedor que os pins e os templates de harness citam e falha diante de uma página movida ou inativa, incluindo um nome de host que não resolve mais ou um certificado que falha na verificação; um tempo limite esgotado, uma conexão recusada ou redefinida, ou um erro de servidor 5xx é relatado como inacessível e não o faz falhar. O monitor semanal de convenções o executa.
python -m apothem.conformity.gate --all .Executa as verificações de conformidade de documentação e de implementação.
python -m pytestExercita os testes de fixtures do registro e os testes de contrato dos adaptadores.

Referência gerada de adaptadores de harness

HarnessScopeFormatTarget paths
Antigravity (antigravity)usermarkdown~/.gemini/GEMINI.md
~/.gemini/antigravity-cli/plugins/apothem/
Claude Code (claude-code)userjson~/.claude/.apothem/support/{templates,hooks,conformity,schemas}/
~/.claude/CLAUDE.md
~/.claude/settings.json
~/.claude/{agents,rules,skills,statuslines,output-styles}/
CodeBuddy (codebuddy)projectmarkdown<project>/.apothem/support/hooks/
<project>/.codebuddy/agents/
<project>/.codebuddy/rules/apothem-rules.md
<project>/.codebuddy/settings.local.json
~/.codebuddy/skills/
~/.config/apothem/{rules,templates}/
Codex (codex)usermarkdown~/.agents/skills/
~/.codex/AGENTS.md
~/.codex/agents/*.toml
~/.codex/hooks.json
~/.codex/hooks/
~/.config/apothem/{rules,templates}/
Cursor (cursor)projectmdc<project>/.apothem/support/cursor/hooks/
<project>/.cursor/agents/
<project>/.cursor/hooks.json
<project>/.cursor/rules/apothem-rules.mdc
~/.agents/skills/
~/.config/apothem/{rules,templates}/
Gemini CLI (gemini-cli)projectmarkdown<project>/.gemini/.apothem/support/
<project>/.gemini/{commands,skills,agents}/
<project>/GEMINI.md
GitHub Copilot (github-copilot)projectmarkdown<project>/.apothem/support/github-copilot/hooks/
<project>/.github/agents/
<project>/.github/copilot-instructions.md
<project>/.github/hooks/apothem.json
~/.agents/skills/
~/.config/apothem/{rules,templates}/
GLM (Z.ai) (glm)projecttoml<project>/.apothem/providers/glm.toml
Hermes (hermes)useryaml~/.hermes/.apothem/support/
~/.hermes/config.yaml
Kimi Code (kimi-code)projectmarkdown<project>/.kimi-code/.apothem/support/
<project>/.kimi-code/agents/
<project>/.kimi-code/skills/
<project>/AGENTS.md
Kiro (kiro)projectmarkdown<project>/.apothem/support/kiro/hooks/
<project>/.kiro/agents/
<project>/.kiro/hooks/apothem.json
<project>/.kiro/steering/apothem-rules.md
~/.config/apothem/{rules,templates}/
~/.kiro/skills/
Open-Claw (open-claw)userjson~/.openclaw/.apothem/support/
~/.openclaw/openclaw.json
OpenCode (opencode)userjson~/.config/opencode/.apothem/support/
~/.config/opencode/opencode.json
~/.config/opencode/{commands,skills,agents}/
Qwen Code (qwen-code)userjson~/.qwen/.apothem/support/
~/.qwen/QWEN.md
~/.qwen/settings.json
~/.qwen/{commands,skills,agents}/
Trae (trae)projectmarkdown<project>/.trae/agents/
<project>/.trae/rules/apothem-rules.md
~/.config/apothem/{rules,templates}/
~/.trae/skills/
Windsurf (windsurf)projectmarkdown<project>/.apothem/support/windsurf/hooks/
<project>/.devin/agents/
<project>/.devin/config.local.json
<project>/.devin/rules/apothem-rules.md
~/.agents/skills/
~/.config/apothem/{rules,templates}/
Zed (zed)projectmarkdown<project>/.rules
~/.agents/skills/
~/.config/apothem/{rules,templates}/

On this page