@semacode/cli 1.5.48 → 1.5.53

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 (281) hide show
  1. package/LICENSE +39 -21
  2. package/README.md +47 -48
  3. package/dist/agentContext.d.ts +2 -2
  4. package/dist/agentContext.js +1 -1
  5. package/dist/agentContextPack.d.ts +1 -1
  6. package/dist/agentContextPack.js +20 -28
  7. package/dist/agentContextTipos.d.ts +2 -2
  8. package/dist/agentContextTipos.js +7 -13
  9. package/dist/agentEntryPoints.js +244 -281
  10. package/dist/billing/index.d.ts +1 -58
  11. package/dist/billing/index.js +17 -278
  12. package/dist/cliArgs.js +0 -3
  13. package/dist/comandos.js +15 -131
  14. package/dist/contexto.d.ts +0 -9
  15. package/dist/contexto.js +59 -109
  16. package/dist/docs.part01.js +30 -51
  17. package/dist/drift.part14.js +18 -3
  18. package/dist/driftOrcamento.js +1 -2
  19. package/dist/index.d.ts +0 -6
  20. package/dist/index.js +0 -6
  21. package/dist/index.part01.d.ts +1 -1
  22. package/dist/index.part01.js +1 -3
  23. package/dist/index.part04.js +4 -4
  24. package/dist/index.part08.js +1 -22
  25. package/dist/initTemplatesBase.js +5 -5
  26. package/dist/sync/index.js +1 -1
  27. package/docs/README.md +19 -0
  28. package/docs/ai-integration.md +90 -0
  29. package/docs/ai-onboarding.md +33 -0
  30. package/docs/ai-workflow.md +62 -0
  31. package/docs/auth.md +16 -0
  32. package/docs/cli.md +36 -95
  33. package/docs/commands.md +90 -0
  34. package/docs/database.md +15 -0
  35. package/docs/deploy.md +6 -38
  36. package/docs/documentation.md +39 -0
  37. package/docs/env.md +8 -109
  38. package/docs/frontend.md +41 -0
  39. package/docs/getting-started.md +33 -0
  40. package/docs/i18n.md +15 -0
  41. package/docs/profiles.md +43 -0
  42. package/docs/repositories.md +19 -61
  43. package/docs/rollback.md +9 -20
  44. package/docs/security.md +24 -0
  45. package/docs/support.md +8 -0
  46. package/docs/syntax.md +128 -0
  47. package/docs/testing.md +17 -0
  48. package/docs/vocabulary.md +28 -0
  49. package/node_modules/@sema/gerador-css/package.json +1 -1
  50. package/node_modules/@sema/gerador-dart/package.json +1 -1
  51. package/node_modules/@sema/gerador-html/package.json +1 -1
  52. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  53. package/node_modules/@sema/gerador-lua/dist/index.js +10 -0
  54. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
  55. package/node_modules/@sema/gerador-lua/package.json +1 -1
  56. package/node_modules/@sema/gerador-python/package.json +1 -1
  57. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  58. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +1 -1
  59. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -1
  60. package/node_modules/@sema/nucleo/package.json +1 -1
  61. package/node_modules/@sema/padroes/package.json +1 -1
  62. package/package.json +15 -22
  63. package/AGENTS.md +0 -81
  64. package/AGENT_CONTEXT_PACK.json +0 -500
  65. package/SEMA_BRIEF.curto.txt +0 -18
  66. package/SEMA_BRIEF.md +0 -726
  67. package/SEMA_BRIEF.micro.txt +0 -16
  68. package/SEMA_INDEX.json +0 -11078
  69. package/dist/agentContext.js.map +0 -1
  70. package/dist/agentContextPack.js.map +0 -1
  71. package/dist/agentContextTipos.js.map +0 -1
  72. package/dist/agentEntryPoints.js.map +0 -1
  73. package/dist/angular-consumer-standalone.js.map +0 -1
  74. package/dist/authorAnalise.js.map +0 -1
  75. package/dist/authorPoliticas.js.map +0 -1
  76. package/dist/billing/index.js.map +0 -1
  77. package/dist/bridge.d.ts +0 -52
  78. package/dist/bridge.js +0 -333
  79. package/dist/bridge.js.map +0 -1
  80. package/dist/carregarModulos.js.map +0 -1
  81. package/dist/cliArgs.js.map +0 -1
  82. package/dist/comandos.js.map +0 -1
  83. package/dist/contexto.js.map +0 -1
  84. package/dist/controleComercialSupabase.d.ts +0 -7
  85. package/dist/controleComercialSupabase.js +0 -6
  86. package/dist/controleComercialSupabase.js.map +0 -1
  87. package/dist/controleComercialSupabaseAdmin.d.ts +0 -7
  88. package/dist/controleComercialSupabaseAdmin.js +0 -138
  89. package/dist/controleComercialSupabaseAdmin.js.map +0 -1
  90. package/dist/controleComercialSupabaseCadastro.d.ts +0 -4
  91. package/dist/controleComercialSupabaseCadastro.js +0 -85
  92. package/dist/controleComercialSupabaseCadastro.js.map +0 -1
  93. package/dist/controleComercialSupabaseConstantes.d.ts +0 -28
  94. package/dist/controleComercialSupabaseConstantes.js +0 -44
  95. package/dist/controleComercialSupabaseConstantes.js.map +0 -1
  96. package/dist/controleComercialSupabaseConsumo.d.ts +0 -2
  97. package/dist/controleComercialSupabaseConsumo.js +0 -77
  98. package/dist/controleComercialSupabaseConsumo.js.map +0 -1
  99. package/dist/controleComercialSupabaseConta.d.ts +0 -11
  100. package/dist/controleComercialSupabaseConta.js +0 -157
  101. package/dist/controleComercialSupabaseConta.js.map +0 -1
  102. package/dist/controleComercialSupabaseProfiles.d.ts +0 -4
  103. package/dist/controleComercialSupabaseProfiles.js +0 -55
  104. package/dist/controleComercialSupabaseProfiles.js.map +0 -1
  105. package/dist/controleComercialSupabaseTipos.d.ts +0 -3
  106. package/dist/controleComercialSupabaseTipos.js +0 -2
  107. package/dist/controleComercialSupabaseTipos.js.map +0 -1
  108. package/dist/controleComercialSupabaseTiposAdmin.d.ts +0 -152
  109. package/dist/controleComercialSupabaseTiposAdmin.js +0 -2
  110. package/dist/controleComercialSupabaseTiposAdmin.js.map +0 -1
  111. package/dist/controleComercialSupabaseTiposBase.d.ts +0 -169
  112. package/dist/controleComercialSupabaseTiposBase.js +0 -2
  113. package/dist/controleComercialSupabaseTiposBase.js.map +0 -1
  114. package/dist/controleComercialSupabaseTiposConta.d.ts +0 -220
  115. package/dist/controleComercialSupabaseTiposConta.js +0 -2
  116. package/dist/controleComercialSupabaseTiposConta.js.map +0 -1
  117. package/dist/cpp-symbols.js.map +0 -1
  118. package/dist/dev/index.js.map +0 -1
  119. package/dist/dev/watcher.js.map +0 -1
  120. package/dist/docs/resolver.js.map +0 -1
  121. package/dist/docs.js.map +0 -1
  122. package/dist/docs.part01.js.map +0 -1
  123. package/dist/docs.part02.js.map +0 -1
  124. package/dist/doctorCommand.js.map +0 -1
  125. package/dist/dotnet-http.js.map +0 -1
  126. package/dist/drift.contrato.js.map +0 -1
  127. package/dist/drift.js.map +0 -1
  128. package/dist/drift.part01.js.map +0 -1
  129. package/dist/drift.part02.js.map +0 -1
  130. package/dist/drift.part03.js.map +0 -1
  131. package/dist/drift.part04.js.map +0 -1
  132. package/dist/drift.part05.js.map +0 -1
  133. package/dist/drift.part06.js.map +0 -1
  134. package/dist/drift.part07.js.map +0 -1
  135. package/dist/drift.part08.js.map +0 -1
  136. package/dist/drift.part09.js.map +0 -1
  137. package/dist/drift.part10.js.map +0 -1
  138. package/dist/drift.part11.js.map +0 -1
  139. package/dist/drift.part12.js.map +0 -1
  140. package/dist/drift.part13.js.map +0 -1
  141. package/dist/drift.part14.js.map +0 -1
  142. package/dist/driftOrcamento.js.map +0 -1
  143. package/dist/driftScore.js.map +0 -1
  144. package/dist/execucoesExternas.js.map +0 -1
  145. package/dist/exemplosOficiais.js.map +0 -1
  146. package/dist/fsGovernado.js.map +0 -1
  147. package/dist/geracaoCore.js.map +0 -1
  148. package/dist/go-http.js.map +0 -1
  149. package/dist/guard.js.map +0 -1
  150. package/dist/iaPrompts.js.map +0 -1
  151. package/dist/importador.js.map +0 -1
  152. package/dist/importador.part01.js.map +0 -1
  153. package/dist/importador.part02.js.map +0 -1
  154. package/dist/importador.part03.js.map +0 -1
  155. package/dist/importador.part04.js.map +0 -1
  156. package/dist/importador.part05.js.map +0 -1
  157. package/dist/importador.part06.js.map +0 -1
  158. package/dist/importador.part07.js.map +0 -1
  159. package/dist/importador.part08.js.map +0 -1
  160. package/dist/importador.part09.js.map +0 -1
  161. package/dist/index.js.map +0 -1
  162. package/dist/index.part01.js.map +0 -1
  163. package/dist/index.part02.js.map +0 -1
  164. package/dist/index.part03.js.map +0 -1
  165. package/dist/index.part04.js.map +0 -1
  166. package/dist/index.part05.js.map +0 -1
  167. package/dist/index.part06.js.map +0 -1
  168. package/dist/index.part07.js.map +0 -1
  169. package/dist/index.part08.js.map +0 -1
  170. package/dist/init/index.js.map +0 -1
  171. package/dist/init/templates.js.map +0 -1
  172. package/dist/init/templates.part01.js.map +0 -1
  173. package/dist/init/templates.part02.js.map +0 -1
  174. package/dist/initCommand.js.map +0 -1
  175. package/dist/initTemplatesBackend.js.map +0 -1
  176. package/dist/initTemplatesBase.js.map +0 -1
  177. package/dist/initTemplatesFlutter.js.map +0 -1
  178. package/dist/initTemplatesRuntime.js.map +0 -1
  179. package/dist/initTemplatesWeb.js.map +0 -1
  180. package/dist/java-http.js.map +0 -1
  181. package/dist/lua-symbols.js.map +0 -1
  182. package/dist/mcpInstalarChaveCommand.d.ts +0 -1
  183. package/dist/mcpInstalarChaveCommand.js +0 -168
  184. package/dist/mcpInstalarChaveCommand.js.map +0 -1
  185. package/dist/mcpRemoto.d.ts +0 -32
  186. package/dist/mcpRemoto.js +0 -61
  187. package/dist/mcpRemoto.js.map +0 -1
  188. package/dist/mcp_chave.d.ts +0 -1
  189. package/dist/mcp_chave.js +0 -4
  190. package/dist/mcp_chave.js.map +0 -1
  191. package/dist/profileArtefatoBase.js.map +0 -1
  192. package/dist/profileArtefatoValidadores.js.map +0 -1
  193. package/dist/profileAuthorCommand.js.map +0 -1
  194. package/dist/profileAuthorTipos.js.map +0 -1
  195. package/dist/profileCatalogo.js.map +0 -1
  196. package/dist/profileCommand.js.map +0 -1
  197. package/dist/profileI18nCatalogo.js.map +0 -1
  198. package/dist/profileI18nVisivel.js.map +0 -1
  199. package/dist/profileOrquestracao.js.map +0 -1
  200. package/dist/profileRegras.js.map +0 -1
  201. package/dist/profileRulePacks.js.map +0 -1
  202. package/dist/profiles/validate.js.map +0 -1
  203. package/dist/projeto.js.map +0 -1
  204. package/dist/projetoBusca.js.map +0 -1
  205. package/dist/projetoCarregar.js.map +0 -1
  206. package/dist/projetoConfig.js.map +0 -1
  207. package/dist/projetoLegado.js.map +0 -1
  208. package/dist/projetoOrigens.js.map +0 -1
  209. package/dist/projetoResolucao.js.map +0 -1
  210. package/dist/projetoTipos.js.map +0 -1
  211. package/dist/python-http.js.map +0 -1
  212. package/dist/runnerValidacaoRemota.d.ts +0 -9
  213. package/dist/runnerValidacaoRemota.js +0 -9
  214. package/dist/runnerValidacaoRemota.js.map +0 -1
  215. package/dist/runnerValidacaoRemotaBateria.d.ts +0 -10
  216. package/dist/runnerValidacaoRemotaBateria.js +0 -117
  217. package/dist/runnerValidacaoRemotaBateria.js.map +0 -1
  218. package/dist/runnerValidacaoRemotaCli.d.ts +0 -4
  219. package/dist/runnerValidacaoRemotaCli.js +0 -86
  220. package/dist/runnerValidacaoRemotaCli.js.map +0 -1
  221. package/dist/runnerValidacaoRemotaComandos.d.ts +0 -7
  222. package/dist/runnerValidacaoRemotaComandos.js +0 -123
  223. package/dist/runnerValidacaoRemotaComandos.js.map +0 -1
  224. package/dist/runnerValidacaoRemotaEscopo.d.ts +0 -4
  225. package/dist/runnerValidacaoRemotaEscopo.js +0 -79
  226. package/dist/runnerValidacaoRemotaEscopo.js.map +0 -1
  227. package/dist/runnerValidacaoRemotaExecucao.d.ts +0 -2
  228. package/dist/runnerValidacaoRemotaExecucao.js +0 -104
  229. package/dist/runnerValidacaoRemotaExecucao.js.map +0 -1
  230. package/dist/runnerValidacaoRemotaRelatorio.d.ts +0 -3
  231. package/dist/runnerValidacaoRemotaRelatorio.js +0 -95
  232. package/dist/runnerValidacaoRemotaRelatorio.js.map +0 -1
  233. package/dist/runnerValidacaoRemotaServidor.d.ts +0 -4
  234. package/dist/runnerValidacaoRemotaServidor.js +0 -185
  235. package/dist/runnerValidacaoRemotaServidor.js.map +0 -1
  236. package/dist/runnerValidacaoRemotaSnapshot.d.ts +0 -10
  237. package/dist/runnerValidacaoRemotaSnapshot.js +0 -219
  238. package/dist/runnerValidacaoRemotaSnapshot.js.map +0 -1
  239. package/dist/runnerValidacaoRemotaTipos.d.ts +0 -158
  240. package/dist/runnerValidacaoRemotaTipos.js +0 -35
  241. package/dist/runnerValidacaoRemotaTipos.js.map +0 -1
  242. package/dist/runnerValidacaoRemotaUtil.d.ts +0 -3
  243. package/dist/runnerValidacaoRemotaUtil.js +0 -18
  244. package/dist/runnerValidacaoRemotaUtil.js.map +0 -1
  245. package/dist/runnerValidacaoRemotaWorkspace.d.ts +0 -2
  246. package/dist/runnerValidacaoRemotaWorkspace.js +0 -115
  247. package/dist/runnerValidacaoRemotaWorkspace.js.map +0 -1
  248. package/dist/rust-http.js.map +0 -1
  249. package/dist/semaChatCommand.d.ts +0 -1
  250. package/dist/semaChatCommand.js +0 -43
  251. package/dist/semaChatCommand.js.map +0 -1
  252. package/dist/semaChatRuntime.d.ts +0 -23
  253. package/dist/semaChatRuntime.js +0 -202
  254. package/dist/semaChatRuntime.js.map +0 -1
  255. package/dist/sync/index.js.map +0 -1
  256. package/dist/textoListas.js.map +0 -1
  257. package/dist/tipos.js.map +0 -1
  258. package/dist/typescript-http-body.js.map +0 -1
  259. package/dist/typescript-http-expressoes.js.map +0 -1
  260. package/dist/typescript-http-modelos.js.map +0 -1
  261. package/dist/typescript-http-rotas.js.map +0 -1
  262. package/dist/typescript-http-semantica.js.map +0 -1
  263. package/dist/typescript-http.js.map +0 -1
  264. package/docs/AGENT_STARTER.md +0 -147
  265. package/docs/agentes-por-capacidade.md +0 -130
  266. package/docs/api.md +0 -82
  267. package/docs/comandos.md +0 -807
  268. package/docs/como-ensinar-a-sema-para-ia.md +0 -30
  269. package/docs/documentacao.md +0 -74
  270. package/docs/extensao-vscode.md +0 -49
  271. package/docs/fluxo-pratico-ia-sema.md +0 -278
  272. package/docs/instalacao-e-primeiro-uso.md +0 -60
  273. package/docs/integracao-com-ia.md +0 -44
  274. package/docs/mcp.md +0 -69
  275. package/docs/pagamento-ponta-a-ponta.md +0 -171
  276. package/docs/persistencia-vendor-first.md +0 -151
  277. package/docs/prompt-base-ia-sema.md +0 -111
  278. package/docs/seguranca.md +0 -126
  279. package/docs/sintaxe.md +0 -390
  280. package/llms-full.txt +0 -40
  281. package/llms.txt +0 -23
