# Criar um projeto

Modo interativo, scaffold reproduzível, shell Astro e TypeScript gerado.

Veja versões, mudanças e requisitos em [Framework 4.0 e CLI 1.2](/pt/docs/guides/releases/).


<span id="creación-reproducible"></span>

<span class="section-anchor" id="section-1"></span>

## Criação reproduzível

```bash
wu create conocimiento --template react --shell astro
```

O modo rápido é ativado quando há um nome e um template. Grava `conocimiento/`, um shell Astro, uma microapp React chamada `conocimiento`, configuração e manifestos. **Este modo não instala dependências.** Ao terminar, sugere entrar na pasta e executar `wu install` e `wu dev`.

```text
conocimiento/
  .gitignore
  package.json
  wu.config.json
  shell/
    package.json
    astro.config.mjs
    src/pages/index.astro
    src/styles/wu-shell.css
  mf-conocimiento/
    package.json
    index.html
    vite.config.js
    src/main.tsx
    src/App.tsx
```

A estrutura mostra os principais arquivos dessa combinação. Outros frameworks escolhem extensões, componentes e configurações diferentes. O gerador não grava um `wu.json` de origem: o servidor de desenvolvimento pode sintetizá-lo e o build grava o manifesto de produção. Crie um explicitamente quando a app precisar declarar contratos ou permissões.

Um projeto novo inclui `.gitignore` para dependências, builds, caches, logs, chaves PEM e `.env`, mantendo `.env.example`. `wu upgrade` pode adicionar essas regras a um projeto antigo sem substituir as existentes.

<span id="opciones-reconocidas"></span>

<span class="section-anchor" id="section-2"></span>

## Opções reconhecidas

| Argumento | Alias | Efeito |
| --- | --- | --- |
| Nome posicional | — | Diretório do projeto e nome da primeira app no modo rápido |
| `--template <framework>` | `-t` | Framework da microapp gerada |
| `--shell <framework>` | `-s` | Framework do shell no modo rápido |

Se você omitir `--shell`, o shell usa a seleção de `--template`; a forma concreta pode ser um shell do framework ou um agnóstico. `--shell` sem `--template` não configura o assistente: o fluxo interativo pede o shell novamente.

Não existe `--no-install` para `create`, pois o modo rápido já deixa a instalação pendente. Também não há flags públicas `--typescript`, `--yes`, `--package-manager` ou `--apps`. Use apenas o contrato da tabela para automatizar esta versão.

<span id="asistente-interactivo"></span>

<span class="section-anchor" id="section-3"></span>

## Assistente interativo

```bash
wu create
```

O assistente usa o modo raw do terminal. Solicita nome, shell e microapps uma por uma; oferece TypeScript quando o template aceita. As portas das apps começam em 5001 e são incrementadas. O fluxo interativo aceita até 16 apps; para uma topologia maior, usa-se uma configuração explícita.

O assistente pede confirmação para geração e instalação e executa `wu install`. Uma instalação falha retorna `1`; sem terminal também retorna `1` e mostra o modo rápido. Ctrl+C cancela com `130`. O modo rápido continua sem instalar dependências.

<span id="nombres-y-validaciones"></span>

<span class="section-anchor" id="section-4"></span>

## Nomes e validações

A criação rejeita um diretório existente com saída 1. Um template desconhecido também causa falha. Astro e Next estão no catálogo do shell, mas são rejeitados como `--template` de uma microapp.

Nomes de apps são normalizados e validados com `^[a-z][a-z0-9-]{0,31}$`, excluindo nomes reservados do Windows. O projeto aceita até 64 caracteres, sem caminhos nem espaços; a primeira app do modo rápido também deve respeitar o limite de 32. Uma falha de geração não deixa diretório parcial.

<span id="astro-dentro-del-proyecto-wu"></span>

<span class="section-anchor" id="section-5"></span>

## Astro dentro do projeto WU

Astro compila o shell com seu próprio bundler. O WU serve essa saída e monta as microapps a partir de suas entradas WU. O scaffold não transforma React ou Vue em ilhas Astro: a composição entre aplicações pertence ao runtime WU.

O shell gerado importa sua folha CSS, inicializa o framework e consome o catálogo de apps inserido pela CLI. A configuração declara `npx astro dev` e `npx astro build`. No modo de desenvolvimento nativo, o WU usa a saída do build de Astro e a reconstrói quando suas fontes mudam.

<span id="referencia-de-implementación"></span>

<span class="section-anchor" id="section-6"></span>

## Referência de implementação

- `wu-cli/src/commands/create.zig`
- `wu-cli/src/config/names.zig`
- `wu-cli/src/config/catalog.zig`
- `wu-cli/src/commands/templates/astro-shell.index.astro`
- `wu-cli/tests/create-exit-code.test.cjs`
- `wu-cli/tests/wizard-keys.test.cjs`
- `wu-cli/tests/gitignore.test.cjs`