Sobre o projeto

O dotfiles-web é o hub público de vitrine e documentação para o sistema de dotfiles dotgibson, descrito no README como um ambiente de terminal de três camadas e onze repositórios (Core → OS-native → Role). Ele documenta esse sistema em vez de configurar uma máquina, portanto, não é explicitamente uma das três camadas. O site é construído com Astro, possui o tema Tokyo Night e é implantado no GitHub Pages. Estrutura O README lista cinco rotas principais: uma página inicial com o hero, o modelo de três camadas, o mapa de repositórios e instruções de instalação; uma página de início rápido com orientações de instalação por plataforma; uma página de arquitetura cobrindo o modelo de camadas, a lógica do subtree, o loader e análises detalhadas; um hub de documentação com conceitos, guias, referências e uma página gerada por repositório; e um changelog que espelha o CHANGELOG.md de cada repositório. Conteúdo orientado a dados O site descreve-se como orientado a dados e amplamente derivado da fonte: os cartões de vitrine, as páginas de documentação por repositório, a faixa "by the numbers" e o changelog vêm de arquivos em src/data e dos repositórios irmãos, para que a documentação não divirja silenciosamente do código que descreve. As entradas editáveis incluem src/data/site.ts (nome do site, proprietário, navegação, links do GitHub), src/data/repos.ts (mapa de repositórios e prosa por repositório mais status), src/data/install.ts (etapas de instalação por plataforma) e páginas Markdown em src/content/docs. Quatro coletores em scripts/ derivam dados gerados dos repositórios irmãos: collect-metrics.mjs produz generated.json a partir dos onze repositórios de dotfiles; collect-snippets.mjs produz snippets.json a partir de oito arquivos selecionados em seis repositórios; collect-corpus.mjs produz corpus.json a partir do htpx; e collect-coverage.mjs produz coverage.json a partir do dotfiles-Defense. Rigor e guardas de proveniência O comando npm run data é descrito como o caminho de publicação e é rigoroso: a ausência de um repositório, ou um irmão estacionado em uma branch de funcionalidade ou com edições não commitadas em um arquivo que os coletores leem, faz a execução falhar. O README explica que essa verificação existe porque um dotfiles-core em uma branch de funcionalidade publicou certa vez uma entrada de changelog não presente na main do Core. Os coletores individuais e o npm run data:lenient permanecem tolerantes para execuções exploratórias; o README distingue um caso inofensivo (repositório de origem ausente — arquivo commitado intacto, exit 0) de um que ainda escreve dados contaminados (frota presente, mas não limpa, marcada com generatedFrom.clean: false). Duas guardas leem esse veredito de proveniência: um hook de pre-commit instalado por npm install ou npm run hooks:install (uma máquina, cobre generated.json e snippets.json) e um job de CI de committed-data-provenance em data-freshness.yml (cada PR). O hook é ignorado ruidosamente quando core.hooksPath está definido e pode ser ignorado com DOTFILES_ALLOW_DIRTY_DATA=1 ou --no-verify; o job de CI não pode. Automação O fleet-sync.yml executa todos os quatro coletores semanalmente e abre um PR quando a saída diverge. O data-freshness.yml falha no CI quando qualquer um dos quatro arquivos commitados não corresponde mais à sua fonte e, adicionalmente, quando a versão Core do generated.json está atrasada em relação ao último lançamento do dotfiles-core. O push para a main aciona o deploy.yml (build do Astro → GitHub Pages), e os repositórios de origem podem solicitar um rebuild via repository_dispatch, autenticado por meio de um token de GitHub App de curta duração, conforme descrito em docs/WEBHOOK-SETUP.md. Desenvolvimento Os pré-requisitos são Node.js com npm; o projeto é um projeto Astro padrão. Os comandos incluem npm run dev (servidor de dev local), npm run build (build de produção em dist/), npm run preview e npm run check (verificações de tipo do Astro e de content-collection). As orientações de contribuição pedem que os contribuidores tratem os repositórios de fonte da verdade como canônicos, mantenham o conteúdo nos arquivos de dados em vez de hard-codá-lo nas páginas e passem no npm run check e npm run build antes de fazer o push. Uma Licença MIT é declarada.