# __NAME__

App Oon code-first gerado com `create-central-oon`.

## Comece aqui

A pasta `.ooncore/` contém o contrato público versionado para criar e customizar este App. Um Agent deve usar somente esta árvore do projeto: não é necessário consultar fonte privada do OonCore, `node_modules` ou outros Apps.

1. Leia `.ooncore/AGENTS.md`.
2. Rode `npm run ooncore:docs:check`.
3. Siga `.ooncore/docs/OON_APP_AGENT_GUIDE.md`.
4. Consulte `.ooncore/docs/CAPABILITIES.md` e o guia específico da tarefa.

Se faltar um contrato, registre a lacuna documental em vez de inventar API ou infraestrutura.

## Fronteira arquitetural

- `central.app.json` declara identidade, `appKind`, tenant, acesso, módulos, capabilities funcionais e compatibilidade;
- `oon.deploy.json` declara runtime e dependências de infraestrutura da publicação;
- `backend/src/models` e demais extensões code-first contêm o domínio;
- `backend/central.domain.json` é opcional quando o projeto adota o contrato declarativo documentado;
- `frontend/src/app` compõe rotas, navegação, layouts e temas;
- `frontend/src/{pages,components,features}` contém a experiência local;
- `backend/central.config.js` fica reservado a extensões documentadas de runtime;
- `frontend/src/main.tsx` chama `startOonApp`.

Autenticação, guards, shell, RBAC, metadata, CRUD e infraestrutura pertencem ao OonCore.

## Documentação e conformidade

```bash
npm run ooncore:docs        # sincroniza .ooncore/
npm run ooncore:docs:check  # valida versão/hash do cache local
npm run ooncore:conformance # valida a fronteira da Central
npm run check               # executa os gates locais
npm test
```

`.ooncore/` é um cache regenerável da documentação publicada no pacote. Não edite `context.generated.md` manualmente; versione a pasta junto com o App para que humanos e Agents recebam o mesmo contrato.

## Rodando

```bash
npm install
npm run check

cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
npm run dev
```

O comando inicia backend e frontend exclusivamente em loopback, abre uma sessão local aleatória e não consulta nem cria recursos na plataforma. Capabilities de plataforma falham fechado quando não resolvidas. Não implemente autenticação, ativação ou infraestrutura paralela.

## Evoluindo a Central

1. Modele o domínio por exports públicos em `backend/src` ou adote o manifesto declarativo conforme `BACKEND_DOMAIN_MANIFEST.md`.
2. Crie rotas, páginas, componentes, layouts e temas nos pontos documentados.
3. Declare capabilities no manifesto indicado pelo guia dedicado.
4. Use validações, triggers, hooks, mappings e regras somente para comportamento específico do negócio.
5. Execute `npm run check` e `npm test` antes de abrir o PR.

O OonCore fornece a fundação; o App implementa sua experiência e seu domínio.
