# AGENTS.md Guia operacional para agentes trabalhando neste repositorio. Este arquivo deve refletir o estado atual do repo. Se a estrutura mudar, atualize este documento junto. ## Objetivo do repo - Este repo contem a configuracao pessoal de NixOS e Home Manager da maquina `Nixos`. - O setup e especifico para o usuario `ltadeu6` e para os hosts versionados neste repo; nao trate este repo como template generico sem adaptar usuario, host, mounts, rede e segredos. - O flake principal gera `nixosConfigurations.Nixos` e `nixosConfigurations.NixOracle`. - O Home Manager esta embutido no modulo NixOS; nao existe fluxo separado de `home-manager switch`. ## Regras gerais para agentes - Priorize mudancas pequenas, simples e revisaveis. - Nao edite `hosts/Nixos/hardware-configuration.nix` sem pedido explicito. - Nao imprima segredos, tokens, chaves, conteudo de arquivos `.age` ou valores vindos de `/run/agenix/*`. - Prefira editar a fonte de verdade declarativa, nao o arquivo gerado em `~/.config`, `/etc` ou `/run`. - Se um comportamento e gerado por Home Manager ou NixOS, altere o modulo que gera o arquivo, nao o arquivo final. - Ao adicionar servicos, habilite apenas o necessario e documente dependencias novas neste arquivo. - Antes de remover um arquivo de `configs/`, confirme se ele ainda e referenciado por `home/ltadeu6.nix` ou `hosts/Nixos/configuration.nix`. ## Mapa rapido do repo - `flake.nix`: entrada principal do flake, inputs e wiring dos modulos. - `flake.lock`: lockfile dos inputs do flake. - `hosts/Nixos/configuration.nix`: modulo principal do sistema. - `hosts/Nixos/hardware-configuration.nix`: hardware, filesystem e driver de video; gerado pelo NixOS. - `hosts/NixOracle/configuration.nix`: modulo minimo do VPS `NixOracle`. - `hosts/NixOracle/hardware-configuration.nix`: placeholder para o hardware do VPS; substitua pelo gerado no host. - `home/ltadeu6.nix`: modulo principal do Home Manager do usuario. - `home/openclaw.nix`: modulo opcional do OpenClaw; so entra se `enableOpenClaw = true` em `flake.nix`. - `configs/hypr/`: fontes de verdade do Hyprland e asset do wallpaper. - `configs/waybar/`: configs e scripts do Waybar. - `configs/doom/`: configuracao do Doom Emacs versionada no repo. - `configs/home-assistant/`: scripts auxiliares consumidos por servicos do host para alimentar o Home Assistant. - `configs/home-assistant/codex_status.py`: exportador do status local do Codex. - `configs/home-assistant/ui-lovelace.yaml`: dashboard principal do Home Assistant em YAML. - `configs/wofi/`: configuracao e tema do launcher Wofi. - `secrets/secrets.nix`: regras do agenix. - `secrets/*.age`: segredos criptografados. - `openclaw/documents/`: documentos consumidos pelo modulo opcional do OpenClaw. - `.codex/`: metadata local de ferramentas/agentes; nao faz parte da configuracao do sistema. - `README.md`: resumo humano do repo; o `AGENTS.md` deve ser mais preciso para trabalho automatizado. ## Inputs do flake e dependencias externas ### Inputs declarados em `flake.nix` - `nixpkgs`: canal principal `nixos-25.11`. - `nixpkgs-unstable`: canal `nixos-unstable`, exposto via overlay como `pkgs.unstable`. - `home-manager`: `release-25.11`, seguindo o `nixpkgs` principal. - `agenix`: gerenciamento de segredos. - `nix-openclaw`: overlay e modulo opcional do OpenClaw. ### Como o flake e montado hoje - O sistema alvo e `x86_64-linux`. - A flag local `enableOpenClaw` esta `false` em `flake.nix`. - Mesmo com `home/openclaw.nix` e `openclaw/documents/` no repo, eles nao entram na avaliacao enquanto `enableOpenClaw` continuar `false`. - O overlay injeta: - `nix-openclaw.overlays.default` - override em `openclaw` - override em `openclaw-gateway` - `pkgs.unstable` ## Fonte de verdade por area ### Sistema - Fonte principal: `hosts/Nixos/configuration.nix` - Nao edite arquivos em `/etc`, `/run/current-system`, `/run/agenix` ou servicos gerados; todos sao outputs. ### Hardware - Fonte principal: `hosts/Nixos/hardware-configuration.nix` - Este arquivo contem mounts e driver de video. Caminhos absolutos ali sao esperados e nao devem ser "corrigidos" sem pedido explicito. ### Home Manager - Fonte principal: `home/ltadeu6.nix` - O Home Manager publica arquivos em `~/.config` a partir de `configs/` ou gera alguns deles inline. ### Hyprland / wallpaper - `configs/hypr/hyprland.conf` e a fonte de verdade do Hyprland. - `configs/hypr/nixos.png` e o asset versionado do wallpaper. - `~/.config/hypr/hyprpaper.conf` NAO existe no repo; ele e gerado inline por `home/ltadeu6.nix`. - `~/.config/hypr/nixos.png` tambem e publicado pelo Home Manager a partir de `configs/hypr/nixos.png`. - `~/.config/hypr/scripts/screenshot-active-window.sh` e gerado inline por `home/ltadeu6.nix`. - O comentario de cabecalho "AUTOGENERATED HYPR CONFIG" em `configs/hypr/hyprland.conf` e legado; apesar disso, o arquivo versionado no repo e a fonte real. ### Waybar - Fontes de verdade: - `configs/waybar/config` - `configs/waybar/style.css` - `configs/waybar/dracula.css` - `configs/waybar/air_control.py` - `configs/waybar/launch.sh` - `configs/waybar/switch_sink.sh` - `configs/waybar/spotify_status.sh` - Esses arquivos sao publicados em `~/.config/waybar/` pelo Home Manager. ### Doom Emacs - Fontes de verdade: - `configs/doom/config.el` - `configs/doom/init.el` - `configs/doom/packages.el` - Nao existe `configs/doom/config.org` no estado atual do repo. - `configs/doom/custom.el` nao e versionado; trate customizacoes locais geradas pelo Emacs como fora do escopo do repo. ### Wofi - Fontes de verdade: - `configs/wofi/config` - `configs/wofi/style.css` - `configs/wofi/menu` - `configs/wofi/menu.css` ### OpenClaw - `home/openclaw.nix` e a fonte do modulo Home Manager do OpenClaw. - `openclaw/documents/` so importa quando `enableOpenClaw = true`. - Nao altere `openclaw/documents/` achando que isso afetara o sistema atual sem antes verificar se o modulo esta habilitado. ### Ollama / modelos locais - Fonte principal: `services.ollama` em `hosts/Nixos/configuration.nix`. - Modelos sincronizados hoje: - `gemma4:e4b` - `gpt-oss:20b` - `qwen2.5-coder:7b` - `gpt-oss:20b` e o candidato preferido para testar agentes executores locais. - `qwen2.5-coder:7b` pode funcionar para chat/codigo, mas mostrou baixa confiabilidade para tool-calling em agentes. ## Estrutura funcional atual ### `hosts/Nixos/configuration.nix` Este modulo concentra: - Variaveis locais do host: - `username = "ltadeu6"` - `homeDir = "/home/${username}"` - `agenix`: - identidade em `${homeDir}/.ssh/id_ed25519` - segredos opcionais via `builtins.pathExists` - `nix.settings`: - `nix-command` - `flakes` - `auto-optimise-store` - cache CUDA extra - boot: - `systemd-boot` - Plymouth - kernel params silenciosos - `vhba` - rede: - host `Nixos` - `networkmanager` - firewall desabilitado - IP estatico em `enp4s0` - gateway e DNS fixos - `extraHosts` com alias `vps` - bloco WireGuard comentado - locale: - timezone `America/Sao_Paulo` - locale `pt_BR.UTF-8` - keymap `br-abnt2` - programas habilitados: - `cdemu` - `gamescope` - `virt-manager` - `gnupg.agent` - `nautilus-open-any-terminal` - `fish` - `hyprland` - `neovim` - `nix-ld` - `dconf` - `kdeconnect` - `steam` - `starship` - `java` - `htop` - `git` - `gamemode` - `firefox` - `adb` - servicos habilitados: - `fstrim` - `home-assistant` - `dbus` - `displayManager.gdm` - `gvfs` - `gnome.gnome-keyring` - `udisks2` - `flatpak` - `openssh` - `emacs` - `printing` - `pipewire` - servicos atualmente declarados mas desabilitados: - `mysql` - `terraria` - `minecraft-server` - `jupyterhub` - audio e input: - `services.pulseaudio.enable = false` - `pipewire` com ALSA, Pulse e JACK - `security.rtkit.enable = true` - `hardware.uinput.enable = true` - `hardware.bluetooth.enable = true` - automacoes do sistema: - perfil `/etc/profile.d/openai.sh` - perfil `/etc/profile.d/openclaw.sh` - `nix-flake-update` timer/service - `flatpak-update` timer/service - `nix.gc` semanal - usuario: - `users.users.ltadeu6` - grupos: `terraria`, `mysql`, `networkmanager`, `wheel`, `storage` - shell `fish` - virtualizacao: - `libvirtd.enable = true` - `docker = false` - `waydroid = false` - desktop infra: - fontes Nerd Fonts - `xdg.portal` com portal GTK - `allowUnfree = true` ### Notas importantes sobre `configuration.nix` - `services.transmission` e `services.syncthing` foram removidos; nao reintroduza sem pedido explicito. - Os segredos do Syncthing tambem foram removidos do repo. - O servico `nix-flake-update` nao depende mais de path absoluto fixo do checkout; ele busca um repo sob `$HOME` contendo `hosts/Nixos/configuration.nix`. - `nix-flake-update` faz: - `nix flake update --commit-lock-file` - `nixos-rebuild switch --flake "$repo_dir#Nixos"` - somente se o repo estiver limpo exceto por `flake.lock` ## Estrutura do Home Manager (`home/ltadeu6.nix`) Este modulo concentra: - identidade do usuario: - `home.username = "ltadeu6"` - `home.homeDirectory = "/home/ltadeu6"` - `home.stateVersion = "25.11"` - programas/configs gerenciados: - `kitty` - `dunst` - `gtk` - cursor `Breeze` - `xdg.mimeApps` - `xdg.userDirs` - `spotifyd` - `programs.home-manager.enable = true` - session variables: - `MANPAGER` - `HYPRCURSOR_THEME` - `HYPRCURSOR_SIZE` - `QT_QPA_PLATFORMTHEME` - ativacao custom: - `home.activation.openclawGatewayEnv` - gera `~/.config/openclaw/gateway.env` a partir de `/run/agenix/openclaw_gateway_token` ### Arquivos publicados/gerados pelo Home Manager - Hypr: - publica `configs/hypr/hyprland.conf` - gera `~/.config/hypr/hyprpaper.conf` - publica `configs/hypr/nixos.png` - gera `~/.config/hypr/scripts/screenshot-active-window.sh` - Hyfetch: - gera `~/.config/hyfetch.json` - Waybar: - publica `config`, `style.css`, `dracula.css` - publica `air_control.py` - publica `spotify_status.sh` - publica `launch.sh` - publica `switch_sink.sh` - Doom: - publica `config.el`, `init.el`, `packages.el` - Wofi: - publica `config`, `style.css`, `menu`, `menu.css` ### Dependencias de `home.packages` Nao replique toda a lista daqui em outras docs; a fonte de verdade e `home/ltadeu6.nix`. Pacotes de sessao e desktop usados diretamente pelos configs: - `waybar` - `hyprpaper` - `wofi` - `pavucontrol` - `playerctl` - `jq` - `grim` - `slurp` - `wl-clipboard` - `networkmanager` - `hyprpicker` - `papirus-icon-theme` - `mpv` - `evince` - `ripgrep` Pacotes relevantes para trabalho/dev presentes no estado atual: - `unstable.codex` - `opencode` empacotado via Home Manager com `libstdc++.so.6` no `LD_LIBRARY_PATH` - `vscode` - `clang-tools` - `nodejs` - `stylelint` - `html-tidy` - `shfmt` - `shellcheck` - `black` - `isort` - `pipenv` - `nixfmt-classic` - `fd` - `tmux` - `texlab` Pacotes de uso geral e apps pesados presentes: - `tor-browser` - `libreoffice` - `gimp` - `inkscape` - `blender` - `discord-ptb` - `android-studio` - `gnome-boxes` - `prismlauncher` - `sageWithDoc` Para lista completa, consulte diretamente `home.packages`. ## Arquivos e comportamento por aplicacao ### Hyprland Arquivo principal: - `configs/hypr/hyprland.conf` Comportamentos importantes: - Define dois monitores por descricao: - LG ultrawide em alta taxa de refresh - monitor lateral `STD Computer Inc LED` - Autostart: - `waybar` - `hyprpaper` - `dbus-launch kdeconnect-indicator` - `antimicrox` com perfil em `/etc/antimicrox/controller-mouse.amgp` - shell snippet que usa `hyprctl`, `jq` e `xrandr` para forcar monitor primario - Launcher: - usa `wofi --show drun` - Screenshots: - area via `grim` + `slurp` - tela inteira via `grim` - janela ativa via script gerado pelo Home Manager - Workspaces: - workspaces `1..9` no monitor ultrawide - workspace `10` no monitor lateral - Regras especiais: - Steam e jogos Proton na workspace 4 - Emacs na workspace 2 - Multimedia keys: - dependem de `playerctl` Cuidados: - O autostart assume disponibilidade de `dbus-launch`, `kdeconnect-indicator`, `hyprctl`, `jq` e `xrandr`. - Se alterar nomes/descricoes de monitor, ajuste tanto os `monitor = ...` quanto o snippet que detecta a saida primaria. ### Hyprpaper - O wallpaper e controlado por `home/ltadeu6.nix`, nao por um arquivo `configs/hypr/hyprpaper.conf`. - O runtime usa `~/.config/hypr/nixos.png`, publicado a partir de `configs/hypr/nixos.png`. - Se trocar a imagem do wallpaper, prefira substituir `configs/hypr/nixos.png` ou ajustar o source em `home/ltadeu6.nix`. ### Waybar Arquivos principais: - `configs/waybar/config` - `configs/waybar/style.css` - `configs/waybar/dracula.css` - `configs/waybar/air_control.py` - `configs/waybar/launch.sh` - `configs/waybar/switch_sink.sh` - `configs/waybar/spotify_status.sh` Modulos relevantes: - `hyprland/workspaces` - `cava` - `custom/ac` - `clock` - `custom/spotify` - `network` - `bluetooth` - `pulseaudio` - `backlight` - `battery` - `custom/poweroff` Dependencias e assumptions do Waybar: - `custom/spotify` depende de `spotifyd` e `playerctl`. - `pulseaudio` usa `pavucontrol` e `pactl`. - `bluetooth` chama `bluetoothctl`. - `custom/ac` executa `~/.config/waybar/air_control.py`. - Os botoes de lock chamam `hyprlock`. Cuidados: - `configs/waybar/config` referencia `hyprlock`, `bluetoothctl` e o modulo `cava`. - Nem toda dependencia usada no runtime aparece perto do arquivo que a consome; verifique `home.packages`, `environment.systemPackages` e os servicos do sistema antes de alterar comandos. ### Waybar AC / Home Assistant Arquivo principal: - `configs/waybar/air_control.py` Regras atuais: - Usa apenas stdlib Python: - `urllib` - `json` - `fcntl` - etc. - Nao depende de `requests`, apesar de `python3Packages.requests` existir em `home.packages`. - Fala com Home Assistant em `http://localhost:8123`. - Controla a entidade `climate.ar`. - Le token em `~/.config/secrets/ha_token`. - Usa debounce e estado local em `~/.cache`. - Arquivos de cache: - `~/.cache/waybar_air_state.json` - `~/.cache/waybar_air_state.lock` - Regras de UX: - alteracoes de setpoint/modo/fan aparecem primeiro na UI - envio real e atrasado por debounce - `fan_only` e `dry` mostram temperatura atual do ambiente - fan speed aparece como indicador pequeno/subscrito ### Spotify no Waybar Arquivo principal: - `configs/waybar/spotify_status.sh` Regras atuais: - Descobre o player com `playerctl -l | rg '^spotifyd\.instance'`. - Mostra artista + titulo. - Usa um icone para `Playing` e outro para `Paused`. - So faz sentido se `services.spotifyd.enable = true`, o que esta habilitado hoje em `home/ltadeu6.nix`. ### Doom Emacs Arquivos principais: - `configs/doom/init.el` - `configs/doom/config.el` - `configs/doom/packages.el` Estado atual: - `init.el` habilita uma lista longa de modulos Doom, incluindo: - `vertico` - `corfu` - `treemacs` - `vterm` - `lsp` - linguagens como `cc`, `ess`, `gdscript`, `json`, `java`, `javascript`, `kotlin`, `latex`, `nix`, `org`, `python`, `qt`, `rust`, `sh`, `web`, `yaml` - `packages.el` adiciona: - `org-ref` - `vue-mode` - `kivy-mode` - `treemacs-all-the-icons` - `config.el` contem: - identidade do usuario - tema Dracula - fontes FiraCode Nerd Font Mono - ajustes de LSP/clangd - integracao com `org-ref` - configuracao de PDF tools - classe `abntex2` para LaTeX - dashboard customizado Cuidados: - Se alterar modulos ou `packages.el`, normalmente e preciso rodar `doom sync` fora do fluxo Nix. - Nao documente `config.org` ou `custom.el` como fonte de verdade; esses arquivos nao sao parte ativa do repo atual. ### Wofi Arquivos principais: - `configs/wofi/config` - `configs/wofi/style.css` - `configs/wofi/menu` - `configs/wofi/menu.css` Estado atual: - `config` define um launcher `drun` centralizado com prompt `Buscar...`. - `menu` parece ser config auxiliar para `wofi-wifi-menu`. - Tema usa Fira Code Nerd Font e paleta no estilo Dracula. ### OpenClaw Arquivo principal: - `home/openclaw.nix` Estado atual: - O modulo esta presente, mas desligado pelo gate `enableOpenClaw = false` em `flake.nix`. - Quando habilitado, ele: - liga `programs.openclaw` - usa `../openclaw/documents` - configura gateway local - busca token em `OPENCLAW_GATEWAY_TOKEN` - aponta o provider Ollama para `http://127.0.0.1:11434` - usa modelo `ollama/gemma4:e4b` ## Secrets e variaveis de ambiente ### Segredos versionados hoje - `secrets/openai_api_key.age` - `secrets/openclaw_gateway_token.age` - `secrets/minecraft_rcon_password.age` - `secrets/wireguard_private_key.age` ### Regras do agenix - Fonte de verdade: `secrets/secrets.nix` - Nunca grave segredo em texto puro no repo. - Se adicionar novo `.age`, atualize `secrets/secrets.nix` e o consumo correspondente no modulo Nix. ### Exposicao em runtime - `fish.shellInit` exporta: - `OPENAI_API_KEY` - `OPENCLAW_GATEWAY_TOKEN` - `/etc/profile.d/openai.sh` e `/etc/profile.d/openclaw.sh` fazem o mesmo para shells de login. - O token do Home Assistant do Waybar AC NAO esta sob agenix neste repo; ele e lido diretamente de `~/.config/secrets/ha_token`. ## Dependencias implicitas e pontos de atencao Itens que um agente deve verificar antes de mexer: - `hyprlock` e chamado pelo Waybar, mas nao aparece explicitamente perto do modulo que o consome. - `xrandr` e chamado por `configs/hypr/hyprland.conf`; confirme disponibilidade antes de trocar esse fluxo. - `dbus-launch` e `kdeconnect-indicator` sao usados no autostart do Hyprland. - `bluetoothctl` e usado por Waybar. - `playerctl` e usado tanto no Hyprland quanto no Waybar. - `pactl` e necessario para `configs/waybar/switch_sink.sh`. - `Home Assistant` local e `~/.config/secrets/ha_token` sao dependencias externas do controle de ar. - `open-webui` depende do `ollama` configurado no host. - `OLLAMA_CONTEXT_LENGTH` esta em `32768`; reduzir para 8k quebra prompts grandes de agentes com schemas de ferramentas. ### Home Assistant / Codex status Arquivo principal: - `configs/home-assistant/codex_status.py` Estado atual: - O host exporta o status local do Codex a partir de `~/.codex/sessions/.../*.jsonl`. - O export e feito pelo timer `codex-status-export`, que gera `/var/lib/hass/codex_status.json`. - O Home Assistant le esse JSON via sensores `command_line`. - Sensores expostos hoje: - `sensor.codex_5h_left` - `sensor.codex_5h_reset` - `sensor.codex_5h_reset_formatted` - `sensor.codex_weekly_left` - `sensor.codex_weekly_reset` - `sensor.codex_weekly_reset_formatted` Cuidados: - Nao tente obter esses dados via API de billing da OpenAI sem necessidade; o estado atual usa apenas arquivos locais do Codex. - Se mover a origem dos logs do Codex, ajuste `CODEX_SESSION_ROOT` no servico `codex-status-export`. - O dashboard do Home Assistant continua em storage mode; a fonte declarativa aqui cobre os sensores, nao os cards da UI. ### Home Assistant / dashboard do Codex Arquivo principal: - `configs/home-assistant/ui-lovelace.yaml` - `configs/home-assistant/ui-overview.yaml` Estado atual: - A dashboard principal `Home` e declarativa e vem de `ui-lovelace.yaml`. - Os recursos custom do Lovelace sao declarados em `services.home-assistant.config.lovelace.resources`. - O painel do Codex existe na dashboard principal `Home` e tambem na dashboard extra `Visão Geral`. - O painel escolhido para o Codex e o minimalista. Dependencias visuais atuais: - `lovelace-mushroom` - `button-card` Cuidados: - Se algum desses recursos nao estiver instalado no HACS, a dashboard pode abrir com erro de `custom element doesn't exist`. - Mudancas pela UI na dashboard principal nao sao a fonte de verdade; o repo sobrescreve `ui-lovelace.yaml`. - Recursos Lovelace relevantes devem ser mantidos na configuracao declarativa, nao apenas pela UI. ## Arquivos gerados que NAO devem ser editados diretamente - `~/.config/hypr/hyprpaper.conf` - `~/.config/hypr/nixos.png` - `~/.config/hypr/scripts/screenshot-active-window.sh` - `~/.config/hyfetch.json` - `~/.config/openclaw/gateway.env` - `/etc/antimicrox/controller-mouse.amgp` - `/etc/antimicrox/player-toggle.sh` - `/etc/antimicrox/disable-controller.sh` - `/etc/profile.d/openai.sh` - `/etc/profile.d/openclaw.sh` ## Comandos uteis ### Rebuild / apply - `sudo nixos-rebuild switch --flake .#Nixos` ### Validacao mais fiel do sistema - `nix --extra-experimental-features 'nix-command flakes' build --print-out-paths '.#nixosConfigurations."Nixos".config.system.build.toplevel' --no-link` ### Parse basico de sintaxe Nix - `nix-instantiate --parse hosts/Nixos/configuration.nix` - `nix-instantiate --parse home/ltadeu6.nix` ### Procura estrutural - `rg -n 'algum-termo' .` - `rg --files` ### Doom Emacs - Se mudar `configs/doom/init.el` ou `configs/doom/packages.el`, pode ser necessario rodar `doom sync`. ## Politica para mudancas - Mantenha a logica declarativa no arquivo de origem: - sistema em `hosts/Nixos/configuration.nix` - usuario em `home/ltadeu6.nix` - apps em `configs/...` - Se um arquivo em `configs/` estiver versionado e for publicado por `home.file`, prefira editar esse arquivo. - Se um arquivo em `~/.config` e gerado via `.text` ou script inline, edite `home/ltadeu6.nix`. - Nao reintroduza paths absolutos para o checkout do repo; o sistema atual foi limpo para evitar dependencia no local exato do projeto. - Ao mexer com wallpapers, mantenha o asset dentro do repo ou em caminho controlado pelo Nix/Home Manager. - Ao mexer com timers/servicos que fazem `git` ou `nix`, considere que o sandbox do agente pode falhar por escrita em cache; isso nao significa que a configuracao Nix esteja errada. ## Estado atual que agentes nao devem contradizer - `configs/hypr/hyprpaper.conf` nao existe mais no repo como fonte de verdade. - `Transmission` nao esta configurado no sistema. - `Syncthing` nao esta configurado no sistema. - Os secrets do Syncthing foram removidos. - O OpenClaw continua opcional e desligado por default. - O wallpaper do Hypr e entregue pelo Home Manager a partir de `configs/hypr/nixos.png`. - O script `configs/waybar/spotify_status.sh` e a fonte real do status do Spotify no Waybar. ## Commits - Sempre faca commit das mudancas feitas por agentes antes de encerrar a tarefa, salvo pedido explicito em contrario. - Use mensagens curtas e descritivas em ingles. - Se o GPG falhar, prefira desabilitar assinatura naquele commit em vez de bloquear a mudanca.