# panlabs > O acervo de aprendizado de um desenvolvedor `panlabs`: o acervo de aprendizado de um desenvolvedor. 54 páginas (12 em Jornadas, 16 em Procedimentos, 26 em Ferramentas), locale `pt-BR`. Toda página deste site também é servida como Markdown: acrescente `.md` à URL dela. O `panlabs` é **ficção**, e esta documentação é conteúdo de demonstração de um projeto de estrutura e customização visual em Docusaurus. O acervo é **misto**: o `overpower` é uma ferramenta real, MIT, publicada no PyPI, e a documentação dele descreve a ferramenta de verdade. Todo o resto — os módulos, as skills e os servidores MCP descritos — não existe, e a empresa em que eles teriam sido escritos nunca é nomeada. ## Jornadas - [API Owner](https://thiagopanini.github.io/panlabs-docs/jornadas/.md): O papel de dono de contrato interno, do primeiro consumidor não mapeado até a política de depreciação que a esteira passou a cobrar. - [O contrato que não existia](https://thiagopanini.github.io/panlabs-docs/jornadas/api-owner/o-contrato-que-nao-existia.md): Como o serviço de catálogo ganhou uma descrição do que promete, seis meses depois de já estar em produção com três consumidores. - [O que o contrato não cobre](https://thiagopanini.github.io/panlabs-docs/jornadas/api-owner/o-que-o-contrato-nao-cobre.md): As três promessas que o contrato do catálogo deliberadamente não faz, e por que dizê-las em voz alta vale mais que garanti-las. - [A política de versão](https://thiagopanini.github.io/panlabs-docs/jornadas/api-owner/a-politica-de-versao.md): Por que versionar o contrato por data não respondia à única pergunta que o consumidor faz, e o que semver mudou na prática. - [O schema que mudou sem aviso](https://thiagopanini.github.io/panlabs-docs/jornadas/api-owner/o-schema-que-mudou-sem-aviso.md): Um campo opcional virou obrigatório sem subir de major, e o erro só apareceu no terminal de quem consumia, em três formatos diferentes. - [Depreciar em seis meses](https://thiagopanini.github.io/panlabs-docs/jornadas/api-owner/depreciar-em-seis-meses.md): Como o aviso de depreciação saiu do changelog e passou a viajar na própria resposta, com prazo e destino de migração. - [O consumidor invisível](https://thiagopanini.github.io/panlabs-docs/jornadas/api-owner/o-consumidor-invisivel.md): Como o inventário de quem chama o serviço deixou de sair de conversa e passou a sair do log de acesso, sem pedir cadastro a ninguém. - [Security Champion](https://thiagopanini.github.io/panlabs-docs/jornadas/security-champion/indice.md): O papel de ponte entre segurança e engenharia numa squad de plataforma, do bloqueio que parou seis repositórios até o inventário que sobreviveu ao papel. - [A varredura que reprovava tudo](https://thiagopanini.github.io/panlabs-docs/jornadas/security-champion/a-varredura-que-reprovava-tudo.md): Ligar a varredura de dependências em modo bloqueante no primeiro dia parou seis repositórios e não produziu um achado acionável. - [O segredo no commit](https://thiagopanini.github.io/panlabs-docs/jornadas/security-champion/o-segredo-no-commit.md): O vazamento de uma chave num commit não foi o problema; o problema foi descobrir que rotacionar era um procedimento manual de quarenta minutos. - [A exceção que virou regra](https://thiagopanini.github.io/panlabs-docs/jornadas/security-champion/a-excecao-que-virou-regra.md): Toda trava precisa de uma saída declarada; sem ela, quem precisa entregar contorna por fora e ninguém sabe quantas exceções existem. - [O inventário de imagens](https://thiagopanini.github.io/panlabs-docs/jornadas/security-champion/o-inventario-de-imagens.md): A pergunta "onde essa imagem roda?" não tinha dono, e passou a ter, com a resposta construída a partir do que a esteira já publicava. ## Procedimentos - [Ambiente](https://thiagopanini.github.io/panlabs-docs/procedimentos/.md): Os três ambientes, o que distingue um do outro, e por onde começar quando a máquina é nova. - [Comparativo dev/staging/prod](https://thiagopanini.github.io/panlabs-docs/procedimentos/ambiente/comparativo-dev-staging-prod.md): As vinte e quatro diferenças entre os três ambientes, na ordem em que elas costumam surpreender. - [Preparar a máquina local](https://thiagopanini.github.io/panlabs-docs/procedimentos/ambiente/preparar-a-maquina-local.md): Os quatro passos entre uma máquina nova e o primeiro comando que fala com dev, sem privilégio de administrador. - [Verificar a assinatura HMAC](https://thiagopanini.github.io/panlabs-docs/procedimentos/esteiras/verificar-a-assinatura-hmac.md): Como conferir que um evento chegou de quem diz tê-lo enviado, em Python e no passo de esteira, sem abrir janela de repetição. - [Publicar um pacote interno](https://thiagopanini.github.io/panlabs-docs/procedimentos/esteiras/publicar-um-pacote-interno.md): Do merge em main até o pacote disponível no índice interno, com versão derivada da tag e publicação sem senha. - [Rodar a esteira localmente](https://thiagopanini.github.io/panlabs-docs/procedimentos/esteiras/rodar-a-esteira-localmente.md): Como reproduzir uma reprovação de esteira na própria máquina, sem gastar um ciclo de push por tentativa. - [O output de um módulo](https://thiagopanini.github.io/panlabs-docs/procedimentos/infraestrutura/o-output-de-um-modulo.md): Por que o output de um módulo é um objeto aninhado e não uma lista de valores soltos, e até onde o aninhamento vai. - [Criar um bucket versionado](https://thiagopanini.github.io/panlabs-docs/procedimentos/infraestrutura/criar-um-bucket-versionado.md): O caso mais comum de provisionamento, do módulo à primeira escrita, com versionamento e ciclo de vida já decididos. - [Promover um módulo](https://thiagopanini.github.io/panlabs-docs/procedimentos/infraestrutura/promover-um-modulo.md): Como um trecho de composição repetido em três repositórios vira módulo publicado, sem quebrar quem já o copiou. - [Permissões por papel](https://thiagopanini.github.io/panlabs-docs/procedimentos/acessos/permissoes-por-papel.md): A matriz de quarenta permissões concedidas pelos papéis da casa, com o serviço, a ação, o ambiente e a condição que a limita. - [Assumir um papel na AWS](https://thiagopanini.github.io/panlabs-docs/procedimentos/acessos/assumir-um-papel-na-aws.md): O procedimento de todo dia, do login corporativo à sessão temporária, com MFA onde ele é exigido. - [Rotacionar uma chave](https://thiagopanini.github.io/panlabs-docs/procedimentos/acessos/rotacionar-uma-chave.md): O procedimento de quando algo deu errado, trocar uma chave em uso sem derrubar quem a lê, com janela de aceitação dupla. - [Índice de sintomas](https://thiagopanini.github.io/panlabs-docs/procedimentos/diagnostico/indice-de-sintomas.md): A tabela que leva do que você está vendo à causa provável, com uma seção por sintoma e o comando que confirma cada um. - [Monitoramento e alertas](https://thiagopanini.github.io/panlabs-docs/procedimentos/diagnostico/monitoramento-e-alertas.md): Por que a casa alerta sobre sintoma e não sobre causa, quais são os quatro sinais que valem página, e o que fica só no painel. - [O mesmo erro em três formas](https://thiagopanini.github.io/panlabs-docs/procedimentos/diagnostico/o-mesmo-erro-em-tres-formas.md): Uma falha de credencial expirada aparece diferente em Python, em Terraform e no log do Actions, e só uma das três nomeia a causa. - [O diff que resolveu](https://thiagopanini.github.io/panlabs-docs/procedimentos/diagnostico/o-diff-que-resolveu.md): Três incidentes cuja correção coube em poucas linhas, com o diff exato e o que cada um deixou de regra. ## Ferramentas - [Visão geral](https://thiagopanini.github.io/panlabs-docs/ferramentas/.md): O que o overpower é, as três perguntas que os três comandos respondem, e por que a versão que você fixa é o catálogo que você recebe. - [Instalação](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/instalacao.md): Como obter o overpower, o atalho op que de propósito não é instalado, e a flag que prova que o pacote chegou inteiro. - [Conceitos](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/conceitos.md): O vocabulário do overpower, das três unidades instaláveis ao slot, à precondição, ao runtime e ao escopo. - [Comandos](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/comandos/indice.md): A forma da linha, com os seletores que se misturam livremente e o plano que roda sempre na mesma ordem. - [overpower](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/comandos/overpower.md): A raiz da linha de comando, com as opções que valem em qualquer posição e a tabela dos quatro códigos de saída que os três comandos compartilham. - [overpower list](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/comandos/list.md): Responde o que existe. Nu, imprime o catálogo embutido em quatro blocos; com um seletor, abre um item só, por inteiro. - [overpower install](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/comandos/install.md): Escreve. Imprime o plano, com todo destino e quem o lê, antes de encostar em disco, e pergunta antes de escrever quando há um terminal do outro lado. - [overpower doctor](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/comandos/doctor.md): Responde se o que foi escrito continua sendo o que foi escrito. Reporta o terminal e a integridade numa saída só, nos dois escopos ao mesmo tempo. - [Alvos](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/alvos/indice.md): Os 77 runtimes, os dois escopos, e onde cada artefato aterrissa em disco. - [Servidores MCP](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/alvos/servidores-mcp.md): O enxerto, uma chave dentro de um arquivo que é seu, segredo nunca escrito, e alvos derivados em vez de declarados. - [Instalar de um repositório](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/alvos/from.md): Qualquer repositório do GitHub como raiz de busca, e como um caminho tree fixa um branch, uma tag ou um commit. - [Referência](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/referencia/indice.md): O catálogo como ele está hoje, com um AI Framework, um bundle, uma skill de pool e quatro servidores MCP. - [Códigos de saída](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/referencia/codigos-de-saida.md): Os quatro códigos de saída, a afirmação que cada um faz, e o eixo que separa o defeito da linha do defeito do mundo. - [Solução de problemas](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/referencia/solucao-de-problemas.md): As recusas comuns organizadas pela mensagem que você viu, o que cada uma significa, e o que fazer a respeito. - [Desenvolvimento](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/desenvolvimento/indice.md): O laço de quatro comandos, e os hooks locais que guardam todo commit. - [Testes](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/desenvolvimento/testes.md): A doutrina, com disco real, uma suíte só rodando inteira nas nove células, e a rede nunca dentro de um portão. - [Telas](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/desenvolvimento/telas.md): Como uma tela é testada, com estrutura no portão e um snapshot por tela, e como atualizar um snapshot de propósito. - [Publicação](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/publicacao/indice.md): A arquitetura, com os módulos, o fluxo entre eles, e duas raízes irmãs de invariantes opostas. - [Curadoria](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/publicacao/curadoria.md): Como o conteúdo vendorizado é renovado, e o que um candidato precisa ser para ganhar lugar no catálogo. - [Release](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/publicacao/release.md): O towncrier, a subida de versão como ato do autor, e por que publicar é mergear. - [Changelog](https://thiagopanini.github.io/panlabs-docs/ferramentas/bibliotecas/overpower/publicacao/changelog.md): O que mudou em cada versão publicada do overpower, em cronologia reversa, montado dos fragmentos que cada pull request deixou. - [Módulo de bucket](https://thiagopanini.github.io/panlabs-docs/ferramentas/modulos-terraform/modulo-de-bucket.md): O módulo que cria bucket privado, versionado e criptografado, com as três variáveis, o output aninhado e o que ele decide por você. - [Módulo de papel IAM](https://thiagopanini.github.io/panlabs-docs/ferramentas/modulos-terraform/modulo-de-papel-iam.md): O módulo que cria papel com limite de permissão aplicado, e por que ele recusa política inline. - [Scaffold de esteira](https://thiagopanini.github.io/panlabs-docs/ferramentas/skills/scaffold-de-esteira.md): Cria os três workflows do template num repositório novo, já ligados ao papel de publicação da equipe. - [Rotação de segredo](https://thiagopanini.github.io/panlabs-docs/ferramentas/skills/rotacao-de-segredo.md): Executa a rotação com janela de aceitação dupla, espera a propagação e revoga a versão anterior, sem intervenção manual. - [Servidor de catálogo MCP](https://thiagopanini.github.io/panlabs-docs/ferramentas/servidores-mcp/servidor-de-catalogo-mcp.md): Instalação, configuração, as três ferramentas de leitura que ele expõe, e o que ele faz quando o papel do chamador não alcança.