@semacode/cli 2.0.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +39 -39
- package/README.md +141 -121
- package/dist/agentEntryPoints.js +499 -499
- package/dist/comandos.js +2 -0
- package/dist/doctorCommand.js +28 -0
- package/dist/execucoesExternas.js +19 -5
- package/dist/geracaoCore.js +97 -1
- package/dist/iaPrompts.d.ts +1 -1
- package/dist/iaPrompts.js +307 -307
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.part01.d.ts +1 -1
- package/dist/index.part01.js +14 -4
- package/dist/index.part02.js +21 -21
- package/dist/index.part04.js +96 -96
- package/dist/index.part06.js +1 -1
- package/dist/index.part07.js +35 -24
- package/dist/init/templates.part01.js +393 -393
- package/dist/init/templates.part02.js +189 -189
- package/dist/initTemplatesBackend.js +73 -73
- package/dist/initTemplatesBase.js +81 -81
- package/dist/initTemplatesFlutter.js +137 -137
- package/dist/initTemplatesRuntime.js +350 -350
- package/dist/initTemplatesWeb.js +309 -309
- package/dist/nativeToolchains.d.ts +15 -0
- package/dist/nativeToolchains.js +132 -0
- package/dist/pipelineConteudo/adapters.d.ts +84 -0
- package/dist/pipelineConteudo/adapters.js +449 -0
- package/dist/pipelineConteudo/canonical.d.ts +18 -0
- package/dist/pipelineConteudo/canonical.js +107 -0
- package/dist/pipelineConteudo/command.d.ts +3 -0
- package/dist/pipelineConteudo/command.js +572 -0
- package/dist/pipelineConteudo/index.d.ts +9 -0
- package/dist/pipelineConteudo/index.js +12 -0
- package/dist/pipelineConteudo/ledger.d.ts +68 -0
- package/dist/pipelineConteudo/ledger.js +732 -0
- package/dist/pipelineConteudo/planner.d.ts +12 -0
- package/dist/pipelineConteudo/planner.js +366 -0
- package/dist/pipelineConteudo/projection.d.ts +16 -0
- package/dist/pipelineConteudo/projection.js +57 -0
- package/dist/pipelineConteudo/state.d.ts +23 -0
- package/dist/pipelineConteudo/state.js +615 -0
- package/dist/pipelineConteudo/trust.d.ts +17 -0
- package/dist/pipelineConteudo/trust.js +750 -0
- package/dist/pipelineConteudo/types.d.ts +331 -0
- package/dist/pipelineConteudo/types.js +4 -0
- package/dist/projetoConfig.js +7 -1
- package/dist/projetoResolucao.js +21 -6
- package/dist/sync/index.js +35 -35
- package/docs/README.md +28 -25
- package/docs/ai-onboarding.md +62 -62
- package/docs/ai-workflow.md +1 -1
- package/docs/auth.md +26 -26
- package/docs/cli.md +79 -72
- package/docs/commands.md +1 -1
- package/docs/database.md +15 -15
- package/docs/deploy.md +41 -36
- package/docs/documentation.md +39 -39
- package/docs/env.md +16 -16
- package/docs/frontend.md +41 -41
- package/docs/getting-started.md +57 -57
- package/docs/i18n.md +15 -15
- package/docs/pipeline-conteudo.md +246 -0
- package/docs/profiles.md +45 -43
- package/docs/repositories.md +43 -43
- package/docs/rollback.md +31 -31
- package/docs/security.md +32 -32
- package/docs/support.md +8 -8
- package/docs/syntax.md +1 -1
- package/docs/testing.md +35 -28
- package/docs/vocabulary.md +29 -29
- package/exemplos/agendamento.sema +1 -1
- package/exemplos/assinatura.sema +1 -1
- package/exemplos/auditoria.sema +1 -1
- package/exemplos/autenticacao.sema +1 -1
- package/exemplos/author_obra_comum.sema +1 -1
- package/exemplos/author_tema_sensivel.sema +1 -1
- package/exemplos/automacao.sema +1 -1
- package/exemplos/cadastro_usuario.sema +1 -1
- package/exemplos/calculadora.sema +1 -1
- package/exemplos/crud_simples.sema +1 -1
- package/exemplos/estoque.sema +1 -1
- package/exemplos/exportacao.sema +1 -1
- package/exemplos/fila.sema +1 -1
- package/exemplos/integracao_externa.sema +1 -1
- package/exemplos/multi_tenant.sema +1 -1
- package/exemplos/notificacao.sema +1 -1
- package/exemplos/operacao_estrategia.sema +132 -132
- package/exemplos/operacao_estrategia_discovery.sema +220 -220
- package/exemplos/operacao_estrategia_fluxo.sema +114 -114
- package/exemplos/operacao_estrategia_gates.sema +106 -106
- package/exemplos/operacao_estrategia_quarentena.sema +133 -133
- package/exemplos/operacao_estrategia_rollout.sema +124 -124
- package/exemplos/pagamento.sema +1 -1
- package/exemplos/pagamento_dominio.sema +1 -1
- package/exemplos/pedido.sema +1 -1
- package/exemplos/permissao.sema +1 -1
- package/exemplos/persistencia_vendor_first.sema +1 -1
- package/exemplos/pipeline-conteudo/README.md +44 -0
- package/exemplos/pipeline-conteudo/alvos.json +23 -0
- package/exemplos/pipeline-conteudo/definicao.json +136 -0
- package/exemplos/profile_conversas.sema +165 -165
- package/exemplos/profile_game.sema +1 -1
- package/exemplos/profile_legal.sema +1 -1
- package/exemplos/profile_ops.sema +1 -1
- package/exemplos/profile_research.sema +1 -1
- package/exemplos/profile_software.sema +1 -1
- package/exemplos/profile_workflow_n8n.sema +1 -1
- package/exemplos/relatorio.sema +1 -1
- package/exemplos/replica_analitica_erp.sema +1 -1
- package/exemplos/testes_embutidos.sema +1 -1
- package/exemplos/tratamento_erro.sema +1 -1
- package/exemplos/upload_arquivo.sema +1 -1
- package/exemplos/webhook.sema +1 -1
- package/node_modules/@sema/gerador-cpp/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-cpp/dist/index.js +859 -0
- package/node_modules/@sema/gerador-cpp/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-cpp/package.json +7 -0
- package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
- package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
- package/node_modules/@sema/gerador-dotnet/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-dotnet/dist/index.js +828 -0
- package/node_modules/@sema/gerador-dotnet/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-dotnet/package.json +7 -0
- package/node_modules/@sema/gerador-html/dist/index.js +17 -17
- package/node_modules/@sema/gerador-lua/dist/index.js +53 -8
- package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-php/dist/index.js +121 -113
- package/node_modules/@sema/gerador-php/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
- package/node_modules/@sema/padroes/dist/index.d.ts +1 -1
- package/package.json +12 -1
package/dist/agentEntryPoints.js
CHANGED
|
@@ -140,162 +140,162 @@ export function renderizarSemaBoot(agentContextPack) {
|
|
|
140
140
|
const politicaTimeout = agentContextPack.politicaTimeoutResumo;
|
|
141
141
|
const politicaDesign = agentContextPack.politicaDesignVisual;
|
|
142
142
|
const politicaPlataforma = agentContextPack.politicaPlataforma;
|
|
143
|
-
return `# SEMA_BOOT
|
|
144
|
-
|
|
145
|
-
Você está em um projeto governado por Sema. O contrato semântico vem antes de qualquer ação.
|
|
146
|
-
|
|
147
|
-
## Primeira ação
|
|
148
|
-
|
|
149
|
-
1. Confirme \`AGENTS.md\` na raiz e rode \`sema --version\`; se o comando não existir, pare e peça a instalação da CLI.
|
|
150
|
-
2. Use a CLI local diretamente para ler o workspace: \`sema resumo\`, \`sema docs-impacto\`, \`sema inspecionar\`, \`sema drift\` e \`sema impacto\`.
|
|
151
|
-
3. Não use fonte externa de workspace para substituir a CLI local quando ela estiver operacional.
|
|
152
|
-
4. Este boot é para workspace local em disco; se não houver workspace local, pare bloqueado em vez de inventar caminho.
|
|
153
|
-
5. Antes de criar módulo, rota, task ou contrato, inspecione o contrato \`.sema\` aplicável.
|
|
154
|
-
6. Antes de editar código existente, rode drift e impacto pela CLI local.
|
|
155
|
-
7. Antes de criar ou corrigir \`.sema\`, use os exemplos oficiais na CLI local.
|
|
156
|
-
8. Se qualquer etapa falhar, pare e diga que está bloqueado.
|
|
157
|
-
|
|
158
|
-
Não substitua esse fluxo por leitura manual de \`AGENTS.md\`, \`README.md\`, busca local, inferência pelo nome do projeto, bom senso ou ferramenta não citada aqui.
|
|
159
|
-
|
|
160
|
-
## Políticas da plataforma
|
|
161
|
-
|
|
162
|
-
${politicaPlataforma.regra}
|
|
163
|
-
|
|
164
|
-
- Escopo: ${politicaPlataforma.escopoGovernanca}
|
|
165
|
-
- Se houver alerta externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
166
|
-
- IA fraca: ${politicaPlataforma.porCapacidade.fraca}
|
|
167
|
-
- IA média: ${politicaPlataforma.porCapacidade.media}
|
|
168
|
-
- IA forte: ${politicaPlataforma.porCapacidade.forte}
|
|
169
|
-
|
|
170
|
-
## Capacidade do agente
|
|
171
|
-
|
|
172
|
-
- Fraca: leia \`${ARQUIVO_SEMA_SMALL_MODEL}\`, \`SEMA_BRIEF.micro.txt\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\` e só suba contexto se necessário.
|
|
173
|
-
- Média: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\` e a doc indicada pelo Sema.
|
|
174
|
-
- Forte: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, \`AGENTS.md\` e rode os gates completos.
|
|
175
|
-
|
|
176
|
-
## Código governado
|
|
177
|
-
|
|
178
|
-
${politicaCodigo.regra}
|
|
179
|
-
|
|
180
|
-
- Marcador: \`${politicaCodigo.marcador}\`.
|
|
181
|
-
- Orçamento de código: arquivo governado acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO} linhas gera diagnóstico; acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} bloqueia conclusão, geração e snapshot. Documentação Markdown não entra nesse limite de código.
|
|
182
|
-
- Orçamento de contrato .sema: até ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} linhas é saudável; ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA + 1}-${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} é diagnóstico; acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} bloqueia criação, edição, drift, finalização, geração e snapshot.
|
|
183
|
-
- Divida .sema por domínio/capacidade, nunca parte_1/parte_2. Um mesmo arquivo de código pode ter vários contratos governando via vinculos; preserve essa rastreabilidade no Sema Código.
|
|
184
|
-
- Payload inline: acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres em \`arquivos_codigo.conteudo\` ou \`conteudo\` não é timeout; divida por responsabilidade ou use anexo/caminho de servidor autorizado.
|
|
185
|
-
- Validação inline com score alto não substitui cabeçalho no arquivo físico: ela prova o payload enviado, não prepara a próxima IA que vai abrir o arquivo depois.
|
|
186
|
-
- Divisão correta é por responsabilidade real. Exemplo web: \`index.html\` para estrutura, \`styles/*.css\` para estilos, \`js/state.js\`, \`js/calc.js\`, \`js/render/*.js\` para comportamento, e \`data/*.json\` para dados.
|
|
187
|
-
- Proibido fatiar arquivo em \`index_p1.html\`, \`index_p2.html\` ou similares sem fronteira semântica só para passar no limite.
|
|
188
|
-
- IA fraca: ${politicaCodigo.porCapacidade.fraca}
|
|
189
|
-
- IA média: ${politicaCodigo.porCapacidade.media}
|
|
190
|
-
- IA forte: ${politicaCodigo.porCapacidade.forte}
|
|
191
|
-
|
|
192
|
-
## Sinal, evidência e ritual
|
|
193
|
-
|
|
194
|
-
Score composto, \`achados[]\` e \`decisaoAgente\` são sinais para guiar a próxima ação. Abaixo de 80 bloqueia; alvo evolui 0.5 ponto até 100; nada disso basta sozinho.
|
|
195
|
-
|
|
196
|
-
- Fraca: se o score passou, confira se cada achado tem evidência concreta; se não souber provar, pare.
|
|
197
|
-
- Média: conecte regra, arquivo, contrato e evidência antes de concluir aderência.
|
|
198
|
-
- Forte: não transforme regex, palavra-chave ou score 100 em ritual vazio; valide substância, risco e comportamento.
|
|
199
|
-
- Fechamento governado: se \`sema drift --json\` retornar \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou impls quebradas, não diga que passou limpo. Corrija e rode drift de novo.
|
|
200
|
-
- Experiência governada: se a tarefa cria ou altera site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal, prove acabamento moderno, contextual e não genérico. Em UI estreita (ex. 390px), \`document.documentElement.scrollWidth <= document.documentElement.clientWidth\` precisa ser verdadeiro.
|
|
201
|
-
- Caminho fora do workspace local aberto pelo usuário não substitui a pasta local.
|
|
202
|
-
|
|
203
|
-
## Acabamento visual e terminal
|
|
204
|
-
|
|
205
|
-
${politicaDesign.regra}
|
|
206
|
-
|
|
207
|
-
- Aplicar quando: ${politicaDesign.aplicarQuando}
|
|
208
|
-
- IA fraca: ${politicaDesign.porCapacidade.fraca}
|
|
209
|
-
- IA média: ${politicaDesign.porCapacidade.media}
|
|
210
|
-
- IA forte: ${politicaDesign.porCapacidade.forte}
|
|
211
|
-
- Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
|
|
212
|
-
|
|
213
|
-
## Timeout e retry
|
|
214
|
-
|
|
215
|
-
${politicaTimeout.regra}
|
|
216
|
-
|
|
217
|
-
- Timeout inicial recomendado para projeto inteiro: ${politicaTimeout.timeoutInicialSegundos}s.
|
|
218
|
-
- Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
219
|
-
- IA fraca: ${politicaTimeout.porCapacidade.fraca}
|
|
220
|
-
- IA média: ${politicaTimeout.porCapacidade.media}
|
|
221
|
-
- IA forte: ${politicaTimeout.porCapacidade.forte}
|
|
222
|
-
- ${politicaTimeout.ateQuandoTentar}
|
|
223
|
-
|
|
224
|
-
## Idioma humano
|
|
225
|
-
|
|
226
|
-
${politica.regra}
|
|
227
|
-
|
|
228
|
-
- Use o idioma falado pelo usuário.
|
|
229
|
-
- Em PT-BR, escreva com acentos, cedilha e pontuação normal.
|
|
230
|
-
- Use vocabulário Sema canônico para conceitos de produto: pontuação, desvio semântico, trava, pré-checagem, ambiente de execução e perfil.
|
|
231
|
-
- Não traduza comandos, rotas, nomes de arquivos, endpoints, variáveis, pacotes, marcas, símbolos de código nem palavras-chave da DSL.
|
|
232
|
-
|
|
233
|
-
## Falha fechada
|
|
234
|
-
|
|
235
|
-
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
143
|
+
return `# SEMA_BOOT
|
|
144
|
+
|
|
145
|
+
Você está em um projeto governado por Sema. O contrato semântico vem antes de qualquer ação.
|
|
146
|
+
|
|
147
|
+
## Primeira ação
|
|
148
|
+
|
|
149
|
+
1. Confirme \`AGENTS.md\` na raiz e rode \`sema --version\`; se o comando não existir, pare e peça a instalação da CLI.
|
|
150
|
+
2. Use a CLI local diretamente para ler o workspace: \`sema resumo\`, \`sema docs-impacto\`, \`sema inspecionar\`, \`sema drift\` e \`sema impacto\`.
|
|
151
|
+
3. Não use fonte externa de workspace para substituir a CLI local quando ela estiver operacional.
|
|
152
|
+
4. Este boot é para workspace local em disco; se não houver workspace local, pare bloqueado em vez de inventar caminho.
|
|
153
|
+
5. Antes de criar módulo, rota, task ou contrato, inspecione o contrato \`.sema\` aplicável.
|
|
154
|
+
6. Antes de editar código existente, rode drift e impacto pela CLI local.
|
|
155
|
+
7. Antes de criar ou corrigir \`.sema\`, use os exemplos oficiais na CLI local.
|
|
156
|
+
8. Se qualquer etapa falhar, pare e diga que está bloqueado.
|
|
157
|
+
|
|
158
|
+
Não substitua esse fluxo por leitura manual de \`AGENTS.md\`, \`README.md\`, busca local, inferência pelo nome do projeto, bom senso ou ferramenta não citada aqui.
|
|
159
|
+
|
|
160
|
+
## Políticas da plataforma
|
|
161
|
+
|
|
162
|
+
${politicaPlataforma.regra}
|
|
163
|
+
|
|
164
|
+
- Escopo: ${politicaPlataforma.escopoGovernanca}
|
|
165
|
+
- Se houver alerta externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
166
|
+
- IA fraca: ${politicaPlataforma.porCapacidade.fraca}
|
|
167
|
+
- IA média: ${politicaPlataforma.porCapacidade.media}
|
|
168
|
+
- IA forte: ${politicaPlataforma.porCapacidade.forte}
|
|
169
|
+
|
|
170
|
+
## Capacidade do agente
|
|
171
|
+
|
|
172
|
+
- Fraca: leia \`${ARQUIVO_SEMA_SMALL_MODEL}\`, \`SEMA_BRIEF.micro.txt\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\` e só suba contexto se necessário.
|
|
173
|
+
- Média: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\` e a doc indicada pelo Sema.
|
|
174
|
+
- Forte: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, \`AGENTS.md\` e rode os gates completos.
|
|
175
|
+
|
|
176
|
+
## Código governado
|
|
177
|
+
|
|
178
|
+
${politicaCodigo.regra}
|
|
179
|
+
|
|
180
|
+
- Marcador: \`${politicaCodigo.marcador}\`.
|
|
181
|
+
- Orçamento de código: arquivo governado acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO} linhas gera diagnóstico; acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} bloqueia conclusão, geração e snapshot. Documentação Markdown não entra nesse limite de código.
|
|
182
|
+
- Orçamento de contrato .sema: até ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} linhas é saudável; ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA + 1}-${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} é diagnóstico; acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} bloqueia criação, edição, drift, finalização, geração e snapshot.
|
|
183
|
+
- Divida .sema por domínio/capacidade, nunca parte_1/parte_2. Um mesmo arquivo de código pode ter vários contratos governando via vinculos; preserve essa rastreabilidade no Sema Código.
|
|
184
|
+
- Payload inline: acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres em \`arquivos_codigo.conteudo\` ou \`conteudo\` não é timeout; divida por responsabilidade ou use anexo/caminho de servidor autorizado.
|
|
185
|
+
- Validação inline com score alto não substitui cabeçalho no arquivo físico: ela prova o payload enviado, não prepara a próxima IA que vai abrir o arquivo depois.
|
|
186
|
+
- Divisão correta é por responsabilidade real. Exemplo web: \`index.html\` para estrutura, \`styles/*.css\` para estilos, \`js/state.js\`, \`js/calc.js\`, \`js/render/*.js\` para comportamento, e \`data/*.json\` para dados.
|
|
187
|
+
- Proibido fatiar arquivo em \`index_p1.html\`, \`index_p2.html\` ou similares sem fronteira semântica só para passar no limite.
|
|
188
|
+
- IA fraca: ${politicaCodigo.porCapacidade.fraca}
|
|
189
|
+
- IA média: ${politicaCodigo.porCapacidade.media}
|
|
190
|
+
- IA forte: ${politicaCodigo.porCapacidade.forte}
|
|
191
|
+
|
|
192
|
+
## Sinal, evidência e ritual
|
|
193
|
+
|
|
194
|
+
Score composto, \`achados[]\` e \`decisaoAgente\` são sinais para guiar a próxima ação. Abaixo de 80 bloqueia; alvo evolui 0.5 ponto até 100; nada disso basta sozinho.
|
|
195
|
+
|
|
196
|
+
- Fraca: se o score passou, confira se cada achado tem evidência concreta; se não souber provar, pare.
|
|
197
|
+
- Média: conecte regra, arquivo, contrato e evidência antes de concluir aderência.
|
|
198
|
+
- Forte: não transforme regex, palavra-chave ou score 100 em ritual vazio; valide substância, risco e comportamento.
|
|
199
|
+
- Fechamento governado: se \`sema drift --json\` retornar \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou impls quebradas, não diga que passou limpo. Corrija e rode drift de novo.
|
|
200
|
+
- Experiência governada: se a tarefa cria ou altera site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal, prove acabamento moderno, contextual e não genérico. Em UI estreita (ex. 390px), \`document.documentElement.scrollWidth <= document.documentElement.clientWidth\` precisa ser verdadeiro.
|
|
201
|
+
- Caminho fora do workspace local aberto pelo usuário não substitui a pasta local.
|
|
202
|
+
|
|
203
|
+
## Acabamento visual e terminal
|
|
204
|
+
|
|
205
|
+
${politicaDesign.regra}
|
|
206
|
+
|
|
207
|
+
- Aplicar quando: ${politicaDesign.aplicarQuando}
|
|
208
|
+
- IA fraca: ${politicaDesign.porCapacidade.fraca}
|
|
209
|
+
- IA média: ${politicaDesign.porCapacidade.media}
|
|
210
|
+
- IA forte: ${politicaDesign.porCapacidade.forte}
|
|
211
|
+
- Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
|
|
212
|
+
|
|
213
|
+
## Timeout e retry
|
|
214
|
+
|
|
215
|
+
${politicaTimeout.regra}
|
|
216
|
+
|
|
217
|
+
- Timeout inicial recomendado para projeto inteiro: ${politicaTimeout.timeoutInicialSegundos}s.
|
|
218
|
+
- Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
219
|
+
- IA fraca: ${politicaTimeout.porCapacidade.fraca}
|
|
220
|
+
- IA média: ${politicaTimeout.porCapacidade.media}
|
|
221
|
+
- IA forte: ${politicaTimeout.porCapacidade.forte}
|
|
222
|
+
- ${politicaTimeout.ateQuandoTentar}
|
|
223
|
+
|
|
224
|
+
## Idioma humano
|
|
225
|
+
|
|
226
|
+
${politica.regra}
|
|
227
|
+
|
|
228
|
+
- Use o idioma falado pelo usuário.
|
|
229
|
+
- Em PT-BR, escreva com acentos, cedilha e pontuação normal.
|
|
230
|
+
- Use vocabulário Sema canônico para conceitos de produto: pontuação, desvio semântico, trava, pré-checagem, ambiente de execução e perfil.
|
|
231
|
+
- Não traduza comandos, rotas, nomes de arquivos, endpoints, variáveis, pacotes, marcas, símbolos de código nem palavras-chave da DSL.
|
|
232
|
+
|
|
233
|
+
## Falha fechada
|
|
234
|
+
|
|
235
|
+
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
236
236
|
`;
|
|
237
237
|
}
|
|
238
238
|
export function renderizarSemaSmallModel(agentContextPack) {
|
|
239
239
|
const politicaTimeout = agentContextPack.politicaTimeoutResumo;
|
|
240
240
|
const politicaDesign = agentContextPack.politicaDesignVisual;
|
|
241
241
|
const politicaPlataforma = agentContextPack.politicaPlataforma;
|
|
242
|
-
return `# SEMA_SMALL_MODEL
|
|
243
|
-
|
|
244
|
-
Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use ou tendência a ignorar instruções longas.
|
|
245
|
-
|
|
246
|
-
1. Não edite nada antes de chamar Sema.
|
|
247
|
-
2. Em workspace local, rode \`sema --version\`; se falhar, pare e peça a instalação da CLI. Com a CLI disponível, opere diretamente sobre a pasta local e não use espelho externo.
|
|
248
|
-
3. Sema não contorna políticas da plataforma: ele governa contrato, escopo, drift, evidência e qualidade.
|
|
249
|
-
4. Se aparecer alerta de política: pare, explique de forma neutra e não tente burlar filtro.
|
|
250
|
-
5. Se não houver workspace local em disco: pare bloqueado e peça o fluxo apropriado; não invente leitura por caminho.
|
|
251
|
-
6. Se for escrever \`.sema\`: leia \`exemplos/\`; se a pasta estiver ausente, rode \`sema instalar-exemplos --json\` antes.
|
|
252
|
-
7. Se não houver contrato ou vínculo semântico do arquivo: inspecione o arquivo, crie ou edite o contrato aplicável e vincule antes do código.
|
|
253
|
-
8. Se não conseguir chamar Sema: pare e declare bloqueio.
|
|
254
|
-
9. Responda no idioma do usuário. Em PT-BR, use vocabulário Sema: pontuação, desvio semântico, pré-checagem, ambiente de execução e perfil; preserve comandos, endpoints e identificadores.
|
|
255
|
-
10. Se abrir código com \`${agentContextPack.politicaCodigoGovernado.marcador}\`: volte ao contrato, chame Sema e só então edite.
|
|
256
|
-
11. Score 100, achados atendidos ou validação inline são sinais; confira evidência real no contrato e no código.
|
|
257
|
-
12. Validação inline não dispensa cabeçalho \`${agentContextPack.politicaCodigoGovernado.marcador}\` no arquivo físico.
|
|
258
|
-
13. Não crie código governado acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} linhas nem contrato .sema acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}; acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO} em código ou ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} em .sema, planeje divisão por responsabilidade.
|
|
259
|
-
14. Divida por função real: HTML, CSS, estado, cálculo, renderização, dados. Não faça \`index_p1.html\` e \`index_p2.html\` sem sentido.
|
|
260
|
-
15. Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres não é lentidão: divida por responsabilidade; não aumente timeout para tentar passar limite de transporte.
|
|
261
|
-
16. Se aparecer caminho que não pertence ao workspace local aberto pelo usuário, pare e confirme a fonte antes de agir.
|
|
262
|
-
17. Se Sema estourar por timeout local: aumente o timeout e tente de novo. Não trate isso como falha do Sema.
|
|
263
|
-
18. Se \`sema drift --json\` retornar \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou impl quebrada, não conclua. Corrija contrato/código e rode drift de novo.
|
|
264
|
-
19. Se a tarefa tiver site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal: aplique acabamento moderno, contextual, responsivo/ergonômico, com hierarquia clara, estados e evidência. Em UI, valide mobile/desktop e prove \`scrollWidth <= clientWidth\` em viewport estreito como 390px.
|
|
265
|
-
20. Não substitua o contexto Sema por AGENTS.md, README.md, busca local, inferência por nome ou bom senso.
|
|
266
|
-
|
|
267
|
-
Ordem curta:
|
|
268
|
-
|
|
269
|
-
- \`${ARQUIVO_SEMA_BOOT}\`
|
|
270
|
-
- \`SEMA_BRIEF.micro.txt\`
|
|
271
|
-
- \`${ARQUIVO_AGENT_CONTEXT_PACK}\`
|
|
272
|
-
- \`SEMA_INDEX.json\`
|
|
273
|
-
- \`AGENTS.md\`
|
|
274
|
-
|
|
275
|
-
Políticas da plataforma:
|
|
276
|
-
|
|
277
|
-
- ${politicaPlataforma.regra}
|
|
278
|
-
- IA fraca: ${politicaPlataforma.porCapacidade.fraca}
|
|
279
|
-
- Se houver bloqueio externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
280
|
-
|
|
281
|
-
Timeout:
|
|
282
|
-
|
|
283
|
-
- Timeout local do agente não é falha do Sema.
|
|
284
|
-
- Projeto inteiro: comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais.
|
|
285
|
-
- Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
286
|
-
- Se o projeto inteiro for lento, escopar para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
|
|
287
|
-
- ${politicaTimeout.ateQuandoTentar}
|
|
288
|
-
|
|
289
|
-
Acabamento visual e terminal:
|
|
290
|
-
|
|
291
|
-
- ${politicaDesign.regra}
|
|
292
|
-
- IA fraca: ${politicaDesign.porCapacidade.fraca}
|
|
293
|
-
- Evidência mínima: ${politicaDesign.evidencias.fraca.join(", ")}.
|
|
294
|
-
- Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
|
|
295
|
-
|
|
296
|
-
Fail-closed:
|
|
297
|
-
|
|
298
|
-
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
242
|
+
return `# SEMA_SMALL_MODEL
|
|
243
|
+
|
|
244
|
+
Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use ou tendência a ignorar instruções longas.
|
|
245
|
+
|
|
246
|
+
1. Não edite nada antes de chamar Sema.
|
|
247
|
+
2. Em workspace local, rode \`sema --version\`; se falhar, pare e peça a instalação da CLI. Com a CLI disponível, opere diretamente sobre a pasta local e não use espelho externo.
|
|
248
|
+
3. Sema não contorna políticas da plataforma: ele governa contrato, escopo, drift, evidência e qualidade.
|
|
249
|
+
4. Se aparecer alerta de política: pare, explique de forma neutra e não tente burlar filtro.
|
|
250
|
+
5. Se não houver workspace local em disco: pare bloqueado e peça o fluxo apropriado; não invente leitura por caminho.
|
|
251
|
+
6. Se for escrever \`.sema\`: leia \`exemplos/\`; se a pasta estiver ausente, rode \`sema instalar-exemplos --json\` antes.
|
|
252
|
+
7. Se não houver contrato ou vínculo semântico do arquivo: inspecione o arquivo, crie ou edite o contrato aplicável e vincule antes do código.
|
|
253
|
+
8. Se não conseguir chamar Sema: pare e declare bloqueio.
|
|
254
|
+
9. Responda no idioma do usuário. Em PT-BR, use vocabulário Sema: pontuação, desvio semântico, pré-checagem, ambiente de execução e perfil; preserve comandos, endpoints e identificadores.
|
|
255
|
+
10. Se abrir código com \`${agentContextPack.politicaCodigoGovernado.marcador}\`: volte ao contrato, chame Sema e só então edite.
|
|
256
|
+
11. Score 100, achados atendidos ou validação inline são sinais; confira evidência real no contrato e no código.
|
|
257
|
+
12. Validação inline não dispensa cabeçalho \`${agentContextPack.politicaCodigoGovernado.marcador}\` no arquivo físico.
|
|
258
|
+
13. Não crie código governado acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} linhas nem contrato .sema acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}; acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO} em código ou ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} em .sema, planeje divisão por responsabilidade.
|
|
259
|
+
14. Divida por função real: HTML, CSS, estado, cálculo, renderização, dados. Não faça \`index_p1.html\` e \`index_p2.html\` sem sentido.
|
|
260
|
+
15. Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres não é lentidão: divida por responsabilidade; não aumente timeout para tentar passar limite de transporte.
|
|
261
|
+
16. Se aparecer caminho que não pertence ao workspace local aberto pelo usuário, pare e confirme a fonte antes de agir.
|
|
262
|
+
17. Se Sema estourar por timeout local: aumente o timeout e tente de novo. Não trate isso como falha do Sema.
|
|
263
|
+
18. Se \`sema drift --json\` retornar \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou impl quebrada, não conclua. Corrija contrato/código e rode drift de novo.
|
|
264
|
+
19. Se a tarefa tiver site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal: aplique acabamento moderno, contextual, responsivo/ergonômico, com hierarquia clara, estados e evidência. Em UI, valide mobile/desktop e prove \`scrollWidth <= clientWidth\` em viewport estreito como 390px.
|
|
265
|
+
20. Não substitua o contexto Sema por AGENTS.md, README.md, busca local, inferência por nome ou bom senso.
|
|
266
|
+
|
|
267
|
+
Ordem curta:
|
|
268
|
+
|
|
269
|
+
- \`${ARQUIVO_SEMA_BOOT}\`
|
|
270
|
+
- \`SEMA_BRIEF.micro.txt\`
|
|
271
|
+
- \`${ARQUIVO_AGENT_CONTEXT_PACK}\`
|
|
272
|
+
- \`SEMA_INDEX.json\`
|
|
273
|
+
- \`AGENTS.md\`
|
|
274
|
+
|
|
275
|
+
Políticas da plataforma:
|
|
276
|
+
|
|
277
|
+
- ${politicaPlataforma.regra}
|
|
278
|
+
- IA fraca: ${politicaPlataforma.porCapacidade.fraca}
|
|
279
|
+
- Se houver bloqueio externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
280
|
+
|
|
281
|
+
Timeout:
|
|
282
|
+
|
|
283
|
+
- Timeout local do agente não é falha do Sema.
|
|
284
|
+
- Projeto inteiro: comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais.
|
|
285
|
+
- Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
286
|
+
- Se o projeto inteiro for lento, escopar para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
|
|
287
|
+
- ${politicaTimeout.ateQuandoTentar}
|
|
288
|
+
|
|
289
|
+
Acabamento visual e terminal:
|
|
290
|
+
|
|
291
|
+
- ${politicaDesign.regra}
|
|
292
|
+
- IA fraca: ${politicaDesign.porCapacidade.fraca}
|
|
293
|
+
- Evidência mínima: ${politicaDesign.evidencias.fraca.join(", ")}.
|
|
294
|
+
- Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
|
|
295
|
+
|
|
296
|
+
Fail-closed:
|
|
297
|
+
|
|
298
|
+
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
299
299
|
`;
|
|
300
300
|
}
|
|
301
301
|
export function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
|
|
@@ -418,367 +418,367 @@ function renderizarInstrucaoCodexSema(agentContextPack) {
|
|
|
418
418
|
const politicaTimeout = agentContextPack.politicaTimeoutResumo;
|
|
419
419
|
const politicaDesign = agentContextPack.politicaDesignVisual;
|
|
420
420
|
const politicaPlataforma = agentContextPack.politicaPlataforma;
|
|
421
|
-
return `# Sema para Codex
|
|
422
|
-
|
|
423
|
-
Este workspace é governado por Sema. Antes de qualquer ação em código, contrato, documentação operacional, workflow, profile ou deploy:
|
|
424
|
-
|
|
425
|
-
1. Leia \`${ARQUIVO_SEMA_BOOT}\`.
|
|
426
|
-
2. Rode \`sema --version\`; se falhar, pare e peça a instalação da CLI.
|
|
427
|
-
3. Use diretamente a CLI local: \`sema resumo\`, \`sema docs-impacto\`, \`sema inspecionar\`, \`sema drift\` e \`sema impacto\`.
|
|
428
|
-
4. Não use fonte externa de workspace para substituir a CLI local quando ela estiver operacional.
|
|
429
|
-
5. Chame docs-impacto com a intenção declarada antes de agir.
|
|
430
|
-
6. Chame inspecionar no contrato \`.sema\` aplicável.
|
|
431
|
-
7. Antes de editar código existente, rode drift e impacto.
|
|
432
|
-
8. Antes de criar ou editar \`.sema\`, use exemplos oficiais.
|
|
433
|
-
9. Ao concluir mudança de contrato, rode validar.
|
|
434
|
-
10. Antes de finalizar, use finalizar-mudanca com as docs lidas.
|
|
435
|
-
|
|
436
|
-
É proibido substituir esse fluxo por leitura manual de \`AGENTS.md\`, \`README.md\`, busca local por arquivos, inferência pelo nome do projeto, bom senso ou ferramenta não citada nesta lista.
|
|
437
|
-
|
|
438
|
-
Entrypoint oficial do Codex: \`${agentContextPack.entrypointCodex}\`.
|
|
439
|
-
Capacidade padrão do Codex: ${capacidade}.
|
|
440
|
-
Ordem de leitura: ${guia.join(" -> ")}.
|
|
441
|
-
|
|
442
|
-
Políticas da plataforma:
|
|
443
|
-
- ${politicaPlataforma.regra}
|
|
444
|
-
- Capacidade ${capacidade}: ${politicaPlataforma.porCapacidade[capacidade]}
|
|
445
|
-
- Se houver alerta externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
446
|
-
|
|
447
|
-
Falha fechada:
|
|
448
|
-
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
449
|
-
|
|
450
|
-
Timeout:
|
|
451
|
-
- Timeout local do agente não é falha do Sema.
|
|
452
|
-
- Se uma chamada Sema estourar, aumente o timeout e tente de novo antes de declarar bloqueio.
|
|
453
|
-
- Para projeto inteiro, comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais; se for lento, escale ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
454
|
-
- Se possível, reduza escopo para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
|
|
455
|
-
|
|
456
|
-
Código governado:
|
|
457
|
-
- Mantenha o marcador \`${agentContextPack.politicaCodigoGovernado.marcador}\` em código gerado ou governado.
|
|
458
|
-
- Ao encontrar esse marcador, volte ao contrato .sema aplicável e chame Sema antes de editar.
|
|
459
|
-
- Comentário de código é lembrete curto; não substitui drift, docs-impacto nem finalizar-mudanca.
|
|
460
|
-
- Validação inline prova o payload enviado; não dispensa o marcador no arquivo físico sincronizado.
|
|
461
|
-
- Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres não deve virar retry de timeout: modularize por responsabilidade ou use anexo/caminho de servidor autorizado.
|
|
462
|
-
- Se um arquivo crescer, divida por responsabilidade real. Em web: \`index.html\`, \`styles/*.css\`, \`js/state.js\`, \`js/calc.js\`, \`js/render/*.js\`, \`data/*.json\`. Não fatie em p1/p2 sem fronteira semântica.
|
|
463
|
-
|
|
464
|
-
Sinal e evidência:
|
|
465
|
-
- Score composto, \`achados[]\` e \`decisaoAgente\` orientam a ação; abaixo de 80 bloqueia, alvo evolui 0.5 ponto até 100, e nada substitui evidência concreta.
|
|
466
|
-
- Palavra-chave ou regex passando não prova governança se contrato, código e comportamento não batem.
|
|
467
|
-
- \`sema drift --json\` com \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou impls quebradas bloqueia fechamento. Não diga "drift limpo" até rodar de novo e ficar verde.
|
|
468
|
-
- Caminho fora do workspace local aberto pelo usuário não substitui a pasta local.
|
|
469
|
-
|
|
470
|
-
Acabamento visual e terminal:
|
|
471
|
-
- Se houver site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal, acabamento moderno, contextual e não genérico é requisito governado, não enfeite.
|
|
472
|
-
- Capacidade ${capacidade}: ${politicaDesign.porCapacidade[capacidade]}
|
|
473
|
-
- Evidências: ${politicaDesign.evidencias[capacidade].join(", ")}.
|
|
474
|
-
- Responsividade/ergonomia real: valide desktop/mobile e, em viewport estreito como 390px, confirme \`document.documentElement.scrollWidth <= document.documentElement.clientWidth\`; em terminal/CLI/TUI, rode smoke check de saída, erro e ajuda quando aplicável.
|
|
475
|
-
- Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
|
|
476
|
-
|
|
477
|
-
Idioma:
|
|
478
|
-
- Responda no idioma do usuário.
|
|
479
|
-
- Em PT-BR, use vocabulário Sema canônico, acentos, cedilha, pontuação e símbolos normais.
|
|
480
|
-
- A DSL \`.sema\` pode ser ASCII; texto humano não precisa ser.
|
|
481
|
-
- Não traduza comandos, rotas, arquivos, endpoints, variáveis, pacotes, marcas, símbolos de código nem palavras-chave da DSL.
|
|
421
|
+
return `# Sema para Codex
|
|
422
|
+
|
|
423
|
+
Este workspace é governado por Sema. Antes de qualquer ação em código, contrato, documentação operacional, workflow, profile ou deploy:
|
|
424
|
+
|
|
425
|
+
1. Leia \`${ARQUIVO_SEMA_BOOT}\`.
|
|
426
|
+
2. Rode \`sema --version\`; se falhar, pare e peça a instalação da CLI.
|
|
427
|
+
3. Use diretamente a CLI local: \`sema resumo\`, \`sema docs-impacto\`, \`sema inspecionar\`, \`sema drift\` e \`sema impacto\`.
|
|
428
|
+
4. Não use fonte externa de workspace para substituir a CLI local quando ela estiver operacional.
|
|
429
|
+
5. Chame docs-impacto com a intenção declarada antes de agir.
|
|
430
|
+
6. Chame inspecionar no contrato \`.sema\` aplicável.
|
|
431
|
+
7. Antes de editar código existente, rode drift e impacto.
|
|
432
|
+
8. Antes de criar ou editar \`.sema\`, use exemplos oficiais.
|
|
433
|
+
9. Ao concluir mudança de contrato, rode validar.
|
|
434
|
+
10. Antes de finalizar, use finalizar-mudanca com as docs lidas.
|
|
435
|
+
|
|
436
|
+
É proibido substituir esse fluxo por leitura manual de \`AGENTS.md\`, \`README.md\`, busca local por arquivos, inferência pelo nome do projeto, bom senso ou ferramenta não citada nesta lista.
|
|
437
|
+
|
|
438
|
+
Entrypoint oficial do Codex: \`${agentContextPack.entrypointCodex}\`.
|
|
439
|
+
Capacidade padrão do Codex: ${capacidade}.
|
|
440
|
+
Ordem de leitura: ${guia.join(" -> ")}.
|
|
441
|
+
|
|
442
|
+
Políticas da plataforma:
|
|
443
|
+
- ${politicaPlataforma.regra}
|
|
444
|
+
- Capacidade ${capacidade}: ${politicaPlataforma.porCapacidade[capacidade]}
|
|
445
|
+
- Se houver alerta externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
446
|
+
|
|
447
|
+
Falha fechada:
|
|
448
|
+
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
449
|
+
|
|
450
|
+
Timeout:
|
|
451
|
+
- Timeout local do agente não é falha do Sema.
|
|
452
|
+
- Se uma chamada Sema estourar, aumente o timeout e tente de novo antes de declarar bloqueio.
|
|
453
|
+
- Para projeto inteiro, comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais; se for lento, escale ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
454
|
+
- Se possível, reduza escopo para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
|
|
455
|
+
|
|
456
|
+
Código governado:
|
|
457
|
+
- Mantenha o marcador \`${agentContextPack.politicaCodigoGovernado.marcador}\` em código gerado ou governado.
|
|
458
|
+
- Ao encontrar esse marcador, volte ao contrato .sema aplicável e chame Sema antes de editar.
|
|
459
|
+
- Comentário de código é lembrete curto; não substitui drift, docs-impacto nem finalizar-mudanca.
|
|
460
|
+
- Validação inline prova o payload enviado; não dispensa o marcador no arquivo físico sincronizado.
|
|
461
|
+
- Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres não deve virar retry de timeout: modularize por responsabilidade ou use anexo/caminho de servidor autorizado.
|
|
462
|
+
- Se um arquivo crescer, divida por responsabilidade real. Em web: \`index.html\`, \`styles/*.css\`, \`js/state.js\`, \`js/calc.js\`, \`js/render/*.js\`, \`data/*.json\`. Não fatie em p1/p2 sem fronteira semântica.
|
|
463
|
+
|
|
464
|
+
Sinal e evidência:
|
|
465
|
+
- Score composto, \`achados[]\` e \`decisaoAgente\` orientam a ação; abaixo de 80 bloqueia, alvo evolui 0.5 ponto até 100, e nada substitui evidência concreta.
|
|
466
|
+
- Palavra-chave ou regex passando não prova governança se contrato, código e comportamento não batem.
|
|
467
|
+
- \`sema drift --json\` com \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou impls quebradas bloqueia fechamento. Não diga "drift limpo" até rodar de novo e ficar verde.
|
|
468
|
+
- Caminho fora do workspace local aberto pelo usuário não substitui a pasta local.
|
|
469
|
+
|
|
470
|
+
Acabamento visual e terminal:
|
|
471
|
+
- Se houver site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal, acabamento moderno, contextual e não genérico é requisito governado, não enfeite.
|
|
472
|
+
- Capacidade ${capacidade}: ${politicaDesign.porCapacidade[capacidade]}
|
|
473
|
+
- Evidências: ${politicaDesign.evidencias[capacidade].join(", ")}.
|
|
474
|
+
- Responsividade/ergonomia real: valide desktop/mobile e, em viewport estreito como 390px, confirme \`document.documentElement.scrollWidth <= document.documentElement.clientWidth\`; em terminal/CLI/TUI, rode smoke check de saída, erro e ajuda quando aplicável.
|
|
475
|
+
- Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
|
|
476
|
+
|
|
477
|
+
Idioma:
|
|
478
|
+
- Responda no idioma do usuário.
|
|
479
|
+
- Em PT-BR, use vocabulário Sema canônico, acentos, cedilha, pontuação e símbolos normais.
|
|
480
|
+
- A DSL \`.sema\` pode ser ASCII; texto humano não precisa ser.
|
|
481
|
+
- Não traduza comandos, rotas, arquivos, endpoints, variáveis, pacotes, marcas, símbolos de código nem palavras-chave da DSL.
|
|
482
482
|
`;
|
|
483
483
|
}
|
|
484
484
|
function renderizarDocSintaxeSemaLocal(_agentContextPack) {
|
|
485
|
-
return `# Sema Syntax for Codex
|
|
486
|
-
|
|
487
|
-
Use this file as a compact reference before creating or fixing \`.sema\` contracts.
|
|
488
|
-
|
|
489
|
-
## Golden Rule
|
|
490
|
-
|
|
491
|
-
Contract comes before code. Before writing \`.sema\`, read the local examples in \`exemplos/\`.
|
|
492
|
-
|
|
493
|
-
## Minimal Example
|
|
494
|
-
|
|
495
|
-
\`\`\`sema
|
|
496
|
-
module app.example {
|
|
497
|
-
entity Item {
|
|
498
|
-
fields {
|
|
499
|
-
id: Id
|
|
500
|
-
name: Texto
|
|
501
|
-
active: Booleano
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
task create_item {
|
|
506
|
-
input {
|
|
507
|
-
name: Texto required
|
|
508
|
-
}
|
|
509
|
-
output {
|
|
510
|
-
item: Item
|
|
511
|
-
}
|
|
512
|
-
rules {
|
|
513
|
-
name deve_ser preenchido
|
|
514
|
-
}
|
|
515
|
-
effects {
|
|
516
|
-
persistencia Item
|
|
517
|
-
auditoria item_created
|
|
518
|
-
}
|
|
519
|
-
guarantees {
|
|
520
|
-
item existe
|
|
521
|
-
}
|
|
522
|
-
tests {
|
|
523
|
-
caso "creates valid item" {
|
|
524
|
-
given { name: "Item" }
|
|
525
|
-
expect { sucesso: verdadeiro }
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
\`\`\`
|
|
531
|
-
|
|
532
|
-
## Common Blocks
|
|
533
|
-
|
|
534
|
-
- \`docs\`: module summary and notes.
|
|
535
|
-
- \`entity\`: domain model.
|
|
536
|
-
- \`task\`: governed operation.
|
|
537
|
-
- \`input\` and \`output\`: input and output contracts.
|
|
538
|
-
- \`rules\`: validations and business rules.
|
|
539
|
-
- \`effects\`: persistence, reads, events, audit, and external calls.
|
|
540
|
-
- \`guarantees\`: what the task must provide after success.
|
|
541
|
-
- \`error\`: named errors and messages.
|
|
542
|
-
- \`tests\`: minimal behavior examples.
|
|
543
|
-
- \`route\`: public surface linked to a task.
|
|
544
|
-
- \`impl\` and \`vinculos\`: links between the contract and real code.
|
|
545
|
-
|
|
546
|
-
## Canonical \`use\` and \`impl\` Origins
|
|
547
|
-
|
|
548
|
-
Use these origins before inventing a new one:
|
|
549
|
-
|
|
550
|
-
- \`ts\` ou \`typescript\`
|
|
551
|
-
- \`js\` ou \`javascript\`
|
|
552
|
-
- \`py\` ou \`python\`
|
|
553
|
-
- \`dart\`
|
|
554
|
-
- \`lua\`
|
|
555
|
-
- \`cs\` ou \`dotnet\`
|
|
556
|
-
- \`java\`
|
|
557
|
-
- \`go\`
|
|
558
|
-
- \`rust\`
|
|
559
|
-
- \`cpp\`
|
|
560
|
-
|
|
561
|
-
Examples:
|
|
562
|
-
|
|
563
|
-
\`\`\`sema
|
|
564
|
-
use javascript app.web.expenses
|
|
565
|
-
|
|
566
|
-
impl {
|
|
567
|
-
js: src.app.saveExpense
|
|
568
|
-
}
|
|
569
|
-
\`\`\`
|
|
570
|
-
|
|
571
|
-
\`sema compilar --alvo javascript\` defines a generation target. \`impl { js: ... }\` defines the live-code origin linked to the contract. They are different layers and both are valid.
|
|
572
|
-
|
|
573
|
-
## Small Canonical Lists
|
|
574
|
-
|
|
575
|
-
- \`effects\`: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
|
|
576
|
-
- \`audit.motivo\`: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
|
|
577
|
-
|
|
578
|
-
## Contract Size
|
|
579
|
-
|
|
580
|
-
- up to ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} lines: healthy
|
|
581
|
-
- ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA + 1}-${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} lines: diagnostic warning, plan a split
|
|
582
|
-
- above ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}: blocks creation, edits, drift, finalization, generation, and snapshots
|
|
583
|
-
- split by real domain/capability, such as \`expenses_entry.sema\`, \`expenses_totals.sema\`, \`expenses_persistence.sema\`
|
|
584
|
-
- never use \`parte_1\`, \`parte_2\`, \`part_3\`, or equivalent names
|
|
585
|
-
- do not remove \`guarantees\`, \`tests\`, \`authz\`, \`dados\`, or \`vinculos\` just to fit under the limit
|
|
586
|
-
- multiple \`.sema\` contracts may govern the same code file through \`vinculos\`; this is expected
|
|
587
|
-
|
|
588
|
-
## JavaScript Is Supported
|
|
589
|
-
|
|
590
|
-
The CLI supports JavaScript generation:
|
|
591
|
-
|
|
592
|
-
\`\`\`bash
|
|
593
|
-
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
594
|
-
\`\`\`
|
|
595
|
-
|
|
596
|
-
The project can also generate TypeScript, Python, PHP, Dart, Lua, HTML, and
|
|
597
|
-
|
|
598
|
-
## Support Files
|
|
599
|
-
|
|
600
|
-
- \`AGENTS.md\`: official Codex repository rules, loaded automatically.
|
|
601
|
-
- \`${ARQUIVO_SEMA_BOOT}\`: first Sema read for Codex.
|
|
602
|
-
- \`${ARQUIVO_SEMA_SMALL_MODEL}\`: compact guidance for a small context budget.
|
|
603
|
-
- \`${ARQUIVO_AGENT_CONTEXT_PACK}\`: structured Codex context pack.
|
|
604
|
-
- \`SEMA_INDEX.json\`: project index.
|
|
605
|
-
- \`docs/commands.md\`: command catalog, gates, and \`--saida\` rule.
|
|
606
|
-
- \`exemplos/\`: official DSL examples.
|
|
607
|
-
|
|
608
|
-
If Codex does not know which shape to use, it must open \`exemplos/calculadora.sema\`, \`exemplos/crud_simples.sema\`, \`exemplos/pagamento.sema\`, or \`exemplos/tratamento_erro.sema\` before inventing syntax.
|
|
609
|
-
|
|
610
|
-
Platform policy: Sema governs project contracts, scope, drift, evidence, and quality. It never bypasses platform policies, permissions, security controls, terms, or laws.
|
|
485
|
+
return `# Sema Syntax for Codex
|
|
486
|
+
|
|
487
|
+
Use this file as a compact reference before creating or fixing \`.sema\` contracts.
|
|
488
|
+
|
|
489
|
+
## Golden Rule
|
|
490
|
+
|
|
491
|
+
Contract comes before code. Before writing \`.sema\`, read the local examples in \`exemplos/\`.
|
|
492
|
+
|
|
493
|
+
## Minimal Example
|
|
494
|
+
|
|
495
|
+
\`\`\`sema
|
|
496
|
+
module app.example {
|
|
497
|
+
entity Item {
|
|
498
|
+
fields {
|
|
499
|
+
id: Id
|
|
500
|
+
name: Texto
|
|
501
|
+
active: Booleano
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
task create_item {
|
|
506
|
+
input {
|
|
507
|
+
name: Texto required
|
|
508
|
+
}
|
|
509
|
+
output {
|
|
510
|
+
item: Item
|
|
511
|
+
}
|
|
512
|
+
rules {
|
|
513
|
+
name deve_ser preenchido
|
|
514
|
+
}
|
|
515
|
+
effects {
|
|
516
|
+
persistencia Item
|
|
517
|
+
auditoria item_created
|
|
518
|
+
}
|
|
519
|
+
guarantees {
|
|
520
|
+
item existe
|
|
521
|
+
}
|
|
522
|
+
tests {
|
|
523
|
+
caso "creates valid item" {
|
|
524
|
+
given { name: "Item" }
|
|
525
|
+
expect { sucesso: verdadeiro }
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
\`\`\`
|
|
531
|
+
|
|
532
|
+
## Common Blocks
|
|
533
|
+
|
|
534
|
+
- \`docs\`: module summary and notes.
|
|
535
|
+
- \`entity\`: domain model.
|
|
536
|
+
- \`task\`: governed operation.
|
|
537
|
+
- \`input\` and \`output\`: input and output contracts.
|
|
538
|
+
- \`rules\`: validations and business rules.
|
|
539
|
+
- \`effects\`: persistence, reads, events, audit, and external calls.
|
|
540
|
+
- \`guarantees\`: what the task must provide after success.
|
|
541
|
+
- \`error\`: named errors and messages.
|
|
542
|
+
- \`tests\`: minimal behavior examples.
|
|
543
|
+
- \`route\`: public surface linked to a task.
|
|
544
|
+
- \`impl\` and \`vinculos\`: links between the contract and real code.
|
|
545
|
+
|
|
546
|
+
## Canonical \`use\` and \`impl\` Origins
|
|
547
|
+
|
|
548
|
+
Use these origins before inventing a new one:
|
|
549
|
+
|
|
550
|
+
- \`ts\` ou \`typescript\`
|
|
551
|
+
- \`js\` ou \`javascript\`
|
|
552
|
+
- \`py\` ou \`python\`
|
|
553
|
+
- \`dart\`
|
|
554
|
+
- \`lua\`
|
|
555
|
+
- \`cs\` ou \`dotnet\`
|
|
556
|
+
- \`java\`
|
|
557
|
+
- \`go\`
|
|
558
|
+
- \`rust\`
|
|
559
|
+
- \`cpp\`
|
|
560
|
+
|
|
561
|
+
Examples:
|
|
562
|
+
|
|
563
|
+
\`\`\`sema
|
|
564
|
+
use javascript app.web.expenses
|
|
565
|
+
|
|
566
|
+
impl {
|
|
567
|
+
js: src.app.saveExpense
|
|
568
|
+
}
|
|
569
|
+
\`\`\`
|
|
570
|
+
|
|
571
|
+
\`sema compilar --alvo javascript\` defines a generation target. \`impl { js: ... }\` defines the live-code origin linked to the contract. They are different layers and both are valid.
|
|
572
|
+
|
|
573
|
+
## Small Canonical Lists
|
|
574
|
+
|
|
575
|
+
- \`effects\`: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
|
|
576
|
+
- \`audit.motivo\`: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
|
|
577
|
+
|
|
578
|
+
## Contract Size
|
|
579
|
+
|
|
580
|
+
- up to ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} lines: healthy
|
|
581
|
+
- ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA + 1}-${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} lines: diagnostic warning, plan a split
|
|
582
|
+
- above ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}: blocks creation, edits, drift, finalization, generation, and snapshots
|
|
583
|
+
- split by real domain/capability, such as \`expenses_entry.sema\`, \`expenses_totals.sema\`, \`expenses_persistence.sema\`
|
|
584
|
+
- never use \`parte_1\`, \`parte_2\`, \`part_3\`, or equivalent names
|
|
585
|
+
- do not remove \`guarantees\`, \`tests\`, \`authz\`, \`dados\`, or \`vinculos\` just to fit under the limit
|
|
586
|
+
- multiple \`.sema\` contracts may govern the same code file through \`vinculos\`; this is expected
|
|
587
|
+
|
|
588
|
+
## JavaScript Is Supported
|
|
589
|
+
|
|
590
|
+
The CLI supports JavaScript generation:
|
|
591
|
+
|
|
592
|
+
\`\`\`bash
|
|
593
|
+
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
594
|
+
\`\`\`
|
|
595
|
+
|
|
596
|
+
The project can also generate TypeScript, Python, PHP, Dart, Lua, HTML, CSS, C#/.NET (\`dotnet\`), and C++ (\`cpp\`) when those targets are enabled in \`sema.config.json\`.
|
|
597
|
+
|
|
598
|
+
## Support Files
|
|
599
|
+
|
|
600
|
+
- \`AGENTS.md\`: official Codex repository rules, loaded automatically.
|
|
601
|
+
- \`${ARQUIVO_SEMA_BOOT}\`: first Sema read for Codex.
|
|
602
|
+
- \`${ARQUIVO_SEMA_SMALL_MODEL}\`: compact guidance for a small context budget.
|
|
603
|
+
- \`${ARQUIVO_AGENT_CONTEXT_PACK}\`: structured Codex context pack.
|
|
604
|
+
- \`SEMA_INDEX.json\`: project index.
|
|
605
|
+
- \`docs/commands.md\`: command catalog, gates, and \`--saida\` rule.
|
|
606
|
+
- \`exemplos/\`: official DSL examples.
|
|
607
|
+
|
|
608
|
+
If Codex does not know which shape to use, it must open \`exemplos/calculadora.sema\`, \`exemplos/crud_simples.sema\`, \`exemplos/pagamento.sema\`, or \`exemplos/tratamento_erro.sema\` before inventing syntax.
|
|
609
|
+
|
|
610
|
+
Platform policy: Sema governs project contracts, scope, drift, evidence, and quality. It never bypasses platform policies, permissions, security controls, terms, or laws.
|
|
611
611
|
`;
|
|
612
612
|
}
|
|
613
613
|
function renderizarDocFluxoPraticoSemaLocal(_agentContextPack) {
|
|
614
|
-
return `# Practical Codex + Sema Workflow
|
|
615
|
-
|
|
616
|
-
This is the minimum workflow for Codex in a local workspace.
|
|
617
|
-
|
|
618
|
-
1. Read \`${ARQUIVO_SEMA_BOOT}\`.
|
|
619
|
-
2. Run \`sema --version\`. Success enables direct local execution; there is no login, license, token, billing, panel, or authorization gate.
|
|
620
|
-
3. Run \`sema resumo\`.
|
|
621
|
-
4. Run \`sema docs-impacto --intencao "<change>" --json\`.
|
|
622
|
-
5. Read every required document returned by the command.
|
|
623
|
-
6. Read \`docs/commands.md\` before selecting a command or interpreting \`--saida\`.
|
|
624
|
-
7. Use \`exemplos/\` and \`docs/syntax.md\` before creating or editing a contract.
|
|
625
|
-
8. Run \`sema drift\` and \`sema impacto\` before editing existing code.
|
|
626
|
-
9. Run \`sema formatar\` and \`sema validar\` after changing a \`.sema\` contract.
|
|
627
|
-
10. Run \`sema finalizar-mudanca\` with the documents read before closure.
|
|
628
|
-
|
|
629
|
-
Contract edit rule: \`.sema\` has its own size budget. Above ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} lines, plan a split by domain/capability; above ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}, do not create or edit before splitting. Do not use parte_1/parte_2 and do not force a 1:1 contract-to-file relationship; several contracts can govern the same file through \`vinculos\`.
|
|
630
|
-
|
|
631
|
-
Closing rule: \`sema drift --json\` must return \`sucesso:true\`. If it reports \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or broken impls, the task is still blocked. Passing unit tests do not replace green drift.
|
|
632
|
-
|
|
633
|
-
UI rule: if the task involves an interface, minimum evidence includes desktop and mobile. On a narrow viewport such as 390px, \`document.documentElement.scrollWidth <= document.documentElement.clientWidth\` must pass; horizontal scroll blocks closure.
|
|
634
|
-
|
|
635
|
-
## Codex Context Capacity
|
|
636
|
-
|
|
637
|
-
- Small context: \`${ARQUIVO_SEMA_SMALL_MODEL}\`, \`SEMA_BRIEF.micro.txt\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_INDEX.json\`.
|
|
638
|
-
- Medium context: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\`, \`AGENTS.md\`.
|
|
639
|
-
- Large context: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, AST, IR, drift, and impact.
|
|
640
|
-
|
|
641
|
-
## When to Generate Code
|
|
642
|
-
|
|
643
|
-
If the delivery includes code derived from a contract, run \`sema compilar\`.
|
|
644
|
-
|
|
645
|
-
\`\`\`bash
|
|
646
|
-
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
647
|
-
\`\`\`
|
|
648
|
-
|
|
649
|
-
Replace \`javascript\` with \`typescript\`, \`python\`, \`php\`, \`dart\`, \`lua\`, \`html\`, or \`
|
|
650
|
-
|
|
651
|
-
## Fail Closed
|
|
652
|
-
|
|
653
|
-
- If the local CLI is unavailable, stop before editing governed code or contracts and ask for \`@semacode/cli\` installation.
|
|
654
|
-
- If the applicable contract or semantic link is missing, create or repair it before code.
|
|
655
|
-
- If validation or drift reports failure, broken links, divergent routes, or broken implementations, fix the evidence and run the gate again.
|
|
656
|
-
- A local timeout is not authorization to skip Sema; retry with a larger timeout or a narrower scope.
|
|
614
|
+
return `# Practical Codex + Sema Workflow
|
|
615
|
+
|
|
616
|
+
This is the minimum workflow for Codex in a local workspace.
|
|
617
|
+
|
|
618
|
+
1. Read \`${ARQUIVO_SEMA_BOOT}\`.
|
|
619
|
+
2. Run \`sema --version\`. Success enables direct local execution; there is no login, license, token, billing, panel, or authorization gate.
|
|
620
|
+
3. Run \`sema resumo\`.
|
|
621
|
+
4. Run \`sema docs-impacto --intencao "<change>" --json\`.
|
|
622
|
+
5. Read every required document returned by the command.
|
|
623
|
+
6. Read \`docs/commands.md\` before selecting a command or interpreting \`--saida\`.
|
|
624
|
+
7. Use \`exemplos/\` and \`docs/syntax.md\` before creating or editing a contract.
|
|
625
|
+
8. Run \`sema drift\` and \`sema impacto\` before editing existing code.
|
|
626
|
+
9. Run \`sema formatar\` and \`sema validar\` after changing a \`.sema\` contract.
|
|
627
|
+
10. Run \`sema finalizar-mudanca\` with the documents read before closure.
|
|
628
|
+
|
|
629
|
+
Contract edit rule: \`.sema\` has its own size budget. Above ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} lines, plan a split by domain/capability; above ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}, do not create or edit before splitting. Do not use parte_1/parte_2 and do not force a 1:1 contract-to-file relationship; several contracts can govern the same file through \`vinculos\`.
|
|
630
|
+
|
|
631
|
+
Closing rule: \`sema drift --json\` must return \`sucesso:true\`. If it reports \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or broken impls, the task is still blocked. Passing unit tests do not replace green drift.
|
|
632
|
+
|
|
633
|
+
UI rule: if the task involves an interface, minimum evidence includes desktop and mobile. On a narrow viewport such as 390px, \`document.documentElement.scrollWidth <= document.documentElement.clientWidth\` must pass; horizontal scroll blocks closure.
|
|
634
|
+
|
|
635
|
+
## Codex Context Capacity
|
|
636
|
+
|
|
637
|
+
- Small context: \`${ARQUIVO_SEMA_SMALL_MODEL}\`, \`SEMA_BRIEF.micro.txt\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_INDEX.json\`.
|
|
638
|
+
- Medium context: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\`, \`AGENTS.md\`.
|
|
639
|
+
- Large context: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, AST, IR, drift, and impact.
|
|
640
|
+
|
|
641
|
+
## When to Generate Code
|
|
642
|
+
|
|
643
|
+
If the delivery includes code derived from a contract, run \`sema compilar\`.
|
|
644
|
+
|
|
645
|
+
\`\`\`bash
|
|
646
|
+
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
647
|
+
\`\`\`
|
|
648
|
+
|
|
649
|
+
Replace \`javascript\` with \`typescript\`, \`python\`, \`php\`, \`dart\`, \`lua\`, \`html\`, \`css\`, \`dotnet\`, or \`cpp\` when appropriate.
|
|
650
|
+
|
|
651
|
+
## Fail Closed
|
|
652
|
+
|
|
653
|
+
- If the local CLI is unavailable, stop before editing governed code or contracts and ask for \`@semacode/cli\` installation.
|
|
654
|
+
- If the applicable contract or semantic link is missing, create or repair it before code.
|
|
655
|
+
- If validation or drift reports failure, broken links, divergent routes, or broken implementations, fix the evidence and run the gate again.
|
|
656
|
+
- A local timeout is not authorization to skip Sema; retry with a larger timeout or a narrower scope.
|
|
657
657
|
`;
|
|
658
658
|
}
|
|
659
659
|
function renderizarDocComandosSemaLocal(agentContextPack) {
|
|
660
|
-
return `# Sema Command Catalog
|
|
661
|
-
|
|
662
|
-
Use this file when Codex does not know which command to run. A Sema command is an operational gate; do not replace it with a Markdown report.
|
|
663
|
-
|
|
664
|
-
## Minimum Local Flow
|
|
665
|
-
|
|
666
|
-
\`\`\`bash
|
|
667
|
-
sema --version
|
|
668
|
-
sema resumo
|
|
669
|
-
sema docs-impacto --intencao "<acao>" --json
|
|
670
|
-
\`\`\`
|
|
671
|
-
|
|
672
|
-
Then read every required doc returned by \`docs-impacto\`.
|
|
673
|
-
|
|
674
|
-
## Contract and Discovery
|
|
675
|
-
|
|
676
|
-
- \`sema iniciar --template <template> [--force]\`: creates a new Sema project and preserves existing files by default; \`--force\` is the only explicit overwrite path.
|
|
677
|
-
- \`sema validar <arquivo-ou-pasta> --json\`: validates \`.sema\` contracts.
|
|
678
|
-
- \`sema diagnosticos <arquivo.sema> --json\`: details errors and warnings.
|
|
679
|
-
- \`sema formatar <arquivo-ou-pasta>\`: formats contracts.
|
|
680
|
-
- \`sema inspecionar <arquivo-ou-pasta> --json\`: shows modules, tasks, routes, entities, links, and expected files.
|
|
681
|
-
- \`sema ast <arquivo.sema> --json\`: shows AST for syntax debugging.
|
|
682
|
-
- \`sema ir <arquivo.sema> --json\`: shows the IR used by gates and generators.
|
|
683
|
-
|
|
684
|
-
## Change and Closure
|
|
685
|
-
|
|
686
|
-
- \`sema docs-impacto --intencao "<acao>" --json\`: discovers required docs and documentary blockers.
|
|
687
|
-
- \`sema drift <arquivo-ou-pasta> --escopo modulo --json\`: compares contract and implementation.
|
|
688
|
-
- \`sema impacto <arquivo-ou-pasta> --alvo <token> --mudanca "<descricao>" --json\`: maps impact before changing behavior.
|
|
689
|
-
- \`sema verificar <arquivo-ou-pasta> --json\`: runs aggregated final verification.
|
|
690
|
-
- \`sema finalizar-mudanca --intencao "<acao>" --doc-lida <arquivo> --json\`: proves documentation reading before closure.
|
|
691
|
-
|
|
692
|
-
Honest closure: treat drift JSON as the source of truth. \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or broken impls mean the change is not complete yet. Do not report "clean drift" without green JSON.
|
|
693
|
-
|
|
694
|
-
## Sema Code
|
|
695
|
-
|
|
696
|
-
- \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css> --saida <diretorio>\`: generates starter/support artifacts from the contract.
|
|
697
|
-
- \`sema testar <arquivo.sema> --alvo <alvo> --saida <diretorio-temporario>\`: generates and runs local tests when the target supports it.
|
|
698
|
-
- \`sema importar <fonte> <diretorio> --saida <diretorio> --json\`: imports a legacy project into initial contracts.
|
|
699
|
-
- \`sema renomear-semantico <arquivo-ou-pasta> --de <nome> --para <nome> --json\`: helps rename symbols semantically.
|
|
700
|
-
|
|
701
|
-
Rule for \`--saida\`: the folder passed to \`sema compilar --saida\` is generated output. It is not the final delivery by itself. The final delivery is the target files/links declared by the contract. If the contract asks for \`index.html\`, \`css/styles.css\`, and \`js/app.js\`, creating only \`saida/expense_control.ts\` does not complete the task.
|
|
702
|
-
|
|
703
|
-
Sema Code traceability rule: generated artifacts must point back to the source module/contract and preserve that the same final file may be governed by several \`.sema\` contracts through \`vinculos\`. Do not force a 1:1 contract-file relationship and do not treat \`saida/\` as the final project.
|
|
704
|
-
|
|
705
|
-
Ready UI rule: if the task generates an app, site, dashboard, form, or static HTML, run desktop/mobile visual validation when the surface allows it. On narrow mobile (for example 390px), \`scrollWidth <= clientWidth\` must pass; a layout that stacks but overflows horizontally is not responsive.
|
|
706
|
-
|
|
707
|
-
## Canonical Syntax Lists
|
|
708
|
-
|
|
709
|
-
- Origins for \`use\` and \`impl\`: \`ts/typescript\`, \`js/javascript\`, \`py/python\`, \`dart\`, \`lua\`, \`cs/dotnet\`, \`java\`, \`go\`, \`rust\`, \`cpp\`.
|
|
710
|
-
- Frequent \`effects\` categories: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
|
|
711
|
-
- Accepted \`audit.motivo\` values: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
|
|
712
|
-
|
|
713
|
-
\`sema compilar --alvo javascript\` is a generation target. \`impl { js: ... }\` is the live-code origin. Do not swap one for the other.
|
|
714
|
-
|
|
715
|
-
## Codex and Context
|
|
716
|
-
|
|
717
|
-
- \`sema ajuda-ia\`: short guidance for Codex.
|
|
718
|
-
- \`sema starter-ia\`: operational starter.
|
|
719
|
-
- \`sema contexto-ia <arquivo.sema> --saida <dir> --json\`: AI context package.
|
|
720
|
-
- \`sema prompt-curto <arquivo-ou-pasta> --json\`: compact prompt.
|
|
721
|
-
- \`sema sync-codex --json\`: synchronizes the official Codex entrypoint and local support docs.
|
|
722
|
-
- \`sema instalar-exemplos --json\`: installs official examples in the workspace.
|
|
723
|
-
- \`sema exemplos-prompt-ia\`: shows prompt examples, not \`.sema\` examples.
|
|
724
|
-
|
|
725
|
-
## Profiles and Author
|
|
726
|
-
|
|
727
|
-
- \`sema author iniciar|validar|briefing|revisar-cliches|validar-narrativa|validar-proibicoes\`: governs authorial writing.
|
|
728
|
-
- \`sema profile validar <software|workflow|ops|game|legal|research|redacao|propostas|conversas> <arquivo> --json\`: validates an artifact by profile.
|
|
729
|
-
- \`sema profile capabilities --json\`: lists profiles/capabilities.
|
|
730
|
-
- \`sema rule-packs --profile <profile> --json\`: lists rule packs.
|
|
731
|
-
|
|
732
|
-
## Operational
|
|
733
|
-
|
|
734
|
-
- \`sema doctor\`: diagnoses local installation.
|
|
735
|
-
|
|
736
|
-
## Forbidden
|
|
737
|
-
|
|
738
|
-
- Do not use an external workspace source to inspect a local workspace when \`sema --version\` works.
|
|
739
|
-
- Do not search the entire disk for \`.sema\` syntax; use \`exemplos/\`, \`docs/syntax.md\`, and this catalog.
|
|
740
|
-
- Do not stop after \`sema compilar\` if the contract target files still do not exist.
|
|
741
|
-
- Do not replace \`sema compilar\` with \`sema testar\` when the contract requires generated code.
|
|
742
|
-
- Do not create a Markdown report to pretend a gate ran.
|
|
743
|
-
- Do not say drift passed when \`sema drift --json\` returned \`sucesso:false\`, broken link, divergent route, or broken impl.
|
|
744
|
-
- Do not declare a UI responsive without mobile/desktop proof; horizontal scroll at 390px blocks closure.
|
|
745
|
-
|
|
746
|
-
Governed code policy: keep the \`SEMA-GOVERNED\` marker, split large code by real responsibility, preserve contract links, and never treat a generated output directory as the final delivery.
|
|
660
|
+
return `# Sema Command Catalog
|
|
661
|
+
|
|
662
|
+
Use this file when Codex does not know which command to run. A Sema command is an operational gate; do not replace it with a Markdown report.
|
|
663
|
+
|
|
664
|
+
## Minimum Local Flow
|
|
665
|
+
|
|
666
|
+
\`\`\`bash
|
|
667
|
+
sema --version
|
|
668
|
+
sema resumo
|
|
669
|
+
sema docs-impacto --intencao "<acao>" --json
|
|
670
|
+
\`\`\`
|
|
671
|
+
|
|
672
|
+
Then read every required doc returned by \`docs-impacto\`.
|
|
673
|
+
|
|
674
|
+
## Contract and Discovery
|
|
675
|
+
|
|
676
|
+
- \`sema iniciar --template <template> [--force]\`: creates a new Sema project and preserves existing files by default; \`--force\` is the only explicit overwrite path.
|
|
677
|
+
- \`sema validar <arquivo-ou-pasta> --json\`: validates \`.sema\` contracts.
|
|
678
|
+
- \`sema diagnosticos <arquivo.sema> --json\`: details errors and warnings.
|
|
679
|
+
- \`sema formatar <arquivo-ou-pasta>\`: formats contracts.
|
|
680
|
+
- \`sema inspecionar <arquivo-ou-pasta> --json\`: shows modules, tasks, routes, entities, links, and expected files.
|
|
681
|
+
- \`sema ast <arquivo.sema> --json\`: shows AST for syntax debugging.
|
|
682
|
+
- \`sema ir <arquivo.sema> --json\`: shows the IR used by gates and generators.
|
|
683
|
+
|
|
684
|
+
## Change and Closure
|
|
685
|
+
|
|
686
|
+
- \`sema docs-impacto --intencao "<acao>" --json\`: discovers required docs and documentary blockers.
|
|
687
|
+
- \`sema drift <arquivo-ou-pasta> --escopo modulo --json\`: compares contract and implementation.
|
|
688
|
+
- \`sema impacto <arquivo-ou-pasta> --alvo <token> --mudanca "<descricao>" --json\`: maps impact before changing behavior.
|
|
689
|
+
- \`sema verificar <arquivo-ou-pasta> --json\`: runs aggregated final verification.
|
|
690
|
+
- \`sema finalizar-mudanca --intencao "<acao>" --doc-lida <arquivo> --json\`: proves documentation reading before closure.
|
|
691
|
+
|
|
692
|
+
Honest closure: treat drift JSON as the source of truth. \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or broken impls mean the change is not complete yet. Do not report "clean drift" without green JSON.
|
|
693
|
+
|
|
694
|
+
## Sema Code
|
|
695
|
+
|
|
696
|
+
- \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css|dotnet|cpp> --saida <diretorio>\`: generates starter/support artifacts from the contract.
|
|
697
|
+
- \`sema testar <arquivo.sema> --alvo <alvo> --saida <diretorio-temporario>\`: generates and runs local tests when the target supports it.
|
|
698
|
+
- \`sema importar <fonte> <diretorio> --saida <diretorio> --json\`: imports a legacy project into initial contracts.
|
|
699
|
+
- \`sema renomear-semantico <arquivo-ou-pasta> --de <nome> --para <nome> --json\`: helps rename symbols semantically.
|
|
700
|
+
|
|
701
|
+
Rule for \`--saida\`: the folder passed to \`sema compilar --saida\` is generated output. It is not the final delivery by itself. The final delivery is the target files/links declared by the contract. If the contract asks for \`index.html\`, \`css/styles.css\`, and \`js/app.js\`, creating only \`saida/expense_control.ts\` does not complete the task.
|
|
702
|
+
|
|
703
|
+
Sema Code traceability rule: generated artifacts must point back to the source module/contract and preserve that the same final file may be governed by several \`.sema\` contracts through \`vinculos\`. Do not force a 1:1 contract-file relationship and do not treat \`saida/\` as the final project.
|
|
704
|
+
|
|
705
|
+
Ready UI rule: if the task generates an app, site, dashboard, form, or static HTML, run desktop/mobile visual validation when the surface allows it. On narrow mobile (for example 390px), \`scrollWidth <= clientWidth\` must pass; a layout that stacks but overflows horizontally is not responsive.
|
|
706
|
+
|
|
707
|
+
## Canonical Syntax Lists
|
|
708
|
+
|
|
709
|
+
- Origins for \`use\` and \`impl\`: \`ts/typescript\`, \`js/javascript\`, \`py/python\`, \`dart\`, \`lua\`, \`cs/dotnet\`, \`java\`, \`go\`, \`rust\`, \`cpp\`.
|
|
710
|
+
- Frequent \`effects\` categories: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
|
|
711
|
+
- Accepted \`audit.motivo\` values: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
|
|
712
|
+
|
|
713
|
+
\`sema compilar --alvo javascript\` is a generation target. \`impl { js: ... }\` is the live-code origin. Do not swap one for the other.
|
|
714
|
+
|
|
715
|
+
## Codex and Context
|
|
716
|
+
|
|
717
|
+
- \`sema ajuda-ia\`: short guidance for Codex.
|
|
718
|
+
- \`sema starter-ia\`: operational starter.
|
|
719
|
+
- \`sema contexto-ia <arquivo.sema> --saida <dir> --json\`: AI context package.
|
|
720
|
+
- \`sema prompt-curto <arquivo-ou-pasta> --json\`: compact prompt.
|
|
721
|
+
- \`sema sync-codex --json\`: synchronizes the official Codex entrypoint and local support docs.
|
|
722
|
+
- \`sema instalar-exemplos --json\`: installs official examples in the workspace.
|
|
723
|
+
- \`sema exemplos-prompt-ia\`: shows prompt examples, not \`.sema\` examples.
|
|
724
|
+
|
|
725
|
+
## Profiles and Author
|
|
726
|
+
|
|
727
|
+
- \`sema author iniciar|validar|briefing|revisar-cliches|validar-narrativa|validar-proibicoes\`: governs authorial writing.
|
|
728
|
+
- \`sema profile validar <software|workflow|ops|game|legal|research|redacao|propostas|conversas> <arquivo> --json\`: validates an artifact by profile.
|
|
729
|
+
- \`sema profile capabilities --json\`: lists profiles/capabilities.
|
|
730
|
+
- \`sema rule-packs --profile <profile> --json\`: lists rule packs.
|
|
731
|
+
|
|
732
|
+
## Operational
|
|
733
|
+
|
|
734
|
+
- \`sema doctor\`: diagnoses local installation.
|
|
735
|
+
|
|
736
|
+
## Forbidden
|
|
737
|
+
|
|
738
|
+
- Do not use an external workspace source to inspect a local workspace when \`sema --version\` works.
|
|
739
|
+
- Do not search the entire disk for \`.sema\` syntax; use \`exemplos/\`, \`docs/syntax.md\`, and this catalog.
|
|
740
|
+
- Do not stop after \`sema compilar\` if the contract target files still do not exist.
|
|
741
|
+
- Do not replace \`sema compilar\` with \`sema testar\` when the contract requires generated code.
|
|
742
|
+
- Do not create a Markdown report to pretend a gate ran.
|
|
743
|
+
- Do not say drift passed when \`sema drift --json\` returned \`sucesso:false\`, broken link, divergent route, or broken impl.
|
|
744
|
+
- Do not declare a UI responsive without mobile/desktop proof; horizontal scroll at 390px blocks closure.
|
|
745
|
+
|
|
746
|
+
Governed code policy: keep the \`SEMA-GOVERNED\` marker, split large code by real responsibility, preserve contract links, and never treat a generated output directory as the final delivery.
|
|
747
747
|
`;
|
|
748
748
|
}
|
|
749
749
|
function renderizarAgentStarterLocal(_agentContextPack) {
|
|
750
|
-
return `# Codex Starter
|
|
751
|
-
|
|
752
|
-
Codex is operating in a Sema-governed project.
|
|
753
|
-
|
|
754
|
-
Read in this order:
|
|
755
|
-
|
|
756
|
-
1. \`${ARQUIVO_SEMA_BOOT}\`
|
|
757
|
-
2. \`${ARQUIVO_AGENT_CONTEXT_PACK}\`
|
|
758
|
-
3. \`SEMA_INDEX.json\`
|
|
759
|
-
4. \`AGENTS.md\`
|
|
760
|
-
5. \`docs/commands.md\`
|
|
761
|
-
6. \`docs/syntax.md\`
|
|
762
|
-
7. \`exemplos/\`
|
|
763
|
-
|
|
764
|
-
Basic commands:
|
|
765
|
-
|
|
766
|
-
\`\`\`bash
|
|
767
|
-
sema --version
|
|
768
|
-
sema resumo
|
|
769
|
-
sema docs-impacto --intencao "<acao>" --json
|
|
770
|
-
sema validar contratos/orders.sema --json
|
|
771
|
-
sema drift contratos/orders.sema --escopo modulo --json
|
|
772
|
-
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
773
|
-
\`\`\`
|
|
774
|
-
|
|
775
|
-
Do not replace these gates with local search, guessing from a filename, or random contract reading outside the project.
|
|
776
|
-
|
|
777
|
-
Closure is not an opinion: \`sema drift --json\` must be green. \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or broken impls block closure.
|
|
778
|
-
|
|
779
|
-
Ready UI requires proof: desktop/mobile and a narrow viewport without horizontal overflow (\`scrollWidth <= clientWidth\`).
|
|
780
|
-
|
|
781
|
-
Keep \`SEMA-GOVERNED\` markers and follow the applicable contract before editing governed code.
|
|
750
|
+
return `# Codex Starter
|
|
751
|
+
|
|
752
|
+
Codex is operating in a Sema-governed project.
|
|
753
|
+
|
|
754
|
+
Read in this order:
|
|
755
|
+
|
|
756
|
+
1. \`${ARQUIVO_SEMA_BOOT}\`
|
|
757
|
+
2. \`${ARQUIVO_AGENT_CONTEXT_PACK}\`
|
|
758
|
+
3. \`SEMA_INDEX.json\`
|
|
759
|
+
4. \`AGENTS.md\`
|
|
760
|
+
5. \`docs/commands.md\`
|
|
761
|
+
6. \`docs/syntax.md\`
|
|
762
|
+
7. \`exemplos/\`
|
|
763
|
+
|
|
764
|
+
Basic commands:
|
|
765
|
+
|
|
766
|
+
\`\`\`bash
|
|
767
|
+
sema --version
|
|
768
|
+
sema resumo
|
|
769
|
+
sema docs-impacto --intencao "<acao>" --json
|
|
770
|
+
sema validar contratos/orders.sema --json
|
|
771
|
+
sema drift contratos/orders.sema --escopo modulo --json
|
|
772
|
+
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
773
|
+
\`\`\`
|
|
774
|
+
|
|
775
|
+
Do not replace these gates with local search, guessing from a filename, or random contract reading outside the project.
|
|
776
|
+
|
|
777
|
+
Closure is not an opinion: \`sema drift --json\` must be green. \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or broken impls block closure.
|
|
778
|
+
|
|
779
|
+
Ready UI requires proof: desktop/mobile and a narrow viewport without horizontal overflow (\`scrollWidth <= clientWidth\`).
|
|
780
|
+
|
|
781
|
+
Keep \`SEMA-GOVERNED\` markers and follow the applicable contract before editing governed code.
|
|
782
782
|
`;
|
|
783
783
|
}
|
|
784
784
|
export async function sincronizarEntrypointCodex(baseProjeto, agentContextPack) {
|