> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aiparlance.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Comece aqui

> Instale as ferramentas de referência, valide specs .aip e emita SQL, OpenAPI, TypeScript, Go e a matriz completa em prévia

# Comece aqui

Use as **ferramentas de referência** do monorepo hoje. Os pacotes ainda não estão no npm público — clone o repositório e rode a CLI localmente.

Requisitos: **Node.js 20+**, Git.

***

## 1. Clonar e instalar

```bash theme={null}
git clone https://github.com/eudameron/aiparlance.git
cd aiparlance
npm ci
npm run build
```

Isso compila `@aiparlance/parser`, `validator`, `cli` e os emitters em prévia (`sql`, `openapi`, `typescript`, `go`, `mysql`, `workers`, `python`, `php`, `docs`, `tests`).

***

## 2. Rodar a CLI

O binário fica em `packages/cli/dist/cli.js` após o build:

```bash theme={null}
node packages/cli/dist/cli.js --help
```

| Comando                          | O que faz                                                        |
| -------------------------------- | ---------------------------------------------------------------- |
| `aip parse <file.aip>`           | Imprime o AST em JSON                                            |
| `aip validate <file.aip>`        | Checagens semânticas (MUST) — Core + Infra + Security + Behavior |
| `aip emit sql <file.aip>`        | DDL PostgreSQL (+ índices / seeds quando houver)                 |
| `aip emit openapi <file.aip>`    | OpenAPI 3.0.3 JSON                                               |
| `aip emit typescript <file.aip>` | Interfaces TypeScript + type guards                              |
| `aip emit go <file.aip>`         | Structs Go + handlers finos + middleware de auth                 |
| `aip emit mysql <file.aip>`      | DDL MySQL (`database mysql`)                                     |
| `aip emit workers <file.aip>`    | Stubs de jobs / filas                                            |
| `aip emit python <file.aip>`     | Dataclasses Python                                               |
| `aip emit php <file.aip>`        | Classes PHP                                                      |
| `aip emit docs <file.aip>`       | Referência API em Markdown                                       |
| `aip emit tests <file.aip>`      | Fixtures de teste CRUD                                           |

### Experimente o exemplo mínimo

```bash theme={null}
node packages/cli/dist/cli.js validate examples/minimal.aip
node packages/cli/dist/cli.js emit sql examples/minimal.aip
node packages/cli/dist/cli.js emit openapi examples/minimal.aip
node packages/cli/dist/cli.js emit typescript examples/minimal.aip
node packages/cli/dist/cli.js emit go examples/minimal.aip
```

Grave a saída em arquivo:

```bash theme={null}
node packages/cli/dist/cli.js emit sql examples/minimal.aip > /tmp/minimal.sql
node packages/cli/dist/cli.js emit openapi examples/minimal.aip > /tmp/minimal.openapi.json
node packages/cli/dist/cli.js emit typescript examples/minimal.aip > /tmp/minimal.ts
node packages/cli/dist/cli.js emit go examples/minimal.aip > /tmp/minimal.go
```

Passo a passo CRUD completo (entidades, policies, API, seeds, emit): [Passo a passo CRUD](/pt/crud-walkthrough).

***

## 3. Escreva seu próprio `.aip`

Toda spec v0.1 precisa de um bloco `app` primeiro, depois `entity` / `crud` / `validation` (Core). Veja [Sintaxe](/pt/syntax) e [examples/](https://github.com/eudameron/aiparlance/tree/main/examples).

```aip theme={null}
app Demo @0.1 {
  database postgres
}

entity User {
  name: string required
  email: email required unique
}

crud User
```

Salve como `my-app.aip` e então:

```bash theme={null}
node packages/cli/dist/cli.js validate my-app.aip
node packages/cli/dist/cli.js emit sql my-app.aip
```

<Note>
  Exemplos mais ricos (`blog-crud.aip`, `crm-reference.aip`, `ops-reference.aip`, `inventory-crud.aip`) incluem Infra / Security / Behavior e **fazem parse + validate** com as ferramentas de referência v0.1 completa. Use `mysql-minimal.aip` para `aip emit mysql`.
</Note>

***

## 4. Rodar a suíte de testes

Na raiz do repositório:

```bash theme={null}
npm test
```

Isso faz typecheck/build dos workspaces e roda o Vitest (parser, validator, emitters, CLI e [CI de examples](https://github.com/eudameron/aiparlance/blob/main/scripts/examples.test.ts)).

Só examples:

```bash theme={null}
npm run check:examples
```

Typecheck sem testes:

```bash theme={null}
npm run typecheck
```

***

## 5. O que já está disponível vs o que é prévia

| Status                   | Alvos                                                                                          |
| ------------------------ | ---------------------------------------------------------------------------------------------- |
| **Prévia** (no monorepo) | PostgreSQL, MySQL, OpenAPI 3, TypeScript, Go, Python, PHP, Workers, Docs, Testes               |
| **Foco Phase D**         | Aprofundar TypeScript, OpenAPI, PostgreSQL → caminho feliz executável; depois playground + npm |
| **Só ilustrativo**       | [Playground](https://aiparlance.org) do site — não são os pacotes oficiais                     |

Leia mais: [Primeiros emitters](/pt/first-transpiler) · [Passo a passo CRUD](/pt/crud-walkthrough) · [Exemplos](/pt/examples) · [Especificação § Matriz de transpiladores](/pt/specification#transpiler-matrix) · [ROADMAP](https://github.com/eudameron/aiparlance/blob/main/ROADMAP.md) · [CONTRIBUTING](https://github.com/eudameron/aiparlance/blob/main/CONTRIBUTING.md)

***

## Opcional: docs e site localmente

```bash theme={null}
# Docs (Mintlify)
cd docs && npx mintlify dev

# Site de marketing
cd site && npm ci && npm run build:prod
```
