Saltar para o conteúdo principal

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.

Agentes e prompts

Guia para LLMs e agentes que escrevem AI Parlance. Spec: Especificação. Sintaxe: Sintaxe.

Como a IA deve escrever .aip

  1. Estrutura previsível: appentitycrudpolicyworkflow
  2. Nomes claros; um idioma consistente por arquivo
  3. Semântica explícita (required, belongs_to, predicados)
  4. Evitar lógica imperativa longa em workflow
  5. Não repetir auth no bloco api se já estiver definido em app

Prompt mínimo → saída

Prompt: Crie um CRM com usuários, leads e tarefas. Saída esperada:
app CRM @0.1 {
  database postgres
  auth jwt
}

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

entity Lead {
  name: string required
  phone: phone required
}

entity Task {
  title: string required
  lead: belongs_to Lead optional
}

crud User
crud Lead
crud Task
Policies e workflows só se o prompt pedir permissões ou comportamento.

Estratégia de prompting

Descrever: entidades, relações, regras de negócio, quem pode fazer o quê. Evitar: “gere em Go/TypeScript”, detalhes de framework, boilerplate de rotas.
Domínio: [descrição]
Entidades: [campos]
Regras: [validação, duplicidade, atribuição]
Acesso: [papéis / dono do recurso]
Eventos: [o que dispara automação]

ai_context

Contexto semântico para agentes e validadores — não é emitido como código alvo.
ai_context Lead {
  description "
    Leads do site institucional.
    Não permitir duplicidade por telefone normalizado.
    Atribuir ao primeiro seller disponível.
  "
}

Gramática controlada

Poucas formas alternativas para a mesma estrutura — ver gramática. Prefira validação inline em entity em vez de duplicar blocos validation.

Fluxo agente → software

Prompt → LLM → .aip → Validador → AST → Transpiladores → artefatos
Em falha de validação, corrigir .aip — não o Go/TS gerado.

Checklist antes de entregar

  • um bloco app com database (e auth se usar authenticated / role)
  • toda entity referenciada existe
  • policies owner_* apontam para FK real
  • workflow tem when
  • emit usa event declarado
  • ordem canônica de modificadores
  • @0.1 em app ao usar blocos beta

Referência completa

examples/crm-reference.aip — adaptar, não reescrever do zero por capítulo. Mínimo Core: examples/minimal.aip.