@@ -4,7 +4,7 @@ import { mkdir, readFile, stat, writeFile } from 'node:fs/promises';
4
4
  import path from 'node:path';
5
5
  import { LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO, LIMITE_AVISO_LINHAS_CONTRATO_SEMA, LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO, LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA, } from './driftOrcamento.js';
6
6
  import { ARQUIVO_AGENT_CONTEXT_PACK, ARQUIVO_SEMA_BOOT, ARQUIVO_SEMA_SMALL_MODEL, } from './agentContextTipos.js';
7
- import { LIMITE_CARACTERES_PAYLOAD_INLINE_MCP } from './agentContextPack.js';
7
+ import { LIMITE_CARACTERES_PAYLOAD_INLINE } from './agentContextPack.js';
8
8
  const MARCADOR_SEMA_AGENT_ENTRYPOINT_INICIO = '<!-- sema:agent-entrypoint:start -->';
9
9
  const MARCADOR_SEMA_AGENT_ENTRYPOINT_FIM = '<!-- sema:agent-entrypoint:end -->';
10
10
  async function statSeguro(caminho) {
@@ -18,7 +18,7 @@ async function statSeguro(caminho) {
18
18
  function pareceEntradaSemaLegada(conteudo) {
19
19
  return /Sema.*Regras obrigat[oó]rias para IA/is.test(conteudo) ||
20
20
  /Sema.*Regras obrigatorias para IA/is.test(conteudo) ||
21
- /Sema.*Regras obrigatórias para IA/is.test(conteudo);
21
+ /Sema.*Regras obrigatórias para IA/is.test(conteudo);
22
22
  }
23
23
  function montarBlocoGerenciadoSema(conteudo) {
24
24
  return `${MARCADOR_SEMA_AGENT_ENTRYPOINT_INICIO}\n${conteudo.trim()}\n${MARCADOR_SEMA_AGENT_ENTRYPOINT_FIM}\n`;
@@ -68,7 +68,7 @@ Você está em um projeto governado por Sema. O contrato semântico vem antes de
68
68
  1. Em IDE local, confirme \`AGENTS.md\` na raiz e rode \`sema --version\`; se o comando não existir, pare. A IA não acessa o painel Sema: peça ao humano para instalar a CLI pelo painel.
69
69
  2. Chame \`sema preflight resumo --json\`; se \`decisao\` não for \`use_cli_local\`, pare bloqueado.
70
70
  3. Use a CLI local para ler o workspace: \`sema resumo\`, \`sema docs-impacto\`, \`sema inspecionar\`, \`sema drift\` e \`sema impacto\`.
71
- 4. Não use rota remota, sincronização externa ou leitura por espelho para substituir a CLI local quando a CLI estiver operacional.
71
+ 4. Não use fonte externa de workspace para substituir a CLI local quando a CLI estiver operacional.
72
72
  5. Este boot é para workspace local em disco; se não houver workspace local, pare bloqueado em vez de inventar caminho.
73
73
  6. Antes de criar módulo, rota, task ou contrato, inspecione o contrato \`.sema\` aplicável.
74
74
  7. Antes de editar código existente, rode drift e impacto pelo caminho autorizado da superfície atual.
@@ -101,7 +101,7 @@ ${politicaCodigo.regra}
101
101
  - 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.
102
102
  - 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.
103
103
  - 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.
104
- - Payload inline: acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE_MCP} caracteres em \`arquivos_codigo.conteudo\` ou \`conteudo\` não é timeout; divida por responsabilidade ou use anexo/caminho de servidor autorizado.
104
+ - 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.
105
105
  - 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.
106
106
  - 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.
107
107
  - Proibido fatiar arquivo em \`index_p1.html\`, \`index_p2.html\` ou similares sem fronteira semântica só para passar no limite.
@@ -118,7 +118,7 @@ Score composto, \`achados[]\` e \`decisaoAgente\` são sinais para guiar a próx
118
118
  - Forte: não transforme regex, palavra-chave ou score 100 em ritual vazio; valide substância, risco e comportamento.
119
119
  - 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.
120
120
  - 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.
121
- - Caminho de servidor ou espelho governado não é a pasta local do usuário.
121
+ - Caminho fora do workspace local aberto pelo usuário não substitui a pasta local.
122
122
 
123
123
  ## Acabamento visual e terminal
124
124
 
@@ -164,7 +164,7 @@ export function renderizarSemaSmallModel(agentContextPack) {
164
164
  Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use ou tendência a ignorar instruções longas.
165
165
 
166
166
  1. Não edite nada antes de chamar Sema.
167
- 2. Em IDE local, rode \`sema --version\`; se falhar, pare. A IA não acessa o painel Sema: peça ao humano para instalar a CLI pelo painel. Depois rode \`sema preflight resumo --json\`; só continue com \`use_cli_local\`; não use rota remota, sincronização externa ou leitura por espelho para workspace local.
167
+ 2. Em IDE local, rode \`sema --version\`; se falhar, pare. A IA não acessa o painel Sema: peça ao humano para instalar a CLI pelo painel. Depois rode \`sema preflight resumo --json\`; só continue com \`use_cli_local\`; não use fonte externa de workspace para substituir a CLI local.
168
168
  3. Sema não contorna políticas da plataforma: ele governa contrato, escopo, drift, evidência e qualidade.
169
169
  4. Se aparecer alerta de política: pare, explique de forma neutra e não tente burlar filtro.
170
170
  5. Se não houver workspace local em disco: pare bloqueado e peça o fluxo apropriado; não invente leitura por caminho.
@@ -177,8 +177,8 @@ Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use o
177
177
  12. Validação inline não dispensa cabeçalho \`${agentContextPack.politicaCodigoGovernado.marcador}\` no arquivo físico.
178
178
  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.
179
179
  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.
180
- 15. Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE_MCP} caracteres não é lentidão: divida por responsabilidade; não aumente timeout para tentar passar limite de transporte.
181
- 16. Caminho \`/srv/sema/projetos/...\` ou caminho de servidor é espelho governado, não a pasta local do usuário.
180
+ 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.
181
+ 16. Se aparecer caminho que não pertence ao workspace local aberto pelo usuário, pare e confirme a fonte antes de agir.
182
182
  17. Se Sema estourar por timeout local: aumente o timeout e tente de novo. Não trate isso como falha do Sema.
183
183
  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.
184
184
  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.
@@ -219,132 +219,99 @@ ${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
219
219
  `;
220
220
  }
221
221
  export function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
222
- const politicaDesign = agentContextPack.politicaDesignVisual;
223
- const politicaPlataforma = agentContextPack.politicaPlataforma;
224
- return `# Agentes por capacidade
225
-
226
- Sema deve funcionar em agentes fortes, médios e fracos. A diferença não é só tamanho de contexto; é disciplina operacional.
227
-
228
- ## Políticas da Plataforma
229
-
230
- ${politicaPlataforma.regra}
231
-
232
- - Escopo: ${politicaPlataforma.escopoGovernanca}
233
- - Se houver alerta externo: ${politicaPlataforma.quandoHouverBloqueio}
234
- - Fraca: ${politicaPlataforma.porCapacidade.fraca}
235
- - Média: ${politicaPlataforma.porCapacidade.media}
236
- - Forte: ${politicaPlataforma.porCapacidade.forte}
237
- - Proibido: ${politicaPlataforma.proibicoes.join(", ")}.
238
-
239
- ## Código Governado
240
-
241
- Arquivos gerados ou governados pela Sema devem manter o marcador \`${agentContextPack.politicaCodigoGovernado.marcador}\`.
242
- Orçamento semântico é regra: código governado com ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO}+ linhas exige plano de divisão e ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO}+ bloqueia. Contrato .sema avisa acima de ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} linhas e bloqueia acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}. Markdown documental não entra nesse limite de código.
243
- Contratos .sema devem ser divididos por domínio/capacidade real, nunca parte_1/parte_2; vários contratos podem governar o mesmo arquivo via vinculos.
244
- Validação inline 100/100 não remove essa obrigação: ela comprova aquele payload, mas o arquivo físico ainda precisa avisar a próxima IA que existe contrato.
245
-
246
- - Fraca: ${agentContextPack.politicaCodigoGovernado.porCapacidade.fraca}
247
- - Média: ${agentContextPack.politicaCodigoGovernado.porCapacidade.media}
248
- - Forte: ${agentContextPack.politicaCodigoGovernado.porCapacidade.forte}
249
-
250
- ## Payload e Transporte
251
-
252
- Payload inline em \`arquivos_codigo.conteudo\` ou \`conteudo\` tem limite de ${LIMITE_CARACTERES_PAYLOAD_INLINE_MCP} caracteres. Esse limite é de transporte e validação de entrada; não é timeout operacional.
253
-
254
- - Fraca: se aparecer \`too_big\`, payload grande ou arquivo grande, pare e divida por responsabilidade antes de chamar Sema de novo. Não aumente timeout para tentar empurrar o mesmo payload.
255
- - Média: em HTML/app estático, modularize em \`index.html\`, \`styles/*.css\`, \`js/state.js\`, \`js/render/*.js\` e \`data/*.json\`, cada arquivo governado com cabeçalho quando aplicável.
256
- - Forte: escolha o transporte correto: inline só até o limite; acima disso use anexo, caminho de servidor autorizado, manifesto/índice ou arquivos lógicos separados. Diagnostique reset/timeout como transporte/performance, não como permissão para monólito.
257
- - Proibido: resolver limite de transporte com \`index_p1.html\`/\`index_p2.html\`, aumentar timeout para passar \`too_big\`, ou remover dados essenciais só para a validação inline caber.
258
-
259
- ## Divisão por Responsabilidade
260
-
261
- Sema não manda quebrar HTML em pedaços artificiais. Ele manda manter arquivos pequenos, coesos e governáveis.
262
-
263
- - Fraca: se um arquivo crescer, pare e peça/execute divisão por responsabilidade antes de continuar.
264
- - Média: em projeto web, prefira \`index.html\`, \`styles/*.css\`, \`js/state.js\`, \`js/calc.js\`, \`js/render/*.js\` e \`data/*.json\`.
265
- - Forte: preserve arquitetura e experiência de uso, mas não use contexto grande como desculpa para monólito.
266
- - Proibido: \`index_p1.html\`, \`index_p2.html\` ou nomes semelhantes quando eles só escondem um arquivo gigante sem fronteira semântica.
267
-
268
- ## Sinal vs Ritual
269
-
270
- Score composto, \`achados[]\` e \`decisaoAgente\` são bons sinais operacionais. Abaixo de 80 bloqueia; alvo evolui 0.5 ponto até 100; vira teatro se a IA só coloca palavra-chave para passar.
271
-
272
- - Fraca: achado atendido precisa de evidência simples e visível.
273
- - Média: conecte cada regra a contrato, arquivo e comportamento esperado.
274
- - Forte: trate regex/palavra-chave como triagem, não como prova final de substância.
275
- - Drift: \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou impl quebrada bloqueiam conclusão mesmo que testes unitários tenham passado.
276
- - UI: responsividade real exige prova mobile/desktop; viewport estreito como 390px não pode ter \`scrollWidth\` maior que \`clientWidth\`.
277
- - Terminal/CLI/TUI: ergonomia real exige saída hierárquica, status, erros claros, ajuda e smoke check quando aplicável.
278
- - Caminho de servidor ou espelho governado não é o checkout local do usuário.
279
-
280
- ## Acabamento Visual E Terminal
281
-
282
- ${politicaDesign.regra}
283
-
284
- - Fraca: ${politicaDesign.porCapacidade.fraca}
285
- Evidência: ${politicaDesign.evidencias.fraca.join(", ")}.
286
- - Média: ${politicaDesign.porCapacidade.media}
287
- Evidência: ${politicaDesign.evidencias.media.join(", ")}.
288
- - Forte: ${politicaDesign.porCapacidade.forte}
289
- Evidência: ${politicaDesign.evidencias.forte.join(", ")}.
290
- - Proibido: ${politicaDesign.proibicoes.join(", ")}.
291
- - Critérios mínimos: ${politicaDesign.criteriosMinimos.join(", ")}.
292
-
293
- ## Fraca
294
-
295
- Use para Copilot em modo simples, Cline/Roo com pouco contexto, modelos locais pequenos e agentes que ignoram instrução longa.
296
-
297
- - Entrada: \`${ARQUIVO_SEMA_BOOT}\` -> \`${ARQUIVO_SEMA_SMALL_MODEL}\` -> \`SEMA_BRIEF.micro.txt\`.
298
- - Não abrir AST/IR completos no começo.
299
- - Não editar se Sema não respondeu.
300
- - Não pedir para ferramenta remota ler pasta local.
301
- - Não criar código governado acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} linhas nem contrato .sema acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}.
302
- - Não fatiar código ou contrato grande em partes artificiais; divida por responsabilidade real. Para .sema, use domínio/capacidade, nunca parte_1/parte_2.
303
- - Não aceitar score ou achado como prova sem evidência concreta.
304
-
305
- ## Média
306
-
307
- Use para agentes com bom contexto, mas sem garantia de seguir todos os gates.
308
-
309
- - Entrada: \`${ARQUIVO_SEMA_BOOT}\` -> \`${ARQUIVO_AGENT_CONTEXT_PACK}\` -> \`SEMA_BRIEF.curto.txt\` -> \`SEMA_INDEX.json\`.
310
- - Rodar docs-impacto antes de agir.
311
- - Validar drift e contrato no fechamento.
312
- - Tratar ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO}+ linhas em código como sinal de refatoração e ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO}+ como bloqueio. Para .sema, tratar ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA}+ como diagnóstico e ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}+ como bloqueio.
313
- - Em UI ou HTML estático, separar estrutura, estilos, estado, cálculo, renderização e dados antes de sincronizar.
314
- - Verificar se score, achados e decisão correspondem a regra real, não só termo copiado.
315
-
316
- ## Forte
317
-
318
- Use para Codex, Claude e agentes com tool use confiável.
319
-
320
- - Entrada: \`${ARQUIVO_SEMA_BOOT}\` -> \`${ARQUIVO_AGENT_CONTEXT_PACK}\` -> \`SEMA_BRIEF.md\` -> \`SEMA_INDEX.json\`.
321
- - Pode consumir AST/IR/drift completos.
322
- - Ainda deve respeitar contrato primeiro e falha fechada.
323
- - Não usar contexto grande como desculpa para monólito: IA forte também respeita ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} linhas para código e ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} para .sema.
324
- - Se validar inline, ainda preparar o arquivo físico para a próxima IA com cabeçalho governado e descrição humana.
325
- - Se o MCP usar caminho Linux, tratar como espelho remoto autorizado, não como leitura local do usuário.
326
-
327
- ## Timeout e Retry
328
-
329
- ${agentContextPack.politicaTimeoutResumo.regra}
330
-
331
- - Timeout inicial para resumo de projeto inteiro: ${agentContextPack.politicaTimeoutResumo.timeoutInicialSegundos}s.
332
- - Escalonamento recomendado: ${agentContextPack.politicaTimeoutResumo.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
333
- - Fraca: ${agentContextPack.politicaTimeoutResumo.porCapacidade.fraca}
334
- - Média: ${agentContextPack.politicaTimeoutResumo.porCapacidade.media}
335
- - Forte: ${agentContextPack.politicaTimeoutResumo.porCapacidade.forte}
336
- - ${agentContextPack.politicaTimeoutResumo.ateQuandoTentar}
337
-
338
- ## Idioma
339
-
340
- ${agentContextPack.politicaIdioma.regra}
341
-
342
- A gramática Sema pode ter palavras-chave ASCII. Isso não autoriza resposta humana sem acentos.
343
-
344
- ## Clientes
345
-
346
- ${agentContextPack.entrypointsClientes.map((cliente) => `- ${cliente.cliente}: ${cliente.arquivos.join(", ")}. Capacidade padrão: ${cliente.capacidadePadrao}. ${cliente.observacao}`).join("\n")}
347
- `;
222
+ const supportedCapacities = Object.keys(agentContextPack.guiaPorCapacidade).join(", ");
223
+ return [
224
+ "# AI Integration",
225
+ "",
226
+ "Sema is designed for AI agents with different context sizes and discipline",
227
+ "levels. The public repository documents the local CLI flow only: agents run the",
228
+ "CLI inside the project, read contracts, check drift, map impact, and close the",
229
+ "change with evidence.",
230
+ "",
231
+ `Supported capacity labels: ${supportedCapacities}.`,
232
+ "",
233
+ "## Local-Only Rule",
234
+ "",
235
+ "For a local workspace, use the local CLI:",
236
+ "",
237
+ "```bash",
238
+ "sema --version",
239
+ "sema preflight resumo --json",
240
+ "sema resumo",
241
+ "```",
242
+ "",
243
+ "Continue only when preflight returns `use_cli_local`. Do not replace the local",
244
+ "CLI with an external workspace source, external sync, or project-name guessing.",
245
+ "",
246
+ "## Before Editing",
247
+ "",
248
+ "```bash",
249
+ "sema docs-impacto --intencao \"describe the change\" --json",
250
+ "sema inspecionar contratos/example.sema --json",
251
+ "sema drift contratos/example.sema --escopo modulo --json",
252
+ "sema impacto contratos/example.sema --alvo app.example --mudanca \"describe the change\" --json",
253
+ "```",
254
+ "",
255
+ "Read every document listed by `docs-impacto` before changing code, contracts,",
256
+ "operational docs, generated artifacts, workflows, profiles, or release material.",
257
+ "",
258
+ "## Capacity Tiers",
259
+ "",
260
+ "Weak agents should start with `" + ARQUIVO_SEMA_BOOT + "`,",
261
+ "`" + ARQUIVO_SEMA_SMALL_MODEL + "`, `SEMA_BRIEF.micro.txt`,",
262
+ "`" + ARQUIVO_AGENT_CONTEXT_PACK + "`, and `SEMA_INDEX.json`. They should stop early",
263
+ "when a gate is unclear.",
264
+ "",
265
+ "Medium agents should start with `" + ARQUIVO_SEMA_BOOT + "`,",
266
+ "`" + ARQUIVO_AGENT_CONTEXT_PACK + "`, `SEMA_BRIEF.curto.txt`,",
267
+ "`SEMA_INDEX.json`, and `AGENTS.md`. They must run docs-impact, drift, and",
268
+ "impact before edits.",
269
+ "",
270
+ "Strong agents may consume `" + ARQUIVO_AGENT_CONTEXT_PACK + "`, `SEMA_BRIEF.md`,",
271
+ "`SEMA_INDEX.json`, AST, IR, drift, and impact outputs, but larger context does",
272
+ "not remove the contract-first rule.",
273
+ "",
274
+ "## Governed Code",
275
+ "",
276
+ "Generated or governed code should keep a short `SEMA-GOVERNED` marker that",
277
+ "points back to the applicable contract. The marker is not a substitute for",
278
+ "validation, drift, impact, or finalization gates.",
279
+ "",
280
+ `Governed code above ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO} lines requires a`,
281
+ `split plan. Governed code above ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO}`,
282
+ "lines blocks closure. Markdown documentation is not counted as governed code",
283
+ "size, but it is still governed by documentation and publication checks.",
284
+ "",
285
+ "## Contract Size",
286
+ "",
287
+ "`.sema` contracts above " + LIMITE_AVISO_LINHAS_CONTRATO_SEMA + " lines require a",
288
+ "split plan. Above " + LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA + " lines, do not keep",
289
+ "editing the same contract before splitting it by real domain or capability.",
290
+ "Never create artificial `parte_1` or `parte_2` files to hide a large contract.",
291
+ "",
292
+ "## Payload Size",
293
+ "",
294
+ "Inline payloads in `arquivos_codigo.conteudo` or `conteudo` are limited to",
295
+ `${LIMITE_CARACTERES_PAYLOAD_INLINE} characters. That is a transport/input limit,`,
296
+ "not an operational timeout. Split by responsibility or use an authorized file",
297
+ "path/attachment strategy instead of increasing timeouts to push the same payload.",
298
+ "",
299
+ "## UI And Terminal Work",
300
+ "",
301
+ "When the task involves a site, app, dashboard, form, game, CLI, TUI, or any",
302
+ "user-facing experience, closure requires evidence:",
303
+ "",
304
+ "- desktop and mobile validation for UI work;",
305
+ "- no horizontal overflow on narrow mobile viewports such as 390px;",
306
+ "- clear loading, empty, success, and error states when relevant;",
307
+ "- structured terminal output, clear errors, help, and smoke checks for CLI/TUI",
308
+ " work.",
309
+ "",
310
+ "## Platform Policy",
311
+ "",
312
+ "Sema governs contract, scope, drift, evidence, and quality. It does not bypass",
313
+ "platform policies, terms of use, permissions, security controls, or laws.",
314
+ ].join("\n");
348
315
  }
349
316
  function renderizarInstrucaoClienteSema(cliente, capacidade, agentContextPack) {
350
317
  const guia = agentContextPack.guiaPorCapacidade[capacidade];
@@ -359,7 +326,7 @@ Este workspace é governado por Sema. Antes de qualquer ação em código, contr
359
326
  1. Leia \`${ARQUIVO_SEMA_BOOT}\`.
360
327
  2. Em IDE local, rode \`sema --version\`; se falhar, pare. A IA não acessa o painel Sema: peça ao humano para instalar a CLI pelo painel. Depois rode \`sema preflight resumo --json\`; se \`decisao\` não for \`use_cli_local\`, pare.
361
328
  3. Use CLI local: \`sema resumo\`, \`sema docs-impacto\`, \`sema inspecionar\`, \`sema drift\` e \`sema impacto\`.
362
- 4. Não use rota remota, sincronização externa ou leitura por espelho para substituir a CLI local quando a CLI estiver operacional.
329
+ 4. Não use fonte externa de workspace para substituir a CLI local quando a CLI estiver operacional.
363
330
  5. Chame docs-impacto com a intenção declarada antes de agir.
364
331
  6. Chame inspecionar no contrato \`.sema\` aplicável.
365
332
  7. Antes de editar código existente, rode drift e impacto.
@@ -391,14 +358,14 @@ Código governado:
391
358
  - Ao encontrar esse marcador, volte ao contrato .sema aplicável e chame Sema antes de editar.
392
359
  - Comentário de código é lembrete curto; não substitui drift, docs-impacto nem finalizar-mudanca.
393
360
  - Validação inline prova o payload enviado; não dispensa o marcador no arquivo físico sincronizado.
394
- - Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE_MCP} caracteres não deve virar retry de timeout: modularize por responsabilidade ou use anexo/caminho de servidor autorizado.
361
+ - 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.
395
362
  - 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.
396
363
 
397
364
  Sinal e evidência:
398
365
  - 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.
399
366
  - Palavra-chave ou regex passando não prova governança se contrato, código e comportamento não batem.
400
367
  - \`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.
401
- - Caminho de servidor ou espelho governado do Sema não é pasta local do usuário.
368
+ - Caminho fora do workspace local aberto pelo usuário não substitui a pasta local.
402
369
 
403
370
  Acabamento visual e terminal:
404
371
  - 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.
@@ -415,46 +382,46 @@ Idioma:
415
382
  `;
416
383
  }
417
384
  function renderizarDocSintaxeSemaLocal(agentContextPack) {
418
- return `# Sintaxe Sema Para IA
385
+ return `# Sema Syntax for AI Agents
419
386
 
420
- Use este arquivo como referencia curta antes de criar ou corrigir contratos \`.sema\`.
387
+ Use this file as a compact reference before creating or fixing \`.sema\` contracts.
421
388
 
422
- ## Regra de ouro
389
+ ## Golden Rule
423
390
 
424
- Contrato vem antes de codigo. Antes de escrever \`.sema\`, consulte os exemplos locais em \`exemplos/\`.
391
+ Contract comes before code. Before writing \`.sema\`, read the local examples in \`exemplos/\`.
425
392
 
426
- ## Exemplo minimo
393
+ ## Minimal Example
427
394
 
428
395
  \`\`\`sema
429
- module app.exemplo {
396
+ module app.example {
430
397
  entity Item {
431
398
  fields {
432
399
  id: Id
433
- nome: Texto
434
- ativo: Booleano
400
+ name: Texto
401
+ active: Booleano
435
402
  }
436
403
  }
437
404
 
438
- task criar_item {
405
+ task create_item {
439
406
  input {
440
- nome: Texto required
407
+ name: Texto required
441
408
  }
442
409
  output {
443
410
  item: Item
444
411
  }
445
412
  rules {
446
- nome deve_ser preenchido
413
+ name deve_ser preenchido
447
414
  }
448
415
  effects {
449
416
  persistencia Item
450
- auditoria item_criado
417
+ auditoria item_created
451
418
  }
452
419
  guarantees {
453
420
  item existe
454
421
  }
455
422
  tests {
456
- caso "cria item valido" {
457
- given { nome: "Item" }
423
+ caso "creates valid item" {
424
+ given { name: "Item" }
458
425
  expect { sucesso: verdadeiro }
459
426
  }
460
427
  }
@@ -462,23 +429,23 @@ module app.exemplo {
462
429
  }
463
430
  \`\`\`
464
431
 
465
- ## Blocos mais usados
432
+ ## Common Blocks
466
433
 
467
- - \`docs\`: resumo e notas do modulo.
468
- - \`entity\`: modelo de dominio.
469
- - \`task\`: operacao governada.
470
- - \`input\` e \`output\`: contrato de entrada e saida.
471
- - \`rules\`: validacoes e regras de negocio.
472
- - \`effects\`: persistencia, consulta, evento, auditoria e chamadas externas.
473
- - \`guarantees\`: o que a task precisa entregar se tiver sucesso.
474
- - \`error\`: erros nomeados e mensagens.
475
- - \`tests\`: casos minimos de comportamento.
476
- - \`route\`: superficie publica vinculada a uma task.
477
- - \`impl\` e \`vinculos\`: ligacao entre contrato e codigo real.
434
+ - \`docs\`: module summary and notes.
435
+ - \`entity\`: domain model.
436
+ - \`task\`: governed operation.
437
+ - \`input\` and \`output\`: input and output contracts.
438
+ - \`rules\`: validations and business rules.
439
+ - \`effects\`: persistence, reads, events, audit, and external calls.
440
+ - \`guarantees\`: what the task must provide after success.
441
+ - \`error\`: named errors and messages.
442
+ - \`tests\`: minimal behavior examples.
443
+ - \`route\`: public surface linked to a task.
444
+ - \`impl\` and \`vinculos\`: links between the contract and real code.
478
445
 
479
- ## Origens canonicas de \`use\` e \`impl\`
446
+ ## Canonical \`use\` and \`impl\` Origins
480
447
 
481
- Use estas origens em contratos antes de inventar palavra nova:
448
+ Use these origins before inventing a new one:
482
449
 
483
450
  - \`ts\` ou \`typescript\`
484
451
  - \`js\` ou \`javascript\`
@@ -491,62 +458,62 @@ Use estas origens em contratos antes de inventar palavra nova:
491
458
  - \`rust\`
492
459
  - \`cpp\`
493
460
 
494
- Exemplos:
461
+ Examples:
495
462
 
496
463
  \`\`\`sema
497
- use javascript app.web.despesas
464
+ use javascript app.web.expenses
498
465
 
499
466
  impl {
500
- js: src.app.salvarDespesa
467
+ js: src.app.saveExpense
501
468
  }
502
469
  \`\`\`
503
470
 
504
- \`sema compilar --alvo javascript\` define o alvo de geracao. \`impl { js: ... }\` define a origem do codigo vivo ligado ao contrato. Sao camadas diferentes e ambas sao validas.
471
+ \`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.
505
472
 
506
- ## Listas canonicas pequenas
473
+ ## Small Canonical Lists
507
474
 
508
475
  - \`effects\`: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
509
476
  - \`audit.motivo\`: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
510
477
 
511
- ## Tamanho de contrato .sema
478
+ ## Contract Size
512
479
 
513
- - ate ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} linhas: saudavel
514
- - ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA + 1}-${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} linhas: diagnostico, planeje split
515
- - acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}: bloqueia criacao, edicao, drift, finalizacao, geracao e snapshot
516
- - divida por dominio/capacidade real, como \`despesas_cadastro.sema\`, \`despesas_totais.sema\`, \`despesas_persistencia.sema\`
517
- - nunca use \`parte_1\`, \`parte_2\`, \`part_3\` ou nomes equivalentes
518
- - nao remova \`guarantees\`, \`tests\`, \`authz\`, \`dados\` ou \`vinculos\` so para caber no limite
519
- - varios contratos \`.sema\` podem governar o mesmo arquivo de codigo via \`vinculos\`; isso e esperado
480
+ - up to ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} lines: healthy
481
+ - ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA + 1}-${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} lines: diagnostic warning, plan a split
482
+ - above ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}: blocks creation, edits, drift, finalization, generation, and snapshots
483
+ - split by real domain/capability, such as \`expenses_entry.sema\`, \`expenses_totals.sema\`, \`expenses_persistence.sema\`
484
+ - never use \`parte_1\`, \`parte_2\`, \`part_3\`, or equivalent names
485
+ - do not remove \`guarantees\`, \`tests\`, \`authz\`, \`dados\`, or \`vinculos\` just to fit under the limit
486
+ - multiple \`.sema\` contracts may govern the same code file through \`vinculos\`; this is expected
520
487
 
521
- ## JavaScript existe
488
+ ## JavaScript Is Supported
522
489
 
523
- A CLI suporta geracao JavaScript. Use:
490
+ The CLI supports JavaScript generation:
524
491
 
525
492
  \`\`\`bash
526
- sema compilar contratos/pedidos.sema --alvo javascript --saida ./generated/javascript
493
+ sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
527
494
  \`\`\`
528
495
 
529
- O projeto tambem pode gerar TypeScript, Python, Dart, Lua, HTML e CSS quando esses alvos estiverem em \`sema.config.json\`.
496
+ The project can also generate TypeScript, Python, Dart, Lua, HTML, and CSS when those targets are enabled in \`sema.config.json\`.
530
497
 
531
- ## Arquivos de apoio
498
+ ## Support Files
532
499
 
533
- - \`AGENTS.md\`: regras obrigatorias do agente.
534
- - \`${ARQUIVO_SEMA_BOOT}\`: primeira leitura para qualquer IA.
535
- - \`${ARQUIVO_SEMA_SMALL_MODEL}\`: versao curta para IA fraca.
536
- - \`${ARQUIVO_AGENT_CONTEXT_PACK}\`: pacote estruturado para agentes.
537
- - \`SEMA_INDEX.json\`: indice do projeto.
538
- - \`docs/comandos.md\`: catalogo de comandos, gates e regra de \`--saida\`.
539
- - \`exemplos/\`: exemplos oficiais da DSL.
500
+ - \`AGENTS.md\`: required agent rules.
501
+ - \`${ARQUIVO_SEMA_BOOT}\`: first read for every AI agent.
502
+ - \`${ARQUIVO_SEMA_SMALL_MODEL}\`: short version for weaker agents.
503
+ - \`${ARQUIVO_AGENT_CONTEXT_PACK}\`: structured agent context pack.
504
+ - \`SEMA_INDEX.json\`: project index.
505
+ - \`docs/commands.md\`: command catalog, gates, and \`--saida\` rule.
506
+ - \`exemplos/\`: official DSL examples.
540
507
 
541
- Se a IA nao souber qual forma usar, ela deve abrir \`exemplos/calculadora.sema\`, \`exemplos/crud_simples.sema\`, \`exemplos/pagamento.sema\` ou \`exemplos/tratamento_erro.sema\` antes de inventar sintaxe.
508
+ If an AI agent 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.
542
509
 
543
- Politica de plataforma: ${agentContextPack.politicaPlataforma.regra}
510
+ Platform policy: ${agentContextPack.politicaPlataforma.regra}
544
511
  `;
545
512
  }
546
513
  function renderizarDocFluxoPraticoSemaLocal(agentContextPack) {
547
- return `# Fluxo Pratico IA + Sema
514
+ return `# Practical AI + Sema Workflow
548
515
 
549
- Este e o fluxo minimo para agentes em workspace local.
516
+ This is the minimum workflow for agents in a local workspace.
550
517
 
551
518
  1. Leia \`${ARQUIVO_SEMA_BOOT}\`.
552
519
  2. Rode \`sema --version\`.
@@ -554,45 +521,45 @@ Este e o fluxo minimo para agentes em workspace local.
554
521
  4. Rode \`sema resumo\`.
555
522
  5. Rode \`sema docs-impacto --intencao "<acao>" --json\`.
556
523
  6. Leia a documentacao obrigatoria retornada.
557
- 7. Antes de escolher comando ou interpretar \`--saida\`, leia \`docs/comandos.md\`.
558
- 8. Antes de criar ou editar contrato, use \`exemplos/\` e \`docs/sintaxe.md\`.
524
+ 7. Antes de escolher comando ou interpretar \`--saida\`, leia \`docs/commands.md\`.
525
+ 8. Antes de criar ou editar contrato, use \`exemplos/\` e \`docs/syntax.md\`.
559
526
  9. Antes de editar codigo existente, rode \`sema drift\` e \`sema impacto\`.
560
527
  10. Depois de alterar \`.sema\`, rode \`sema formatar\` e \`sema validar\`.
561
528
  11. Antes de concluir, rode \`sema finalizar-mudanca\` com as docs lidas.
562
529
 
563
- Regra de edicao de contrato: \`.sema\` tem limite proprio. Acima de ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} linhas, planeje split por dominio/capacidade; acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}, nao crie nem edite antes de dividir. Nao use parte_1/parte_2 e nao force relacao 1:1 entre contrato e arquivo; varios contratos podem governar o mesmo arquivo por \`vinculos\`.
530
+ 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\`.
564
531
 
565
- Regra de fechamento: \`sema drift --json\` precisa retornar \`sucesso:true\`. Se houver \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou impl quebrada, a tarefa ainda esta bloqueada. Teste unitario verde nao substitui drift verde.
532
+ 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.
566
533
 
567
- Regra de UI: se a tarefa envolve interface, a evidencia minima inclui desktop e mobile. Em viewport estreito como 390px, \`document.documentElement.scrollWidth <= document.documentElement.clientWidth\` precisa passar; scroll horizontal bloqueia a conclusao.
534
+ 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.
568
535
 
569
- ## Capacidade
536
+ ## Agent Capacity
570
537
 
571
- - IA fraca: \`${ARQUIVO_SEMA_SMALL_MODEL}\`, \`SEMA_BRIEF.micro.txt\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_INDEX.json\`.
572
- - IA media: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\`, \`AGENTS.md\`.
573
- - IA forte: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, AST, IR, drift e impacto.
538
+ - Weak agent: \`${ARQUIVO_SEMA_SMALL_MODEL}\`, \`SEMA_BRIEF.micro.txt\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_INDEX.json\`.
539
+ - Medium agent: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\`, \`AGENTS.md\`.
540
+ - Strong agent: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, AST, IR, drift, and impact.
574
541
 
575
- ## Quando gerar codigo
542
+ ## When to Generate Code
576
543
 
577
- Se a entrega inclui codigo derivado do contrato, rode \`sema compilar\`.
544
+ If the delivery includes code derived from a contract, run \`sema compilar\`.
578
545
 
579
546
  \`\`\`bash
580
- sema compilar contratos/pedidos.sema --alvo javascript --saida ./generated/javascript
547
+ sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
581
548
  \`\`\`
582
549
 
583
- Troque \`javascript\` por \`typescript\`, \`python\`, \`dart\`, \`lua\`, \`html\` ou \`css\` quando fizer sentido.
550
+ Replace \`javascript\` with \`typescript\`, \`python\`, \`dart\`, \`lua\`, \`html\`, or \`css\` when appropriate.
584
551
 
585
- ## Falha fechada
552
+ ## Fail Closed
586
553
 
587
554
  ${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
588
555
  `;
589
556
  }
590
557
  function renderizarDocComandosSemaLocal(agentContextPack) {
591
- return `# Catalogo de comandos Sema
558
+ return `# Sema Command Catalog
592
559
 
593
- Use este arquivo quando a IA nao souber qual comando chamar. Comando Sema e gate operacional; nao substitua por relatorio Markdown.
560
+ Use this file when an AI agent does not know which command to run. A Sema command is an operational gate; do not replace it with a Markdown report.
594
561
 
595
- ## Fluxo minimo local
562
+ ## Minimum Local Flow
596
563
 
597
564
  \`\`\`bash
598
565
  sema --version
@@ -601,118 +568,115 @@ sema resumo
601
568
  sema docs-impacto --intencao "<acao>" --json
602
569
  \`\`\`
603
570
 
604
- Depois leia as docs obrigatorias retornadas por \`docs-impacto\`.
571
+ Then read every required doc returned by \`docs-impacto\`.
605
572
 
606
- ## Contrato e descoberta
573
+ ## Contract and Discovery
607
574
 
608
- - \`sema iniciar --template <template>\`: cria projeto Sema novo com contrato, docs, exemplos e kit IA.
609
- - \`sema validar <arquivo-ou-pasta> --json\`: valida contrato \`.sema\`.
610
- - \`sema diagnosticos <arquivo.sema> --json\`: detalha erros e avisos.
611
- - \`sema formatar <arquivo-ou-pasta>\`: formata contrato.
612
- - \`sema inspecionar <arquivo-ou-pasta> --json\`: mostra modulos, tasks, routes, entidades, vinculos e arquivos esperados.
613
- - \`sema ast <arquivo.sema> --json\`: mostra AST para depurar sintaxe.
614
- - \`sema ir <arquivo.sema> --json\`: mostra a IR que os gates e geradores enxergam.
575
+ - \`sema iniciar --template <template>\`: creates a new Sema project with a contract, docs, examples, and AI kit.
576
+ - \`sema validar <arquivo-ou-pasta> --json\`: validates \`.sema\` contracts.
577
+ - \`sema diagnosticos <arquivo.sema> --json\`: details errors and warnings.
578
+ - \`sema formatar <arquivo-ou-pasta>\`: formats contracts.
579
+ - \`sema inspecionar <arquivo-ou-pasta> --json\`: shows modules, tasks, routes, entities, links, and expected files.
580
+ - \`sema ast <arquivo.sema> --json\`: shows AST for syntax debugging.
581
+ - \`sema ir <arquivo.sema> --json\`: shows the IR used by gates and generators.
615
582
 
616
- ## Mudanca e fechamento
583
+ ## Change and Closure
617
584
 
618
- - \`sema docs-impacto --intencao "<acao>" --json\`: descobre docs obrigatorias e bloqueios documentais.
619
- - \`sema drift <arquivo-ou-pasta> --escopo modulo --json\`: compara contrato e implementacao.
620
- - \`sema impacto <arquivo-ou-pasta> --alvo <token> --mudanca "<descricao>" --json\`: mapeia impacto antes de alterar comportamento.
621
- - \`sema verificar <arquivo-ou-pasta> --json\`: verificacao final agregada.
622
- - \`sema finalizar-mudanca --intencao "<acao>" --doc-lida <arquivo> --json\`: comprova leitura documental antes de concluir.
585
+ - \`sema docs-impacto --intencao "<acao>" --json\`: discovers required docs and documentary blockers.
586
+ - \`sema drift <arquivo-ou-pasta> --escopo modulo --json\`: compares contract and implementation.
587
+ - \`sema impacto <arquivo-ou-pasta> --alvo <token> --mudanca "<descricao>" --json\`: maps impact before changing behavior.
588
+ - \`sema verificar <arquivo-ou-pasta> --json\`: runs aggregated final verification.
589
+ - \`sema finalizar-mudanca --intencao "<acao>" --doc-lida <arquivo> --json\`: proves documentation reading before closure.
623
590
 
624
- Fechamento honesto: trate o JSON do drift como fonte de verdade. \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou impls quebradas significam que a mudanca ainda nao esta concluida. Nao relate "drift limpo" sem esse JSON verde.
591
+ 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.
625
592
 
626
- ## Sema Codigo
593
+ ## Sema Code
627
594
 
628
- - \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio>\`: gera esqueleto/artefatos de apoio a partir do contrato.
629
- - \`sema testar <arquivo.sema> --alvo <alvo> --saida <diretorio-temporario>\`: gera e executa testes locais quando o alvo suporta.
630
- - \`sema importar <fonte> <diretorio> --saida <diretorio> --json\`: importa projeto legado para contratos iniciais.
631
- - \`sema renomear-semantico <arquivo-ou-pasta> --de <nome> --para <nome> --json\`: ajuda a renomear simbolos semanticamente.
595
+ - \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio>\`: generates starter/support artifacts from the contract.
596
+ - \`sema testar <arquivo.sema> --alvo <alvo> --saida <diretorio-temporario>\`: generates and runs local tests when the target supports it.
597
+ - \`sema importar <fonte> <diretorio> --saida <diretorio> --json\`: imports a legacy project into initial contracts.
598
+ - \`sema renomear-semantico <arquivo-ou-pasta> --de <nome> --para <nome> --json\`: helps rename symbols semantically.
632
599
 
633
- Regra de \`--saida\`: a pasta informada em \`sema compilar --saida\` e saida gerada. Ela nao e entrega final por si so. A entrega final sao os arquivos alvo/vinculos declarados no contrato. Se o contrato pede \`index.html\`, \`css/styles.css\` e \`js/app.js\`, criar apenas \`saida/controle_despesas.ts\` nao conclui a tarefa.
600
+ 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.
634
601
 
635
- Regra de rastreabilidade do Sema Codigo: os artefatos gerados devem apontar o modulo/contrato de origem e preservar que um mesmo arquivo final pode ser governado por varios contratos \`.sema\` via \`vinculos\`. Nao force relacao 1:1 contrato-arquivo e nao trate \`saida/\` como projeto final.
602
+ 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.
636
603
 
637
- Regra de UI pronta: se a tarefa gerar app, site, dashboard, formulario ou HTML estatico, rode validacao visual desktop/mobile quando a superficie permitir. Em mobile estreito (ex. 390px), \`scrollWidth <= clientWidth\` precisa passar; layout que empilha mas estoura horizontalmente nao e responsivo.
604
+ 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.
638
605
 
639
- ## Listas canonicas de sintaxe
606
+ ## Canonical Syntax Lists
640
607
 
641
- - Origens de \`use\` e \`impl\`: \`ts/typescript\`, \`js/javascript\`, \`py/python\`, \`dart\`, \`lua\`, \`cs/dotnet\`, \`java\`, \`go\`, \`rust\`, \`cpp\`.
642
- - Categorias frequentes de \`effects\`: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
643
- - Valores aceitos em \`audit.motivo\`: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
608
+ - Origins for \`use\` and \`impl\`: \`ts/typescript\`, \`js/javascript\`, \`py/python\`, \`dart\`, \`lua\`, \`cs/dotnet\`, \`java\`, \`go\`, \`rust\`, \`cpp\`.
609
+ - Frequent \`effects\` categories: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
610
+ - Accepted \`audit.motivo\` values: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
644
611
 
645
- \`sema compilar --alvo javascript\` e alvo de geracao. \`impl { js: ... }\` e origem do codigo vivo. Nao troque um pelo outro.
612
+ \`sema compilar --alvo javascript\` is a generation target. \`impl { js: ... }\` is the live-code origin. Do not swap one for the other.
646
613
 
647
- ## IA e contexto
614
+ ## AI and Context
648
615
 
649
- - \`sema ajuda-ia\`: orientacao curta para agentes.
650
- - \`sema starter-ia\`: starter de operacao.
651
- - \`sema contexto-ia <arquivo.sema> --saida <dir> --json\`: pacote de contexto para IA.
652
- - \`sema prompt-curto <arquivo-ou-pasta> --json\`: prompt compacto.
653
- - \`sema sync-ai-entrypoints --json\`: sincroniza AGENTS, boot, pack e docs locais.
654
- - \`sema instalar-exemplos --json\`: instala exemplos oficiais no workspace.
655
- - \`sema exemplos-prompt-ia\`: mostra exemplos de prompts, nao exemplos \`.sema\`.
616
+ - \`sema ajuda-ia\`: short guidance for agents.
617
+ - \`sema starter-ia\`: operational starter.
618
+ - \`sema contexto-ia <arquivo.sema> --saida <dir> --json\`: AI context package.
619
+ - \`sema prompt-curto <arquivo-ou-pasta> --json\`: compact prompt.
620
+ - \`sema sync-ai-entrypoints --json\`: synchronizes AGENTS, boot, pack, and local docs.
621
+ - \`sema instalar-exemplos --json\`: installs official examples in the workspace.
622
+ - \`sema exemplos-prompt-ia\`: shows prompt examples, not \`.sema\` examples.
656
623
 
657
624
  ## Profiles e Author
658
625
 
659
- - \`sema author iniciar|validar|briefing|revisar-cliches|validar-narrativa|validar-proibicoes\`: governa escrita autoral.
660
- - \`sema profile validar <software|workflow|ops|game|legal|research|redacao|propostas|conversas> <arquivo> --json\`: valida artefato por profile.
661
- - \`sema profile capabilities --json\`: lista profiles/capacidades.
662
- - \`sema rule-packs --profile <profile> --json\`: lista pacotes de regras.
626
+ - \`sema author iniciar|validar|briefing|revisar-cliches|validar-narrativa|validar-proibicoes\`: governs authorial writing.
627
+ - \`sema profile validar <software|workflow|ops|game|legal|research|redacao|propostas|conversas> <arquivo> --json\`: validates an artifact by profile.
628
+ - \`sema profile capabilities --json\`: lists profiles/capabilities.
629
+ - \`sema rule-packs --profile <profile> --json\`: lists rule packs.
663
630
 
664
- ## Operacional
631
+ ## Operational
665
632
 
666
- - \`sema doctor\`: diagnostica instalacao local.
667
- - \`sema chat doctor --json\`: diagnostica Sema Chat/OpenCode local.
668
- - \`sema mcp-instalar-chave --stdin --json\`: instala chave obtida pelo humano no painel.
669
- - \`sema runner validar-remoto --snapshot <arquivo.json|-> --saida <dir> --json\`: validacao remota por snapshot.
633
+ - \`sema doctor\`: diagnoses local installation.
670
634
 
671
- ## Proibido
635
+ ## Forbidden
672
636
 
673
- - Nao usar rota remota, sincronizacao externa ou leitura por espelho para ler workspace local quando \`sema --version\` funciona.
674
- - Nao procurar \`.sema\` no disco inteiro para aprender sintaxe; use \`exemplos/\`, \`docs/sintaxe.md\` e este catalogo.
675
- - Nao encerrar depois de \`sema compilar\` se os arquivos alvo do contrato ainda nao existem.
676
- - Nao trocar \`sema compilar\` por \`sema testar\` quando o Guard pede Sema Codigo.
677
- - Nao criar relatorio Markdown para fingir que rodou gate.
678
- - Nao dizer que drift passou quando \`sema drift --json\` retornou \`sucesso:false\`, vinculo quebrado, rota divergente ou impl quebrada.
679
- - Nao declarar UI responsiva sem prova mobile/desktop; scroll horizontal em 390px bloqueia.
637
+ - Do not use an external workspace source to inspect a local workspace when \`sema --version\` works.
638
+ - Do not search the entire disk for \`.sema\` syntax; use \`exemplos/\`, \`docs/syntax.md\`, and this catalog.
639
+ - Do not stop after \`sema compilar\` if the contract target files still do not exist.
640
+ - Do not replace \`sema compilar\` with \`sema testar\` when Guard asks for Sema Code.
641
+ - Do not create a Markdown report to pretend a gate ran.
642
+ - Do not say drift passed when \`sema drift --json\` returned \`sucesso:false\`, broken link, divergent route, or broken impl.
643
+ - Do not declare a UI responsive without mobile/desktop proof; horizontal scroll at 390px blocks closure.
680
644
 
681
- Politica de codigo governado: ${agentContextPack.politicaCodigoGovernado.regra}
645
+ Governed code policy: ${agentContextPack.politicaCodigoGovernado.regra}
682
646
  `;
683
647
  }
684
648
  function renderizarAgentStarterLocal(agentContextPack) {
685
649
  return `# Agent Starter
686
650
 
687
- Voce esta em um projeto governado por Sema.
651
+ You are in a Sema-governed project.
688
652
 
689
- Leia nesta ordem:
653
+ Read in this order:
690
654
 
691
655
  1. \`${ARQUIVO_SEMA_BOOT}\`
692
656
  2. \`${ARQUIVO_AGENT_CONTEXT_PACK}\`
693
657
  3. \`SEMA_INDEX.json\`
694
658
  4. \`AGENTS.md\`
695
- 5. \`docs/comandos.md\`
696
- 6. \`docs/sintaxe.md\`
659
+ 5. \`docs/commands.md\`
660
+ 6. \`docs/syntax.md\`
697
661
  7. \`exemplos/\`
698
662
 
699
- Comandos basicos:
663
+ Basic commands:
700
664
 
701
665
  \`\`\`bash
702
666
  sema --version
703
667
  sema preflight resumo --json
704
668
  sema resumo
705
669
  sema docs-impacto --intencao "<acao>" --json
706
- sema validar contratos/pedidos.sema --json
707
- sema drift contratos/pedidos.sema --escopo modulo --json
708
- sema compilar contratos/pedidos.sema --alvo javascript --saida ./generated/javascript
670
+ sema validar contratos/orders.sema --json
671
+ sema drift contratos/orders.sema --escopo modulo --json
672
+ sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
709
673
  \`\`\`
710
674
 
711
- Nao substitua esses gates por busca local, chute pelo nome do arquivo ou leitura aleatoria de contratos fora do projeto.
675
+ Do not replace these gates with local search, guessing from a filename, or random contract reading outside the project.
712
676
 
713
- Fechamento nao e opiniao: \`sema drift --json\` precisa estar verde. \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou impls quebradas bloqueiam conclusao.
677
+ Closure is not an opinion: \`sema drift --json\` must be green. \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or broken impls block closure.
714
678
 
715
- UI pronta exige prova: desktop/mobile e viewport estreito sem overflow horizontal (\`scrollWidth <= clientWidth\`).
679
+ Ready UI requires proof: desktop/mobile and a narrow viewport without horizontal overflow (\`scrollWidth <= clientWidth\`).
716
680
 
717
681
  ${agentContextPack.politicaCodigoGovernado.regra}
718
682
  `;
@@ -725,10 +689,9 @@ export async function sincronizarEntryPointsAgentes(baseProjeto, agentContextPac
725
689
  resultados.push({ caminho: relativo, status });
726
690
  };
727
691
  await registrar("AGENTS.md", renderizarInstrucaoClienteSema("generico", "media", agentContextPack), true);
728
- await registrar("docs/sintaxe.md", renderizarDocSintaxeSemaLocal(agentContextPack), true);
729
- await registrar("docs/fluxo-pratico-ia-sema.md", renderizarDocFluxoPraticoSemaLocal(agentContextPack), true);
730
- await registrar("docs/comandos.md", renderizarDocComandosSemaLocal(agentContextPack), true);
731
- await registrar("docs/AGENT_STARTER.md", renderizarAgentStarterLocal(agentContextPack), true);
692
+ await registrar("docs/syntax.md", renderizarDocSintaxeSemaLocal(agentContextPack), true);
693
+ await registrar("docs/ai-workflow.md", renderizarDocFluxoPraticoSemaLocal(agentContextPack), true);
694
+ await registrar("docs/commands.md", renderizarDocComandosSemaLocal(agentContextPack), true);
732
695
  await registrar(".github/copilot-instructions.md", renderizarInstrucaoClienteSema("copilot", "media", agentContextPack), true);
733
696
  const clinePath = path.join(baseProjeto, ".clinerules");
734
697
  const clineStat = await statSeguro(clinePath);