Skip to content
Apothem
Referência da CLI

profile

Referência da CLI para o grupo de comandos apothem profile.

Gerencia o perfil compartilhado do Apothem.

profile é um grupo de comandos com quatro subcomandos: init, show, set e edit. O perfil compartilhado é a única fonte de verdade que cada adaptador de harness materializa em sua configuração nativa.

Sinopse

apothem profile init [--profile PATH] [--force]
                     [--quiet|-q] [--verbose|-v]
                     [--format plain|json] [--json] [--no-color]
apothem profile show [--profile PATH] [--quiet|-q] [--verbose|-v]
                     [--format plain|json] [--json] [--no-color]
apothem profile set KEY VALUE
                     [--profile PATH] [--quiet|-q] [--verbose|-v]
                     [--format plain|json] [--json] [--no-color]
apothem profile edit [--profile PATH] [--quiet|-q] [--verbose|-v]
                     [--format plain|json] [--json] [--no-color]

Opções comuns

Todo subcomando aceita as opções compartilhadas abaixo.

OpçãoDescrição
--profile PATHCaminho para o YAML do perfil compartilhado (o padrão é o local padrão do perfil).
--quiet, -qSuprime a saída informativa; apenas erros são emitidos.
--verbose, -vEmite saída de diagnóstico adicional.
--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.

Subcomandos

profile init

Cria um esqueleto de perfil mínimo e válido segundo o schema em ~/.config/apothem/profile.yaml ou em --profile PATH. Os arquivos existentes são preservados, a menos que --force seja fornecido.

A primeira linha do esqueleto é uma modeline yaml-language-server que nomeia o $id do schema do perfil, https://apothem.ahmedgad.com/schemas/profile.schema.json. O site serve o schema empacotado nesse endereço, de modo que um editor com suporte à linguagem YAML valida o perfil enquanto você o edita. Todo schema empacotado em src/apothem/schemas/ é servido da mesma forma em https://apothem.ahmedgad.com/schemas/<file>.

OpçãoDescrição
--forceSobrescreve um esqueleto de perfil existente.

profile show

Exibe o perfil compartilhado validado, com os valores padrão expandidos. Com --json, o documento é o próprio perfil, encabeçado por schema_version: a versão do schema do perfil com a qual o motor o leu (consulte o contrato da saída JSON).

profile set KEY VALUE

Define uma chave no perfil compartilhado. KEY é um caminho com pontos que desce pelo perfil aninhado (identity.name, preferences.style, enforcement.sprints, harnesses.<harness>.preferences.style); uma única chave sem ponto define um nó de nível superior. VALUE é armazenado como uma string literal — palavras simples não são convertidas (no continua "no", 2024-01-01 e 1.0 continuam strings) — exceto true/false (os sinalizadores booleanos de imposição) e a entrada explícita de lista/mapa [...]/{...}. O perfil totalmente montado é validado em relação ao schema antes da gravação; uma definição inválida é recusada e o perfil em disco permanece inalterado.

ArgumentoDescrição
KEYCaminho com pontos dentro do perfil a definir (obrigatório).
VALUEValor literal a atribuir; validado antes da gravação (obrigatório).

profile edit

Abre o perfil compartilhado no editor do sistema.

Erros de validação

Todo comando que lê o perfil o valida em relação ao schema empacotado e relata todos os problemas que encontra em uma única passagem, de modo que uma única edição pode corrigir todos eles:

  • A saída em texto simples nomeia o primeiro problema por completo (Field, Reason, Fix e Offending value (redacted): a entrada que falhou, com os valores com formato de segredo substituídos por <redacted>; ela nunca é uma sugestão de substituição) e, em seguida, lista até mais dez em Other problems.
  • A saída JSON mantém o primeiro problema nos campos de nível superior do objeto error e adiciona um array errors com todos os problemas (code, field, reason, fix, safe_value).
  • As chaves desconhecidas ecoam apenas a chave inesperada e o seu valor ocultado, não o perfil inteiro.
  • Marcadores de bloco gerenciado. Nenhuma chave ou valor de texto pode conter <!-- BEGIN APOTHEM MANAGED BLOCK --> ou <!-- END APOTHEM MANAGED BLOCK -->. O Apothem grava esses marcadores em torno do bloco que gerencia nos arquivos de instruções, e o texto do perfil vai parar dentro desse bloco, de modo que um marcador nele dividiria o bloco. Cada campo desse tipo falha com profile.managed_block_marker: field é o seu caminho com pontos (por exemplo rules.2 ou mcp_servers.search.env.SEARCH_MODE) e reason nomeia o marcador. O próprio valor nunca é ecoado (safe_value é null), pois ele pode ser uma credencial.

profile init (e todo outro comando que cria o esqueleto de um perfil) grava schema_version: 1. Um perfil sem schema_version é lido como versão 1.

Exemplos

apothem profile init
apothem profile init --profile ./profile.yaml --force --json
apothem profile show
apothem profile show --json
apothem profile set seriousness SHARED
apothem profile set rules '["Use fake placeholders in examples."]'
apothem profile edit

Códigos de saída

CódigoSignificado
0Sucesso (ou, para edit, o editor saiu normalmente)
1O perfil está ausente, é inválido, já existe sem --force ou não pode ser gravado
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