Skip to content
Apothem
Referência da CLI

diff

Referência da CLI para o comando apothem diff.

Mostra uma prévia das alterações de configuração pendentes de um único harness.

Sinopse

apothem diff --harness NAME [--profile PATH] [--project PATH]
             [--quiet|-q] [--verbose|-v]
             [--format plain|json] [--json] [--no-color]

diff é um comando de inspeção somente leitura. Ele executa a mesma materialização que o comando install executaria, mas em modo de simulação — nada é gravado em disco. Para cada alvo pendente, ele renderiza uma ação em linguagem simples (por exemplo Write file, Merge directory, Install skills ou Prune stale files), o caminho do alvo, um status de prévia (would create, would update, would remove ou no change) e — para âncoras de propriedade do operador que seriam mescladas — o diff unificado da alteração. O status é calculado comparando a origem com o alvo atual em disco, de modo que um alvo que já corresponde aparece como no change e fica oculto na visualização padrão. É a resposta para "o que o apothem install faria com este harness agora mesmo?" sem fazer a alteração.

O plano cobre todos os caminhos que a instalação grava: as entradas do manifesto, o próprio arquivo de configuração do harness (por exemplo opencode.json ou config.yaml), a âncora de instruções ou o documento de perfil no qual o perfil compartilhado é projetado (como CLAUDE.md) e os armazenamentos de dados compartilhados sob .apothem/. Logo após uma instalação, diff não relata nenhuma alteração pendente; uma reinstalação então não grava nada e não faz nenhum novo backup. install --dry-run mostra o mesmo plano.

Para os adaptadores que gravam skills no seu diretório pessoal, o plano lista essas pastas com os seus caminhos no diretório pessoal, antes dos arquivos do projeto, e uma pasta de skill que o Apothem não gravou aparece como um aviso skill_conflict.

Para alvos de propriedade do operador — arquivos que carregam tanto o seu próprio conteúdo quanto um bloco gerenciado pelo Apothem — o diff mostra as linhas exatas que seriam alteradas. Para os demais alvos, a ação planejada e o status de prévia são resumidos.

A visualização padrão lista apenas as alterações pendentes. Passe --verbose para ver o plano completo, incluindo os alvos inalterados, anotado com o tipo bruto de operação interna e o resultado. O envelope --json não é afetado pela camada de exibição: ele sempre carrega os campos brutos operation e outcome para os consumidores de máquina.

diff opera sobre um único harness. Diferentemente de install ou verify, ele não aceita all; passe um nome de harness.

Opções

OpçãoDescrição
--harness NAMEAdaptador de harness a pré-visualizar (obrigatório; um único harness, não all).
--profile PATHCaminho para o YAML do perfil compartilhado. Padrão: ~/.config/apothem/profile.yaml.
--project PATHRaiz do projeto para os harnesses com escopo de projeto. Obrigatório quando o harness selecionado tem escopo de projeto.
--quiet, -qSuprime a saída informativa; apenas erros são emitidos.
--verbose, -vMostra o plano completo, incluindo os alvos inalterados, anotado com o tipo bruto de operação e o resultado.
--format plain|jsonFormato de saída (padrão: plain).
--jsonAbreviação de --format json.
--no-colorDesativa os códigos de cor ANSI na saída.
-h, --helpMostra a ajuda e sai.

Saída JSON

O envelope --json espelha o envelope da instalação em modo de simulação. status é dry_run, files_written está sempre vazio, e o bloco materialization mais a lista results carregam todo o detalhe dos alvos planejados. O campo detail.diff de cada linha de resultado de propriedade do operador carrega a string do diff unificado.

{
  "schema_version": 1,
  "status": "dry_run",
  "command": "diff",
  "action": "dry_run",
  "harness": "claude-code",
  "files_written": [],
  "results": [
    {
      "harness": "claude-code",
      "outcome": "updated",
      "operation": "sentinel_merge",
      "path": "C:\\Users\\Example\\.claude\\CLAUDE.md",
      "message": "dry run: no filesystem changes made",
      "detail": {
        "ownership_class": "operator-owned",
        "diff": "--- a/CLAUDE.md\n+++ b/CLAUDE.md\n@@ ..."
      }
    }
  ],
  "warnings": [],
  "error": null,
  "materialization": { "...": "..." }
}

Exemplos

apothem diff --harness claude-code
apothem diff --harness cursor --project .
apothem diff --harness claude-code --json

Códigos de saída

CódigoSignificado
0Diff relatado (as alterações pendentes são relatadas, não são um erro)
1Erro esperado de validação, de perfil, de harness ou de projeto
64Erro de uso: uma opção ou um comando desconhecido, ou um valor de opção ausente ou inválido. Com --json, o erro é um envelope JSON com o código cli.usage.

Veja também

On this page