> ## 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.

# Emitters

> Emitters em prévia — papéis, notas de maturidade e como os objetivos são testados

# Emitters

Os emitters oficiais em prévia ficam no monorepo (`transpilers/`). Todos compartilham um AST validado via `aip parse` / `aip validate`.

A maturidade é rastreada em [`EMITTER_OBJECTIVES.md`](https://github.com/eudameron/aiparlance/blob/main/EMITTER_OBJECTIVES.md) (**55** IDs). Cada pacote tem ficha de maturidade por papel: ✅ Passou · ⚠️ Parcial · ❌ Falhou · ➖ N/A (fora do papel).

**Nota** = ✅ ÷ (55 − ➖).

Cada página de emitter lista os objetivos **✅ Passou**, **⚠️ Parcial** e **❌ Ainda falhando** para leitura rápida (e como re-testar).

***

## Placar

| Emitter    | Papel      | Nota            | Docs                                  |
| ---------- | ---------- | --------------- | ------------------------------------- |
| PostgreSQL | `schema`   | **15/23** (65%) | [sql](/pt/emitters/sql)               |
| MySQL      | `schema`   | **14/23** (61%) | [mysql](/pt/emitters/mysql)           |
| OpenAPI    | `contract` | **16/33** (48%) | [openapi](/pt/emitters/openapi)       |
| Testes     | `tests`    | **7/18** (39%)  | [tests](/pt/emitters/tests)           |
| Docs       | `docs`     | **13/38** (34%) | [docs](/pt/emitters/docs)             |
| TypeScript | `app`      | **12/55** (22%) | [typescript](/pt/emitters/typescript) |
| Go         | `app`      | **12/55** (22%) | [go](/pt/emitters/go)                 |
| Python     | `app`      | **12/55** (22%) | [python](/pt/emitters/python)         |
| PHP        | `app`      | **11/55** (20%) | [php](/pt/emitters/php)               |
| Workers    | `workers`  | **4/20** (20%)  | [workers](/pt/emitters/workers)       |

Avaliado em: 2026-08-06 (checklist v2).

***

## Papéis

| Papel      | Significado                         |
| ---------- | ----------------------------------- |
| `schema`   | DDL / schema persistente            |
| `contract` | Contrato HTTP da API                |
| `app`      | Tipos de aplicação → API executável |
| `workers`  | Jobs / filas / workflows            |
| `docs`     | Referência legível por humanos      |
| `tests`    | Fixtures / scaffolds de teste       |

Emitters especializados não precisam passar em runtime HTTP — esses itens são ➖ N/A.

***

## Como os objetivos são testados

1. **Testes automatizados** — Vitest em `transpilers/<nome>/` (+ `scripts/examples.test.ts` no repo).
2. **Checklist manual** — Conferir o emit contra cada ID aplicável no [`EMITTER_OBJECTIVES.md`](https://github.com/eudameron/aiparlance/blob/main/EMITTER_OBJECTIVES.md) do pacote.
3. **Caminho feliz (Phase D)** — Critérios HP1–HP10 com TS + OpenAPI + SQL em `examples/blog-crud.aip`.

```bash theme={null}
npm test
node packages/cli/dist/cli.js emit <target> examples/minimal.aip
node packages/cli/dist/cli.js emit <target> examples/blog-crud.aip
```

Checklist canônico: [EMITTER\_OBJECTIVES.md](https://github.com/eudameron/aiparlance/blob/main/EMITTER_OBJECTIVES.md) · Roadmap: [Phase D](https://github.com/eudameron/aiparlance/blob/main/ROADMAP.md).
