a outra metade
Coisas que construí porque queria que existissem.
O PANTHEON é o trabalho. Isto é o que os mesmos instintos produzem quando ninguém está pagando pelo resultado: um céu real na área de trabalho, uma efeméride sem dependências e um terminal que sabe desenhar. A disciplina é idêntica; só muda o que está em jogo.
GNOME Shell · GPL-2.0 · ★3
TerraFirma: um céu real sobre o seu papel de parede.
Não é uma animação de um céu. É o céu real, calculado a partir de uma efeméride para sua latitude, longitude e relógio.
O loop crítico é mensurável de propósito
A projeção e a atmosfera ficam em skymath.js, que não importa nada do GNOME Shell. Um arquivo que só roda dentro de uma sessão só pode ser adivinhado; um que roda de forma isolada pode ser cronometrado. Essa fronteira segue o mesmo raciocínio do lint de pureza que mantém o núcleo do PANTHEON fora da sua camada de aplicação.
O catálogo de estrelas e as efemérides são de terceiros e têm os créditos em NOTICE.md. Aponte para uma data e depois olhe para cima: para esse tipo de software, esse é o único teste que conta.
Por que o loop crítico teve que sair → · TerraFirma no GitHub ↗
extraídos e publicados
Três pacotes que saíram disso.
O mesmo padrão dos seis do PANTHEON: construir a coisa, encontrar a parte que é genuinamente reutilizável, extraí-la e publicá-la de forma independente. Os três são MIT e podem ser instalados agora mesmo.
braillecanvas v0.4.0 · MIT
O Braille endereça 2×4 pontos por célula de caractere, então um terminal de 80×24 é na verdade uma tela de 160×96. Essa é a diferença entre uma renderização e arte ASCII.
A parte interessante é a cor. Cada célula carrega duas cores, uma para os pontos acesos, outra para os vãos, de modo que uma célula sobre uma borda, pele contra céu, mantém a borda em vez de tirar a média até virar lama. O erro médio de cor por ponto nesta imagem cai de 45.7 para 21.3.
Escolher quais pontos acendem em cada célula, em vez de tirar o padrão de uma grade de dither fixa, reduz as células sem textura de 35.1% para 1.6%.
Dois limites declarados no próprio README: abaixo de cerca de 90 colunas as fotografias deixam de funcionar, e o monocromático não consegue renderizar esta imagem de jeito nenhum, o rosto dela mede 159 de luminância contra 192 do céu atrás dela, então uma renderização de 1 bit é uma silhueta por construção.
npm i braillecanvas · npm ↗ · código-fonte ↗
skymaths v0.1.2 · MIT
Astronomia posicional sem dependências: Sol, Lua, planetas, crepúsculo, nascer e ocaso. Extraída das efemérides do TerraFirma e depois corrigida: o polinômio de Espenak–Meeus que ela usava é publicado apenas para 1900–1920 e estava sendo aplicado a 1986, dando −534 segundos para 1950 contra um valor medido de +29. Encontrado ao conferi-la com um almanaque publicado, e não com ela mesma.
Está rodando neste site: no modo escuro, o fundo é o céu sobre Cardiff na noite das Perseidas, 13 de agosto de 2026, calculado no seu navegador: 5,044 estrelas em suas cores reais, a fase da Lua e os planetas onde estavam. Role a página para girar.
npm i skymaths · npm ↗ · código-fonte ↗
starwheel v0.2.3 · MIT · ★4
Um planisfério ao vivo no seu terminal, com posições reais das estrelas para a sua localização e o seu minuto, desenhado com braillecanvas. Meu repositório com mais estrelas, e o que me ensinou que uma correção que altera pixels publicados não é a mesma correção duas vezes: ela limita iterações onde a sua irmã recorta, deliberadamente.
npx starwheel · npm ↗ · código-fonte ↗
/proc, CPU, memória e load average em uma janela deslizante. Os gráficos funcionam muito abaixo do mínimo de 90 colunas que as fotografias exigem, porque já têm alto contraste.nesta página, agora mesmo
A arte é gerada, e a semente não tem como escapar.
Toda a arte deste site: o hero acima, o favicon, os cards sociais, os avatares, sai do próprio gerador do PANTHEON. Determinística e com seed: a mesma seed gera a mesma imagem, sempre.
O mesmo contrato dos dois lados
Um motor no servidor renderiza os cards sociais e os sites dos tenants; um motor no navegador desenha a versão animada que você está vendo. Mesma regra: entra a seed, sai arte reproduzível.
Seguro contra injeção por construção
A seed alimenta o PRNG e nada mais. ela nunca é interpolada em markup nem em um estilo. Um nome de tenant que na verdade é um payload desenha uma imagem diferente; não desenha uma tag script. O mesmo instinto do resto do sistema, aplicado à decoração.
instalável, não apenas legível
Seis garantias, extraídas e publicadas.
Cada um saiu do PANTHEON como uma única promessa verificável e depois foi para o PyPI, para se sustentar sozinho. Agentes de IA adversariais, executados por mim, não independentes, os revisaram linha por linha e encontraram defeitos reais; as versões abaixo são as posteriores a essas correções, cada uma verificada instalando a partir do registro em um ambiente limpo e reexecutando a própria reprodução do revisor, e não confiando no log de build.
pantheon-guardrails v0.3.2 · Apache-2.0
Um avaliador de constituição que só usa um juiz LLM em respostas de alto risco, e exige que esse juiz seja um modelo diferente do gerador, para que os dois não compartilhem pontos cegos. Ele costumava ajustar uma pontuação fora do intervalo para cima: um juiz que retornasse {"clarity": 99} recebia um 1.0 perfeito e passava em todos os limiares: um guardrail falhando aberto. Agora, um juiz que lança exceção, trava ou retorna algo sem sentido é uma avaliação explicitamente falha, que bloqueia por padrão.
pip install pantheon-guardrails · PyPI ↗ · código-fonte ↗
pantheon-ssrf-guard v0.2.1 · Apache-2.0
Uma proteção de saída contra SSRF em duas camadas que resiste a DNS rebinding: ela verifica novamente o IP que o socket realmente alcançou no momento da conexão, então um host que resolve para um endereço público e depois faz rebinding para loopback ou metadados de nuvem é recusado. A revisão descobriu que o opener ainda leria URLs file://, porque o Python instala handlers para outros esquemas por padrão; agora há uma allowlist explícita de http/https na fronteira, incluindo redirecionamentos, e os proxies de ambiente ficam desativados a menos que você os solicite.
pip install pantheon-ssrf-guard · PyPI ↗ · código-fonte ↗
pantheon-tool-sanitizer v0.3.0 · Apache-2.0
Remove marcação de protocolo de ferramentas e contrabando de Unicode do texto de ferramentas MCP não confiáveis antes que chegue ao prompt de um agente. Escopo honesto: não afirma impedir injeção em prosa simples, que é um problema de arquitetura e não de strings. Duas correções vindas da revisão: uma entrada adversarial de 256 kB consumia 26 segundos de CPU e agora é recusada de imediato, e "Read\nthe\tfile" não vira mais "Readthefile", porque uma quebra de linha é um limite de palavra.
pip install pantheon-tool-sanitizer · PyPI ↗ · código-fonte ↗
credit-ledger v0.3.0 · Apache-2.0
Medição à prova de saldo negativo sobre Postgres em cerca de 150 linhas: 100 cobranças paralelas contra um saldo de 50 e exatamente 50 são bem-sucedidas, cobrança exatamente uma vez sob reenvios de webhook, isolamento imposto por row-level security. A versão publicada aceitava uma cobrança negativa, que pagava o cliente, e valores abaixo da precisão da coluna, que cobravam 0.0000 enquanto reportavam sucesso. Uma única regra de valor agora cobre todos os caminhos, e há uma migração testada para bancos de dados que já existem.
pip install credit-ledger · PyPI ↗ · código-fonte ↗
pantheon-ical v0.3.1 · Apache-2.0
iCal (RFC 5545) de ida e volta para calendários de reservas em menos de 200 linhas. Um período ocupado descartado é lido como livre, então o silêncio é a falha perigosa: um calendário grande demais é recusado em vez de truncado, e uma regra recorrente que estoura avisa isso em vez de retornar uma lista curta. A última correção limitou o trabalho além do resultado: uma regra hostil de uma linha chegava a gerar 34 milhões de ocorrências ao longo de 76 segundos antes de ser rejeitada; agora para em 401.
pip install pantheon-ical · PyPI ↗ · código-fonte ↗
pantheon-rls v0.1.1 · Apache-2.0
Isolamento de tenants como garantia do Postgres, e não como hábito da aplicação: force-RLS mais concessões de privilégio mínimo, para que o próprio banco de dados recuse leituras e escritas entre tenants. Fail-closed por construção: sem contexto de tenant, retorna zero linhas, nunca todas as linhas, que é o modo de falha que importa quando um bug chega à produção às 3h da manhã.
pip install pantheon-rls · PyPI ↗ · código-fonte ↗
Cada correção acima chegou do mesmo jeito: primeiro reproduzir o defeito, corrigir a fronteira em vez do sintoma e depois provar que o novo teste falha quando o bug é reintroduzido. Um teste que não pode falhar não é evidência.
em que ele roda
A stack é comum. A fronteira não é.
Python 3.12, FastAPI, Postgres, Redis, React com Vite, um Dockerfile atrás do nginx. Nada disso é uma decisão digna de admiração, são as peças que você escolhe para que sua atenção possa ir para onde importa.
146 arquivos · 14,002 linhas
pantheon-core: o substrato. Agnóstico de domínio por contrato: não pode importar de residents nem de bundles, e duas verificações independentes fazem o CI falhar quando isso acontece.
210 arquivos · 24,216 linhas
Testes, contra 38,816 linhas de Python. Eu não escrevo a implementação à mão, então a suíte não é uma rede de segurança. Ela é a especificação, e é o artefato que eu de fato escrevo.
Cinco camadas, um único caminho
architect · runtime · guardrails · substrate · primitives, com providers deliberadamente fora da pilha, porque fica abaixo de duas camadas ao mesmo tempo e o contrato diz isso abertamente em vez de se dobrar.
Essa fronteira é o motivo pelo qual seis componentes puderam ser extraídos e publicados como bibliotecas independentes; a extração foi basicamente mover arquivos que nunca tiveram permissão de alcançar camadas inferiores. A versão longa, incluindo a parte em que errei →
A mesma pessoa, as mesmas regras, menos coisa em jogo.
Ninguém audita um papel de parede. Eles são construídos assim porque é a única forma que conheço de construir: medir, extrair a parte reutilizável, publicar os limites junto e conferir os números contra algo externo ao programa.
Pergunte sobre qualquer parte deste trabalho.
- Que função o Isaac está procurando?
- Qual destes está rodando em produção?
- Mostre um bug real que ele encontrou e corrigiu