@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.
Files changed (134) hide show
  1. package/LICENSE +39 -39
  2. package/README.md +141 -121
  3. package/dist/agentEntryPoints.js +499 -499
  4. package/dist/comandos.js +2 -0
  5. package/dist/doctorCommand.js +28 -0
  6. package/dist/execucoesExternas.js +19 -5
  7. package/dist/geracaoCore.js +97 -1
  8. package/dist/iaPrompts.d.ts +1 -1
  9. package/dist/iaPrompts.js +307 -307
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.js +1 -0
  12. package/dist/index.part01.d.ts +1 -1
  13. package/dist/index.part01.js +14 -4
  14. package/dist/index.part02.js +21 -21
  15. package/dist/index.part04.js +96 -96
  16. package/dist/index.part06.js +1 -1
  17. package/dist/index.part07.js +35 -24
  18. package/dist/init/templates.part01.js +393 -393
  19. package/dist/init/templates.part02.js +189 -189
  20. package/dist/initTemplatesBackend.js +73 -73
  21. package/dist/initTemplatesBase.js +81 -81
  22. package/dist/initTemplatesFlutter.js +137 -137
  23. package/dist/initTemplatesRuntime.js +350 -350
  24. package/dist/initTemplatesWeb.js +309 -309
  25. package/dist/nativeToolchains.d.ts +15 -0
  26. package/dist/nativeToolchains.js +132 -0
  27. package/dist/pipelineConteudo/adapters.d.ts +84 -0
  28. package/dist/pipelineConteudo/adapters.js +449 -0
  29. package/dist/pipelineConteudo/canonical.d.ts +18 -0
  30. package/dist/pipelineConteudo/canonical.js +107 -0
  31. package/dist/pipelineConteudo/command.d.ts +3 -0
  32. package/dist/pipelineConteudo/command.js +572 -0
  33. package/dist/pipelineConteudo/index.d.ts +9 -0
  34. package/dist/pipelineConteudo/index.js +12 -0
  35. package/dist/pipelineConteudo/ledger.d.ts +68 -0
  36. package/dist/pipelineConteudo/ledger.js +732 -0
  37. package/dist/pipelineConteudo/planner.d.ts +12 -0
  38. package/dist/pipelineConteudo/planner.js +366 -0
  39. package/dist/pipelineConteudo/projection.d.ts +16 -0
  40. package/dist/pipelineConteudo/projection.js +57 -0
  41. package/dist/pipelineConteudo/state.d.ts +23 -0
  42. package/dist/pipelineConteudo/state.js +615 -0
  43. package/dist/pipelineConteudo/trust.d.ts +17 -0
  44. package/dist/pipelineConteudo/trust.js +750 -0
  45. package/dist/pipelineConteudo/types.d.ts +331 -0
  46. package/dist/pipelineConteudo/types.js +4 -0
  47. package/dist/projetoConfig.js +7 -1
  48. package/dist/projetoResolucao.js +21 -6
  49. package/dist/sync/index.js +35 -35
  50. package/docs/README.md +28 -25
  51. package/docs/ai-onboarding.md +62 -62
  52. package/docs/ai-workflow.md +1 -1
  53. package/docs/auth.md +26 -26
  54. package/docs/cli.md +79 -72
  55. package/docs/commands.md +1 -1
  56. package/docs/database.md +15 -15
  57. package/docs/deploy.md +41 -36
  58. package/docs/documentation.md +39 -39
  59. package/docs/env.md +16 -16
  60. package/docs/frontend.md +41 -41
  61. package/docs/getting-started.md +57 -57
  62. package/docs/i18n.md +15 -15
  63. package/docs/pipeline-conteudo.md +246 -0
  64. package/docs/profiles.md +45 -43
  65. package/docs/repositories.md +43 -43
  66. package/docs/rollback.md +31 -31
  67. package/docs/security.md +32 -32
  68. package/docs/support.md +8 -8
  69. package/docs/syntax.md +1 -1
  70. package/docs/testing.md +35 -28
  71. package/docs/vocabulary.md +29 -29
  72. package/exemplos/agendamento.sema +1 -1
  73. package/exemplos/assinatura.sema +1 -1
  74. package/exemplos/auditoria.sema +1 -1
  75. package/exemplos/autenticacao.sema +1 -1
  76. package/exemplos/author_obra_comum.sema +1 -1
  77. package/exemplos/author_tema_sensivel.sema +1 -1
  78. package/exemplos/automacao.sema +1 -1
  79. package/exemplos/cadastro_usuario.sema +1 -1
  80. package/exemplos/calculadora.sema +1 -1
  81. package/exemplos/crud_simples.sema +1 -1
  82. package/exemplos/estoque.sema +1 -1
  83. package/exemplos/exportacao.sema +1 -1
  84. package/exemplos/fila.sema +1 -1
  85. package/exemplos/integracao_externa.sema +1 -1
  86. package/exemplos/multi_tenant.sema +1 -1
  87. package/exemplos/notificacao.sema +1 -1
  88. package/exemplos/operacao_estrategia.sema +132 -132
  89. package/exemplos/operacao_estrategia_discovery.sema +220 -220
  90. package/exemplos/operacao_estrategia_fluxo.sema +114 -114
  91. package/exemplos/operacao_estrategia_gates.sema +106 -106
  92. package/exemplos/operacao_estrategia_quarentena.sema +133 -133
  93. package/exemplos/operacao_estrategia_rollout.sema +124 -124
  94. package/exemplos/pagamento.sema +1 -1
  95. package/exemplos/pagamento_dominio.sema +1 -1
  96. package/exemplos/pedido.sema +1 -1
  97. package/exemplos/permissao.sema +1 -1
  98. package/exemplos/persistencia_vendor_first.sema +1 -1
  99. package/exemplos/pipeline-conteudo/README.md +44 -0
  100. package/exemplos/pipeline-conteudo/alvos.json +23 -0
  101. package/exemplos/pipeline-conteudo/definicao.json +136 -0
  102. package/exemplos/profile_conversas.sema +165 -165
  103. package/exemplos/profile_game.sema +1 -1
  104. package/exemplos/profile_legal.sema +1 -1
  105. package/exemplos/profile_ops.sema +1 -1
  106. package/exemplos/profile_research.sema +1 -1
  107. package/exemplos/profile_software.sema +1 -1
  108. package/exemplos/profile_workflow_n8n.sema +1 -1
  109. package/exemplos/relatorio.sema +1 -1
  110. package/exemplos/replica_analitica_erp.sema +1 -1
  111. package/exemplos/testes_embutidos.sema +1 -1
  112. package/exemplos/tratamento_erro.sema +1 -1
  113. package/exemplos/upload_arquivo.sema +1 -1
  114. package/exemplos/webhook.sema +1 -1
  115. package/node_modules/@sema/gerador-cpp/dist/index.d.ts +3 -0
  116. package/node_modules/@sema/gerador-cpp/dist/index.js +859 -0
  117. package/node_modules/@sema/gerador-cpp/dist/index.js.map +1 -0
  118. package/node_modules/@sema/gerador-cpp/package.json +7 -0
  119. package/node_modules/@sema/gerador-css/dist/index.part01.js +10 -10
  120. package/node_modules/@sema/gerador-css/dist/index.part02.js +460 -460
  121. package/node_modules/@sema/gerador-dotnet/dist/index.d.ts +3 -0
  122. package/node_modules/@sema/gerador-dotnet/dist/index.js +828 -0
  123. package/node_modules/@sema/gerador-dotnet/dist/index.js.map +1 -0
  124. package/node_modules/@sema/gerador-dotnet/package.json +7 -0
  125. package/node_modules/@sema/gerador-html/dist/index.js +17 -17
  126. package/node_modules/@sema/gerador-lua/dist/index.js +53 -8
  127. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
  128. package/node_modules/@sema/gerador-php/dist/index.js +121 -113
  129. package/node_modules/@sema/gerador-php/dist/index.js.map +1 -1
  130. package/node_modules/@sema/gerador-python/dist/index.part02.js +3 -3
  131. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +11 -11
  132. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +42 -42
  133. package/node_modules/@sema/padroes/dist/index.d.ts +1 -1
  134. package/package.json +12 -1
@@ -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 CSS 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.
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 \`css\` 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.
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) {