Conn2Flow
Navegação das docs

SDD

Human Request: Integração do Tailwind CSS CLI no Core do Sistema e Pipeline de Release (req-020)

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…

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.js na 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 de devEnvironment-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 arquivo environment.json.

    • Implementar suporte robusto a leitura via jq e também o fallback regex (usando grep / sed) para caso o jq nã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 arquivo environment.json usando jq.

  • 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 release logo 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.css e este por sua vez lerá o tailwind.config.js na 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 Updates para incluir o arquivo compilado gerado, inserindo a linha:

      git add gestor/assets/tailwindcss/*.css

      Isso garante que o commit gerado na release registre o output.css atualizado antes de gerar o pacote ZIP final.

O Futuro é Híbrido: Humano + IA.

O Conn2Flow é a ferramenta. Se você precisa do Arquiteto para desenhar a estratégia da sua empresa usando essa tecnologia...

Contrate Consultoria Especializada