@oondemand/create-central-oon
v0.7.9
Published
Gerador de Centrais Oon com contratos declarativos, runtime local e documentação versionada para IA/Agents.
Readme
@oondemand/create-central-oon
Gerador estrutural de Apps Oon. Ele cria backend e frontend code-first prontos para consumir @oondemand/oon-core-back e @oondemand/oon-core-front e inclui a documentação pública versionada necessária para Agents.
Comece com uma jornada
Resolva uma release publicada uma vez e gere a base oficial (Bash):
OONCORE_VERSION="$(npm view @oondemand/create-central-oon version)"
npx --yes --package "@oondemand/create-central-oon@$OONCORE_VERSION" create-central-oon meu-app --no-install
cd meu-app
npm install
npm install --prefix backend
npm install --prefix frontendO guia gerado em .ooncore/docs/OON_APP_AGENT_GUIDE.md contém o comando com a versão exata do pacote instalado: gerar → executar → implementar primeira jornada → validar → publicar pelo fluxo existente. Consulte .ooncore/docs/TASK_INDEX.md somente para a tarefa necessária.
O gerador possui uma única base _base; não há catálogo de templates funcionais. Após gerar uma base limpa, npx --no-install create-central-oon example instala a jornada opt-in documentada em .ooncore/docs/EXECUTABLE_EXAMPLE.md. O binário também responde por scaffold-central-oon. Os tokens __OONCORE_*__ nas fontes documentais são resolvidos pelo sync oficial a partir do package.json, inclusive nos hashes do cache.
As seções abaixo são referências sob demanda, não pré-requisitos para começar.
Contrato central.app.json
{
"$schema": "./node_modules/@oondemand/create-central-oon/schemas/central.app.schema.json",
"schemaVersion": 2,
"id": "central-exemplo",
"name": "Central Exemplo",
"slug": "central-exemplo",
"appKind": "member-central",
"tenancyModel": "single_tenant",
"availability": "licensed",
"accessMode": "explicit_users",
"authorizationMode": "rbac",
"deploymentMode": "dedicated",
"modules": {
"collections": false,
"documents": false,
"pipelines": false,
"assistants": false,
"currencies": false
},
"capabilities": [],
"compatibility": {
"core": { "minVersion": "0.6.0" }
}
}O manifesto contém identidade, política de acesso, capabilities funcionais e compatibilidade. Dependências de infraestrutura de publicação ficam em oon.deploy.json. Rotas, menus, páginas, componentes, layouts e temas ficam no código do frontend.
Estrutura gerada
<app>/
├── .ooncore/
│ ├── AGENTS.md
│ ├── CODEX.md
│ ├── manifest.json
│ ├── context.generated.md
│ └── docs/
├── central.app.json
├── oon.deploy.json
├── package.json
├── backend/
│ ├── central.config.js
│ ├── central.manifest.json
│ └── src/{models,validations,triggers,hooks,mappings,rules,routes,services}/
└── frontend/
└── src/
├── main.tsx
├── app/{app,routes,navigation,theme}.tsx
├── pages/
├── components/
├── features/
└── layouts/Um domínio declarativo pode adicionar backend/central.domain.json conforme seu contrato; ele não faz parte da base neutra. O bootstrap chama startOonApp(app) e a composição usa defineOonApp, defineOonRoutes e defineOonNavigation.
Contrato para Agents
A documentação em .ooncore/ é autocontida. Um Agent deve conseguir criar e customizar o App sem ler o monorepo do OonCore, node_modules, outros Apps ou documentação privada.
Comece pela entrada curta .ooncore/AGENTS.md e pelo índice por intenção. Se faltar informação pública, registre a lacuna, use extensão pública adequada no App e continue partes independentes. Não invente APIs nem use internals como contrato. O contexto consolidado é opcional.
Conformidade
npm run check
npm run build --prefix frontendA verificação exige schema v2 e bootstrap code-first, protege rotas reservadas, guards de segurança e imports internos, e rejeita código remoto, segredos no bundle e dependências fora do frontend.
Execute também os testes relevantes declarados pelo App. O scaffold não cria npm test na raiz. Plataforma homologada: consuma os fluxos existentes; não reabra sua implementação ou homologação global a cada jornada.
