Esta especificação define o lote de trabalho req-020 (BATCH-020) para o Engenheiro Executor. O foco é integrar a compilação de assets do Tailwind CSS v4 via CLI no ciclo de desenvolvimento e sincronização local, além de incluí-lo de forma automatizada no pipeline de release no GitHub Actions.
Para os estilos globais do core/sistema, a pasta de trabalho oficial será assets/tailwindcss/ (dentro de gestor/), diferenciando-se da pasta contents/ que é exclusiva para nível de projeto/usuário.
1. Inicialização dos Arquivos de Estilo do Core
-
Arquivo de Entrada (
input.css):-
Criar o arquivo
gestor/assets/tailwindcss/input.css. -
Configurar a importação padrão do Tailwind CSS v4 e apontar para o arquivo de configuração legado
tailwind.config.jsna raiz do workspace usando a diretiva@config(essencial para que o compilador v4 emita as classes baseando-se nos filtros de conteúdo da raiz do projeto):@import "tailwindcss"; @config "../../../tailwind.config.js"; -
A pasta
gestor/assets/tailwindcss/deve ser criada pelo executor caso ainda não exista.
-
2. Configurações de Ambiente Local e Templates
-
Arquivo de Configuração Ativo (
dev-environment/data/environment.json):-
Adicionar no objeto
"devEnvironment"a chave"tailwindcss/cli"configurada para compilar os assets locais:"devEnvironment": { ... "tailwindcss/cli": "npx @tailwindcss/cli -i ./assets/tailwindcss/input.css -o ./assets/tailwindcss/output.css --minify" }
-
-
Arquivo de Template (
dev-environment/templates/environment/environment.json):-
Adicionar no bloco
"devEnvironment"do template a chave"tailwindcss/cli"vazia (""):"devEnvironment": { ... "tailwindcss/cli": "" } -
Realizar uma auditoria comparativa entre o arquivo ativo (
data/environment.json) e o template (templates/environment/environment.json) para certificar que todos os campos estruturais e chaves configuráveis presentes no arquivo ativo estejam representados e mapeados como chaves vazias ou com valores padrões coerentes no template (com exceção de blocos adicionais que sejam puramente configurações locais do desenvolvedor, como instâncias extras dedevEnvironment-testes, etc.).
-
3. Scripts de Sincronização e Compilação
3.1 Sincronização para Ambiente de Teste (synchronize-manager.sh)
-
Leitura da Configuração:
-
Ler a variável
devEnvironment."tailwindcss/cli"do arquivoenvironment.json. -
Implementar suporte robusto a leitura via
jqe também o fallback regex (usandogrep/sed) para caso ojqnão esteja instalado no [REDACTED] (espelhando a lógica de fallback das demais chaves do script).
-
-
Compilação:
-
Se a variável estiver definida e não for nula/vazia:
-
Logar uma mensagem indicando o início da compilação do Tailwind para o Core (ex:
Executando TailwindCSS CLI para o Core...). -
Mudar para a pasta de origem do Core (
$ORIGEM/gestor/). -
Executar o comando via
eval "$TAILWIND_CLI". -
Tratar possíveis falhas de compilação: caso o comando falhe (retorno diferente de 0), interromper o script imediatamente, exibir mensagem de erro e abortar a sincronização retornando
exit 1.
-
3.2 Sincronização do Core para Projetos (sync-core-to-project.sh)
-
Leitura da Configuração:
-
Ler a variável
devEnvironment."tailwindcss/cli"do arquivoenvironment.jsonusandojq.
-
-
Compilação:
-
Se a variável estiver configurada e não for nula/vazia:
-
Logar a execução do Tailwind CSS antes da sincronização.
-
Mudar para a pasta de origem do Core (
$CORE_SOURCE/gestor/). -
Executar o comando via
eval "$TAILWIND_CLI". -
Tratar falhas: se o retorno do comando for diferente de 0, exibir erro e interromper a execução do script com
exit 1, impedindo a cópia de assets desatualizados ou quebrados para a pasta de testes do projeto.
-
4. Pipeline de Release no GitHub Actions (release-gestor.yml)
-
Setup do Node.js:
-
Adicionar uma nova etapa no job
releaselogo após a instalação das dependências do Composer para configurar o ambiente Node.js: -
name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20'
-
-
Passo de Compilação:
-
Adicionar a etapa de compilação oficial do Tailwind CSS (que lerá o
input.csse este por sua vez lerá otailwind.config.jsna raiz do repositório no runner): -
name: Compile Tailwind CSS run: | cd gestor npx @tailwindcss/cli -i ./assets/tailwindcss/input.css -o ./assets/tailwindcss/output.css --minify
-
-
Commit de Assets Compilados:
-
Modificar a etapa
Commit Resources Updatespara incluir o arquivo compilado gerado, inserindo a linha:git add gestor/assets/tailwindcss/*.cssIsso garante que o commit gerado na release registre o
output.cssatualizado antes de gerar o pacote ZIP final.
-