@semacode/cli 1.5.47 → 1.5.52

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 (320) 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 +70 -48
  7. package/dist/agentContextTipos.d.ts +2 -2
  8. package/dist/agentContextTipos.js +7 -13
  9. package/dist/agentEntryPoints.js +311 -271
  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.part01.d.ts +1 -1
  18. package/dist/drift.part04.d.ts +1 -1
  19. package/dist/drift.part04.js +2 -2
  20. package/dist/drift.part05.d.ts +3 -3
  21. package/dist/drift.part05.js +8 -8
  22. package/dist/drift.part06.js +15 -8
  23. package/dist/drift.part09.js +11 -7
  24. package/dist/drift.part14.js +18 -3
  25. package/dist/driftOrcamento.d.ts +11 -1
  26. package/dist/driftOrcamento.js +49 -20
  27. package/dist/index.d.ts +0 -6
  28. package/dist/index.js +0 -6
  29. package/dist/index.part01.d.ts +1 -1
  30. package/dist/index.part01.js +1 -3
  31. package/dist/index.part02.js +4 -2
  32. package/dist/index.part04.js +7 -7
  33. package/dist/index.part08.js +1 -22
  34. package/dist/initTemplatesBase.js +5 -5
  35. package/dist/profileArtefatoValidadores.js +42 -0
  36. package/dist/profileI18nCatalogo.js +2 -0
  37. package/dist/projetoConfig.js +7 -0
  38. package/dist/projetoLegado.js +10 -3
  39. package/dist/sync/index.js +1 -1
  40. package/dist/tipos.d.ts +1 -1
  41. package/docs/README.md +19 -0
  42. package/docs/ai-integration.md +90 -0
  43. package/docs/ai-onboarding.md +33 -0
  44. package/docs/ai-workflow.md +62 -0
  45. package/docs/auth.md +16 -0
  46. package/docs/cli.md +36 -95
  47. package/docs/commands.md +90 -0
  48. package/docs/database.md +15 -0
  49. package/docs/deploy.md +6 -38
  50. package/docs/documentation.md +39 -0
  51. package/docs/env.md +8 -109
  52. package/docs/frontend.md +41 -0
  53. package/docs/getting-started.md +33 -0
  54. package/docs/i18n.md +15 -0
  55. package/docs/profiles.md +43 -0
  56. package/docs/repositories.md +19 -61
  57. package/docs/rollback.md +9 -20
  58. package/docs/security.md +24 -0
  59. package/docs/support.md +8 -0
  60. package/docs/syntax.md +128 -0
  61. package/docs/testing.md +17 -0
  62. package/docs/vocabulary.md +28 -0
  63. package/node_modules/@sema/gerador-css/dist/index.part01.js +1 -0
  64. package/node_modules/@sema/gerador-css/dist/index.part01.js.map +1 -1
  65. package/node_modules/@sema/gerador-css/package.json +1 -1
  66. package/node_modules/@sema/gerador-dart/dist/index.js +1 -0
  67. package/node_modules/@sema/gerador-dart/dist/index.js.map +1 -1
  68. package/node_modules/@sema/gerador-dart/package.json +1 -1
  69. package/node_modules/@sema/gerador-html/dist/index.js +1 -0
  70. package/node_modules/@sema/gerador-html/dist/index.js.map +1 -1
  71. package/node_modules/@sema/gerador-html/package.json +1 -1
  72. package/node_modules/@sema/gerador-javascript/dist/index.js +1 -0
  73. package/node_modules/@sema/gerador-javascript/dist/index.js.map +1 -1
  74. package/node_modules/@sema/gerador-javascript/package.json +1 -1
  75. package/node_modules/@sema/gerador-lua/dist/index.js +11 -0
  76. package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
  77. package/node_modules/@sema/gerador-lua/package.json +1 -1
  78. package/node_modules/@sema/gerador-python/dist/index.part02.js +1 -0
  79. package/node_modules/@sema/gerador-python/dist/index.part02.js.map +1 -1
  80. package/node_modules/@sema/gerador-python/package.json +1 -1
  81. package/node_modules/@sema/gerador-typescript/dist/index.part02.js +1 -0
  82. package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +1 -1
  83. package/node_modules/@sema/gerador-typescript/package.json +1 -1
  84. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +1 -1
  85. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js +1 -1
  86. package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +1 -1
  87. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js +4 -0
  88. package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +1 -1
  89. package/node_modules/@sema/nucleo/dist/ir/conversor.part02.d.ts +1 -1
  90. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +3 -3
  91. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js +3 -0
  92. package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +1 -1
  93. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +2 -2
  94. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +4 -1
  95. package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +1 -1
  96. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.d.ts +2 -2
  97. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js +11 -5
  98. package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +1 -1
  99. package/node_modules/@sema/nucleo/package.json +1 -1
  100. package/node_modules/@sema/padroes/package.json +1 -1
  101. package/package.json +15 -22
  102. package/AGENTS.md +0 -324
  103. package/AGENT_CONTEXT_PACK.json +0 -470
  104. package/SEMA_BRIEF.curto.txt +0 -18
  105. package/SEMA_BRIEF.md +0 -705
  106. package/SEMA_BRIEF.micro.txt +0 -16
  107. package/SEMA_INDEX.json +0 -10759
  108. package/dist/agentContext.js.map +0 -1
  109. package/dist/agentContextPack.js.map +0 -1
  110. package/dist/agentContextTipos.js.map +0 -1
  111. package/dist/agentEntryPoints.js.map +0 -1
  112. package/dist/angular-consumer-standalone.js.map +0 -1
  113. package/dist/authorAnalise.js.map +0 -1
  114. package/dist/authorPoliticas.js.map +0 -1
  115. package/dist/billing/index.js.map +0 -1
  116. package/dist/bridge.d.ts +0 -52
  117. package/dist/bridge.js +0 -333
  118. package/dist/bridge.js.map +0 -1
  119. package/dist/carregarModulos.js.map +0 -1
  120. package/dist/cliArgs.js.map +0 -1
  121. package/dist/comandos.js.map +0 -1
  122. package/dist/contexto.js.map +0 -1
  123. package/dist/controleComercialSupabase.d.ts +0 -7
  124. package/dist/controleComercialSupabase.js +0 -6
  125. package/dist/controleComercialSupabase.js.map +0 -1
  126. package/dist/controleComercialSupabaseAdmin.d.ts +0 -7
  127. package/dist/controleComercialSupabaseAdmin.js +0 -138
  128. package/dist/controleComercialSupabaseAdmin.js.map +0 -1
  129. package/dist/controleComercialSupabaseCadastro.d.ts +0 -4
  130. package/dist/controleComercialSupabaseCadastro.js +0 -85
  131. package/dist/controleComercialSupabaseCadastro.js.map +0 -1
  132. package/dist/controleComercialSupabaseConstantes.d.ts +0 -28
  133. package/dist/controleComercialSupabaseConstantes.js +0 -44
  134. package/dist/controleComercialSupabaseConstantes.js.map +0 -1
  135. package/dist/controleComercialSupabaseConsumo.d.ts +0 -2
  136. package/dist/controleComercialSupabaseConsumo.js +0 -77
  137. package/dist/controleComercialSupabaseConsumo.js.map +0 -1
  138. package/dist/controleComercialSupabaseConta.d.ts +0 -11
  139. package/dist/controleComercialSupabaseConta.js +0 -157
  140. package/dist/controleComercialSupabaseConta.js.map +0 -1
  141. package/dist/controleComercialSupabaseProfiles.d.ts +0 -4
  142. package/dist/controleComercialSupabaseProfiles.js +0 -55
  143. package/dist/controleComercialSupabaseProfiles.js.map +0 -1
  144. package/dist/controleComercialSupabaseTipos.d.ts +0 -3
  145. package/dist/controleComercialSupabaseTipos.js +0 -2
  146. package/dist/controleComercialSupabaseTipos.js.map +0 -1
  147. package/dist/controleComercialSupabaseTiposAdmin.d.ts +0 -152
  148. package/dist/controleComercialSupabaseTiposAdmin.js +0 -2
  149. package/dist/controleComercialSupabaseTiposAdmin.js.map +0 -1
  150. package/dist/controleComercialSupabaseTiposBase.d.ts +0 -169
  151. package/dist/controleComercialSupabaseTiposBase.js +0 -2
  152. package/dist/controleComercialSupabaseTiposBase.js.map +0 -1
  153. package/dist/controleComercialSupabaseTiposConta.d.ts +0 -220
  154. package/dist/controleComercialSupabaseTiposConta.js +0 -2
  155. package/dist/controleComercialSupabaseTiposConta.js.map +0 -1
  156. package/dist/cpp-symbols.js.map +0 -1
  157. package/dist/dev/index.js.map +0 -1
  158. package/dist/dev/watcher.js.map +0 -1
  159. package/dist/docs/resolver.js.map +0 -1
  160. package/dist/docs.js.map +0 -1
  161. package/dist/docs.part01.js.map +0 -1
  162. package/dist/docs.part02.js.map +0 -1
  163. package/dist/doctorCommand.js.map +0 -1
  164. package/dist/dotnet-http.js.map +0 -1
  165. package/dist/drift.contrato.js.map +0 -1
  166. package/dist/drift.js.map +0 -1
  167. package/dist/drift.part01.js.map +0 -1
  168. package/dist/drift.part02.js.map +0 -1
  169. package/dist/drift.part03.js.map +0 -1
  170. package/dist/drift.part04.js.map +0 -1
  171. package/dist/drift.part05.js.map +0 -1
  172. package/dist/drift.part06.js.map +0 -1
  173. package/dist/drift.part07.js.map +0 -1
  174. package/dist/drift.part08.js.map +0 -1
  175. package/dist/drift.part09.js.map +0 -1
  176. package/dist/drift.part10.js.map +0 -1
  177. package/dist/drift.part11.js.map +0 -1
  178. package/dist/drift.part12.js.map +0 -1
  179. package/dist/drift.part13.js.map +0 -1
  180. package/dist/drift.part14.js.map +0 -1
  181. package/dist/driftOrcamento.js.map +0 -1
  182. package/dist/driftScore.js.map +0 -1
  183. package/dist/execucoesExternas.js.map +0 -1
  184. package/dist/exemplosOficiais.js.map +0 -1
  185. package/dist/fsGovernado.js.map +0 -1
  186. package/dist/geracaoCore.js.map +0 -1
  187. package/dist/go-http.js.map +0 -1
  188. package/dist/guard.js.map +0 -1
  189. package/dist/iaPrompts.js.map +0 -1
  190. package/dist/importador.js.map +0 -1
  191. package/dist/importador.part01.js.map +0 -1
  192. package/dist/importador.part02.js.map +0 -1
  193. package/dist/importador.part03.js.map +0 -1
  194. package/dist/importador.part04.js.map +0 -1
  195. package/dist/importador.part05.js.map +0 -1
  196. package/dist/importador.part06.js.map +0 -1
  197. package/dist/importador.part07.js.map +0 -1
  198. package/dist/importador.part08.js.map +0 -1
  199. package/dist/importador.part09.js.map +0 -1
  200. package/dist/index.js.map +0 -1
  201. package/dist/index.part01.js.map +0 -1
  202. package/dist/index.part02.js.map +0 -1
  203. package/dist/index.part03.js.map +0 -1
  204. package/dist/index.part04.js.map +0 -1
  205. package/dist/index.part05.js.map +0 -1
  206. package/dist/index.part06.js.map +0 -1
  207. package/dist/index.part07.js.map +0 -1
  208. package/dist/index.part08.js.map +0 -1
  209. package/dist/init/index.js.map +0 -1
  210. package/dist/init/templates.js.map +0 -1
  211. package/dist/init/templates.part01.js.map +0 -1
  212. package/dist/init/templates.part02.js.map +0 -1
  213. package/dist/initCommand.js.map +0 -1
  214. package/dist/initTemplatesBackend.js.map +0 -1
  215. package/dist/initTemplatesBase.js.map +0 -1
  216. package/dist/initTemplatesFlutter.js.map +0 -1
  217. package/dist/initTemplatesRuntime.js.map +0 -1
  218. package/dist/initTemplatesWeb.js.map +0 -1
  219. package/dist/java-http.js.map +0 -1
  220. package/dist/lua-symbols.js.map +0 -1
  221. package/dist/mcpInstalarChaveCommand.d.ts +0 -1
  222. package/dist/mcpInstalarChaveCommand.js +0 -168
  223. package/dist/mcpInstalarChaveCommand.js.map +0 -1
  224. package/dist/mcpRemoto.d.ts +0 -32
  225. package/dist/mcpRemoto.js +0 -61
  226. package/dist/mcpRemoto.js.map +0 -1
  227. package/dist/mcp_chave.d.ts +0 -1
  228. package/dist/mcp_chave.js +0 -4
  229. package/dist/mcp_chave.js.map +0 -1
  230. package/dist/profileArtefatoBase.js.map +0 -1
  231. package/dist/profileArtefatoValidadores.js.map +0 -1
  232. package/dist/profileAuthorCommand.js.map +0 -1
  233. package/dist/profileAuthorTipos.js.map +0 -1
  234. package/dist/profileCatalogo.js.map +0 -1
  235. package/dist/profileCommand.js.map +0 -1
  236. package/dist/profileI18nCatalogo.js.map +0 -1
  237. package/dist/profileI18nVisivel.js.map +0 -1
  238. package/dist/profileOrquestracao.js.map +0 -1
  239. package/dist/profileRegras.js.map +0 -1
  240. package/dist/profileRulePacks.js.map +0 -1
  241. package/dist/profiles/validate.js.map +0 -1
  242. package/dist/projeto.js.map +0 -1
  243. package/dist/projetoBusca.js.map +0 -1
  244. package/dist/projetoCarregar.js.map +0 -1
  245. package/dist/projetoConfig.js.map +0 -1
  246. package/dist/projetoLegado.js.map +0 -1
  247. package/dist/projetoOrigens.js.map +0 -1
  248. package/dist/projetoResolucao.js.map +0 -1
  249. package/dist/projetoTipos.js.map +0 -1
  250. package/dist/python-http.js.map +0 -1
  251. package/dist/runnerValidacaoRemota.d.ts +0 -9
  252. package/dist/runnerValidacaoRemota.js +0 -9
  253. package/dist/runnerValidacaoRemota.js.map +0 -1
  254. package/dist/runnerValidacaoRemotaBateria.d.ts +0 -10
  255. package/dist/runnerValidacaoRemotaBateria.js +0 -117
  256. package/dist/runnerValidacaoRemotaBateria.js.map +0 -1
  257. package/dist/runnerValidacaoRemotaCli.d.ts +0 -4
  258. package/dist/runnerValidacaoRemotaCli.js +0 -86
  259. package/dist/runnerValidacaoRemotaCli.js.map +0 -1
  260. package/dist/runnerValidacaoRemotaComandos.d.ts +0 -7
  261. package/dist/runnerValidacaoRemotaComandos.js +0 -123
  262. package/dist/runnerValidacaoRemotaComandos.js.map +0 -1
  263. package/dist/runnerValidacaoRemotaEscopo.d.ts +0 -4
  264. package/dist/runnerValidacaoRemotaEscopo.js +0 -79
  265. package/dist/runnerValidacaoRemotaEscopo.js.map +0 -1
  266. package/dist/runnerValidacaoRemotaExecucao.d.ts +0 -2
  267. package/dist/runnerValidacaoRemotaExecucao.js +0 -104
  268. package/dist/runnerValidacaoRemotaExecucao.js.map +0 -1
  269. package/dist/runnerValidacaoRemotaRelatorio.d.ts +0 -3
  270. package/dist/runnerValidacaoRemotaRelatorio.js +0 -95
  271. package/dist/runnerValidacaoRemotaRelatorio.js.map +0 -1
  272. package/dist/runnerValidacaoRemotaServidor.d.ts +0 -4
  273. package/dist/runnerValidacaoRemotaServidor.js +0 -185
  274. package/dist/runnerValidacaoRemotaServidor.js.map +0 -1
  275. package/dist/runnerValidacaoRemotaSnapshot.d.ts +0 -10
  276. package/dist/runnerValidacaoRemotaSnapshot.js +0 -219
  277. package/dist/runnerValidacaoRemotaSnapshot.js.map +0 -1
  278. package/dist/runnerValidacaoRemotaTipos.d.ts +0 -158
  279. package/dist/runnerValidacaoRemotaTipos.js +0 -35
  280. package/dist/runnerValidacaoRemotaTipos.js.map +0 -1
  281. package/dist/runnerValidacaoRemotaUtil.d.ts +0 -3
  282. package/dist/runnerValidacaoRemotaUtil.js +0 -18
  283. package/dist/runnerValidacaoRemotaUtil.js.map +0 -1
  284. package/dist/runnerValidacaoRemotaWorkspace.d.ts +0 -2
  285. package/dist/runnerValidacaoRemotaWorkspace.js +0 -112
  286. package/dist/runnerValidacaoRemotaWorkspace.js.map +0 -1
  287. package/dist/rust-http.js.map +0 -1
  288. package/dist/semaChatCommand.d.ts +0 -1
  289. package/dist/semaChatCommand.js +0 -43
  290. package/dist/semaChatCommand.js.map +0 -1
  291. package/dist/semaChatRuntime.d.ts +0 -23
  292. package/dist/semaChatRuntime.js +0 -202
  293. package/dist/semaChatRuntime.js.map +0 -1
  294. package/dist/sync/index.js.map +0 -1
  295. package/dist/textoListas.js.map +0 -1
  296. package/dist/tipos.js.map +0 -1
  297. package/dist/typescript-http-body.js.map +0 -1
  298. package/dist/typescript-http-expressoes.js.map +0 -1
  299. package/dist/typescript-http-modelos.js.map +0 -1
  300. package/dist/typescript-http-rotas.js.map +0 -1
  301. package/dist/typescript-http-semantica.js.map +0 -1
  302. package/dist/typescript-http.js.map +0 -1
  303. package/docs/AGENT_STARTER.md +0 -111
  304. package/docs/agentes-por-capacidade.md +0 -126
  305. package/docs/api.md +0 -82
  306. package/docs/comandos.md +0 -702
  307. package/docs/como-ensinar-a-sema-para-ia.md +0 -30
  308. package/docs/documentacao.md +0 -74
  309. package/docs/extensao-vscode.md +0 -49
  310. package/docs/fluxo-pratico-ia-sema.md +0 -215
  311. package/docs/instalacao-e-primeiro-uso.md +0 -60
  312. package/docs/integracao-com-ia.md +0 -44
  313. package/docs/mcp.md +0 -69
  314. package/docs/pagamento-ponta-a-ponta.md +0 -171
  315. package/docs/persistencia-vendor-first.md +0 -151
  316. package/docs/prompt-base-ia-sema.md +0 -111
  317. package/docs/seguranca.md +0 -126
  318. package/docs/sintaxe.md +0 -218
  319. package/llms-full.txt +0 -40
  320. package/llms.txt +0 -23
@@ -1,10 +1,10 @@
1
- // SEMA-GOVERNED: sema.produto.governanca_ia.contexto
1
+ // SEMA-GOVERNED: sema.produto.governanca_ia.contexto.entrypoints
2
2
  // Descrição: renderiza e sincroniza instruções curtas para agentes de IDE e clientes com disciplina variável.
3
3
  import { mkdir, readFile, stat, writeFile } from 'node:fs/promises';
4
4
  import path from 'node:path';
5
- import { LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO, LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO, } from './driftOrcamento.js';
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,13 +68,12 @@ 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 chame MCP remoto, \`sema_sync\`, \`sema_contratos_sincronizar\` nem \`sema mcp-client\` para ler workspace local quando a CLI estiver operacional.
72
- 5. Em web/chat/remoto sem workspace local, use MCP: \`sema_chat_contexto\`, \`sema_sync\` inline, projeto retornado e \`sema_resumo\`.
73
- 6. No \`sema_sync\` remoto, envie contrato \`.sema\`, arquivos afetados, documentação operacional relevante e índice do escopo.
74
- 7. Antes de criar módulo, rota, task ou contrato, inspecione o contrato \`.sema\` aplicável.
75
- 8. Antes de editar código existente, rode drift e impacto pelo caminho autorizado da superfície atual.
76
- 9. Antes de criar ou corrigir \`.sema\`, use \`sema exemplos\` na CLI local ou \`sema_exemplos\` no MCP.
77
- 10. Se qualquer etapa falhar, pare e diga que está bloqueado.
71
+ 4. Não use fonte externa de workspace para substituir a CLI local quando a CLI estiver operacional.
72
+ 5. Este boot é para workspace local em disco; se não houver workspace local, pare bloqueado em vez de inventar caminho.
73
+ 6. Antes de criar módulo, rota, task ou contrato, inspecione o contrato \`.sema\` aplicável.
74
+ 7. Antes de editar código existente, rode drift e impacto pelo caminho autorizado da superfície atual.
75
+ 8. Antes de criar ou corrigir \`.sema\`, use \`sema exemplos\` na CLI local.
76
+ 9. Se qualquer etapa falhar, pare e diga que está bloqueado.
78
77
 
79
78
  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.
80
79
 
@@ -99,8 +98,10 @@ ${politicaPlataforma.regra}
99
98
  ${politicaCodigo.regra}
100
99
 
101
100
  - Marcador: \`${politicaCodigo.marcador}\`.
102
- - Orçamento: código ou contrato governado acima de ${LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO} linhas gera diagnóstico; acima de ${LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO} bloqueia conclusão, geração e snapshot. Documentação Markdown não entra nesse limite de código.
103
- - Payload inline MCP: 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.
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
+ - 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
+ - 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} caracteres em \`arquivos_codigo.conteudo\` ou \`conteudo\` não é timeout; divida por responsabilidade ou use anexo/caminho de servidor autorizado.
104
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.
105
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.
106
107
  - Proibido fatiar arquivo em \`index_p1.html\`, \`index_p2.html\` ou similares sem fronteira semântica só para passar no limite.
@@ -115,9 +116,11 @@ Score composto, \`achados[]\` e \`decisaoAgente\` são sinais para guiar a próx
115
116
  - Fraca: se o score passou, confira se cada achado tem evidência concreta; se não souber provar, pare.
116
117
  - Média: conecte regra, arquivo, contrato e evidência antes de concluir aderência.
117
118
  - Forte: não transforme regex, palavra-chave ou score 100 em ritual vazio; valide substância, risco e comportamento.
118
- - Caminho Linux retornado pelo MCP remoto é espelho governado do Sema, não a pasta local do usuário.
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
+ - 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 fora do workspace local aberto pelo usuário não substitui a pasta local.
119
122
 
120
- ## Design visual quando houver UI
123
+ ## Acabamento visual e terminal
121
124
 
122
125
  ${politicaDesign.regra}
123
126
 
@@ -161,10 +164,10 @@ export function renderizarSemaSmallModel(agentContextPack) {
161
164
  Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use ou tendência a ignorar instruções longas.
162
165
 
163
166
  1. Não edite nada antes de chamar Sema.
164
- 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 chame MCP remoto, \`sema_sync\`, \`sema_contratos_sincronizar\` nem \`sema mcp-client\` 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.
165
168
  3. Sema não contorna políticas da plataforma: ele governa contrato, escopo, drift, evidência e qualidade.
166
169
  4. Se aparecer alerta de política: pare, explique de forma neutra e não tente burlar filtro.
167
- 5. Se for web/remoto sem workspace: não peça pasta local. Use \`sema_chat_contexto\` e \`sema_sync\` inline com contrato, código, documentação e índice.
170
+ 5. Se não houver workspace local em disco: pare bloqueado e peça o fluxo apropriado; não invente leitura por caminho.
168
171
  6. Se for escrever \`.sema\`: use \`sema_exemplos\` antes.
169
172
  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.
170
173
  8. Se não conseguir chamar Sema: pare e declare bloqueio.
@@ -172,13 +175,14 @@ Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use o
172
175
  10. Se abrir código com \`${agentContextPack.politicaCodigoGovernado.marcador}\`: volte ao contrato, chame Sema e só então edite.
173
176
  11. Score 100, achados atendidos ou validação inline são sinais; confira evidência real no contrato e no código.
174
177
  12. Validação inline não dispensa cabeçalho \`${agentContextPack.politicaCodigoGovernado.marcador}\` no arquivo físico.
175
- 13. Não crie código ou contrato governado acima de ${LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO} linhas. Acima de ${LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO}, planeje dividir por responsabilidade. Documentação Markdown não entra nesse limite de código.
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.
176
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.
177
- 15. Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE_MCP} caracteres não é lentidão: divida antes de usar \`sema_sync\`; não aumente timeout para tentar passar limite de transporte.
178
- 16. Caminho \`/srv/sema/projetos/...\` é espelho remoto do MCP, 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.
179
182
  17. Se Sema estourar por timeout local: aumente o timeout e tente de novo. Não trate isso como falha do Sema.
180
- 18. Se a tarefa tiver UI: aplique design moderno mínimo, responsivo, com hierarquia clara e estados visuais. Não entregue formulário cinza genérico.
181
- 19. Não substitua o contexto Sema por AGENTS.md, README.md, busca local, inferência por nome ou bom senso.
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
+ 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.
185
+ 20. Não substitua o contexto Sema por AGENTS.md, README.md, busca local, inferência por nome ou bom senso.
182
186
 
183
187
  Ordem curta:
184
188
 
@@ -202,7 +206,7 @@ Timeout:
202
206
  - Se o projeto inteiro for lento, escopar para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
203
207
  - ${politicaTimeout.ateQuandoTentar}
204
208
 
205
- Design visual:
209
+ Acabamento visual e terminal:
206
210
 
207
211
  - ${politicaDesign.regra}
208
212
  - IA fraca: ${politicaDesign.porCapacidade.fraca}
@@ -215,128 +219,99 @@ ${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
215
219
  `;
216
220
  }
217
221
  export function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
218
- const politicaDesign = agentContextPack.politicaDesignVisual;
219
- const politicaPlataforma = agentContextPack.politicaPlataforma;
220
- return `# Agentes por capacidade
221
-
222
- Sema deve funcionar em agentes fortes, médios e fracos. A diferença não é só tamanho de contexto; é disciplina operacional.
223
-
224
- ## Políticas da Plataforma
225
-
226
- ${politicaPlataforma.regra}
227
-
228
- - Escopo: ${politicaPlataforma.escopoGovernanca}
229
- - Se houver alerta externo: ${politicaPlataforma.quandoHouverBloqueio}
230
- - Fraca: ${politicaPlataforma.porCapacidade.fraca}
231
- - Média: ${politicaPlataforma.porCapacidade.media}
232
- - Forte: ${politicaPlataforma.porCapacidade.forte}
233
- - Proibido: ${politicaPlataforma.proibicoes.join(", ")}.
234
-
235
- ## Código Governado
236
-
237
- Arquivos gerados ou governados pela Sema devem manter o marcador \`${agentContextPack.politicaCodigoGovernado.marcador}\`.
238
- Orçamento semântico é regra: código ou contrato governado com ${LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO}+ linhas exige plano de divisão; ${LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO}+ linhas não pode concluir, gerar nem sincronizar. Markdown documental não entra nesse limite de código.
239
- 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.
240
-
241
- - Fraca: ${agentContextPack.politicaCodigoGovernado.porCapacidade.fraca}
242
- - Média: ${agentContextPack.politicaCodigoGovernado.porCapacidade.media}
243
- - Forte: ${agentContextPack.politicaCodigoGovernado.porCapacidade.forte}
244
-
245
- ## Payload e Transporte MCP
246
-
247
- Payload inline em \`sema_sync\`, \`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.
248
-
249
- - 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.
250
- - 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.
251
- - 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.
252
- - 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.
253
-
254
- ## Divisão por Responsabilidade
255
-
256
- Sema não manda quebrar HTML em pedaços artificiais. Ele manda manter arquivos pequenos, coesos e governáveis.
257
-
258
- - Fraca: se um arquivo crescer, pare e peça/execute divisão por responsabilidade antes de continuar.
259
- - Média: em projeto web, prefira \`index.html\`, \`styles/*.css\`, \`js/state.js\`, \`js/calc.js\`, \`js/render/*.js\` e \`data/*.json\`.
260
- - Forte: preserve arquitetura e experiência de uso, mas não use contexto grande como desculpa para monólito.
261
- - Proibido: \`index_p1.html\`, \`index_p2.html\` ou nomes semelhantes quando eles só escondem um arquivo gigante sem fronteira semântica.
262
-
263
- ## Sinal vs Ritual
264
-
265
- 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.
266
-
267
- - Fraca: achado atendido precisa de evidência simples e visível.
268
- - Média: conecte cada regra a contrato, arquivo e comportamento esperado.
269
- - Forte: trate regex/palavra-chave como triagem, não como prova final de substância.
270
- - Caminho Linux do MCP remoto é espelho governado; não é o checkout local do usuário.
271
-
272
- ## Design Visual
273
-
274
- ${politicaDesign.regra}
275
-
276
- - Fraca: ${politicaDesign.porCapacidade.fraca}
277
- Evidência: ${politicaDesign.evidencias.fraca.join(", ")}.
278
- - Média: ${politicaDesign.porCapacidade.media}
279
- Evidência: ${politicaDesign.evidencias.media.join(", ")}.
280
- - Forte: ${politicaDesign.porCapacidade.forte}
281
- Evidência: ${politicaDesign.evidencias.forte.join(", ")}.
282
- - Proibido: ${politicaDesign.proibicoes.join(", ")}.
283
- - Critérios mínimos: ${politicaDesign.criteriosMinimos.join(", ")}.
284
-
285
- ## Fraca
286
-
287
- Use para Copilot em modo simples, Cline/Roo com pouco contexto, modelos locais pequenos e agentes que ignoram instrução longa.
288
-
289
- - Entrada: \`${ARQUIVO_SEMA_BOOT}\` -> \`${ARQUIVO_SEMA_SMALL_MODEL}\` -> \`SEMA_BRIEF.micro.txt\`.
290
- - Não abrir AST/IR completos no começo.
291
- - Não editar se Sema não respondeu.
292
- - Não pedir para MCP remoto ler pasta local.
293
- - Não criar código ou contrato governado grande; divida antes de passar de ${LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO} linhas.
294
- - Não fatiar código ou contrato grande em partes artificiais; divida por responsabilidade real.
295
- - Não aceitar score ou achado como prova sem evidência concreta.
296
-
297
- ## Média
298
-
299
- Use para agentes com bom contexto, mas sem garantia de seguir todos os gates.
300
-
301
- - Entrada: \`${ARQUIVO_SEMA_BOOT}\` -> \`${ARQUIVO_AGENT_CONTEXT_PACK}\` -> \`SEMA_BRIEF.curto.txt\` -> \`SEMA_INDEX.json\`.
302
- - Rodar docs-impacto antes de agir.
303
- - Validar drift e contrato no fechamento.
304
- - Tratar ${LIMITE_AVISO_LINHAS_ORCAMENTO_SEMANTICO}+ linhas em código ou contrato governado como sinal de refatoração e ${LIMITE_BLOQUEIO_LINHAS_ORCAMENTO_SEMANTICO}+ como bloqueio.
305
- - Em UI ou HTML estático, separar estrutura, estilos, estado, cálculo, renderização e dados antes de sincronizar.
306
- - Verificar se score, achados e decisão correspondem a regra real, não só termo copiado.
307
-
308
- ## Forte
309
-
310
- Use para Codex, Claude e agentes com tool use confiável.
311
-
312
- - Entrada: \`${ARQUIVO_SEMA_BOOT}\` -> \`${ARQUIVO_AGENT_CONTEXT_PACK}\` -> \`SEMA_BRIEF.md\` -> \`SEMA_INDEX.json\`.
313
- - Pode consumir AST/IR/drift completos.
314
- - Ainda deve respeitar contrato primeiro e falha fechada.
315
- - Não usar contexto grande como desculpa para monólito: o mesmo orçamento vale para IA forte.
316
- - Se validar inline, ainda preparar o arquivo físico para a próxima IA com cabeçalho governado e descrição humana.
317
- - Se o MCP usar caminho Linux, tratar como espelho remoto autorizado, não como leitura local do usuário.
318
-
319
- ## Timeout e Retry
320
-
321
- ${agentContextPack.politicaTimeoutResumo.regra}
322
-
323
- - Timeout inicial para resumo de projeto inteiro: ${agentContextPack.politicaTimeoutResumo.timeoutInicialSegundos}s.
324
- - Escalonamento recomendado: ${agentContextPack.politicaTimeoutResumo.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
325
- - Fraca: ${agentContextPack.politicaTimeoutResumo.porCapacidade.fraca}
326
- - Média: ${agentContextPack.politicaTimeoutResumo.porCapacidade.media}
327
- - Forte: ${agentContextPack.politicaTimeoutResumo.porCapacidade.forte}
328
- - ${agentContextPack.politicaTimeoutResumo.ateQuandoTentar}
329
-
330
- ## Idioma
331
-
332
- ${agentContextPack.politicaIdioma.regra}
333
-
334
- A gramática Sema pode ter palavras-chave ASCII. Isso não autoriza resposta humana sem acentos.
335
-
336
- ## Clientes
337
-
338
- ${agentContextPack.entrypointsClientes.map((cliente) => `- ${cliente.cliente}: ${cliente.arquivos.join(", ")}. Capacidade padrão: ${cliente.capacidadePadrao}. ${cliente.observacao}`).join("\n")}
339
- `;
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");
340
315
  }
341
316
  function renderizarInstrucaoClienteSema(cliente, capacidade, agentContextPack) {
342
317
  const guia = agentContextPack.guiaPorCapacidade[capacidade];
@@ -351,14 +326,13 @@ Este workspace é governado por Sema. Antes de qualquer ação em código, contr
351
326
  1. Leia \`${ARQUIVO_SEMA_BOOT}\`.
352
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.
353
328
  3. Use CLI local: \`sema resumo\`, \`sema docs-impacto\`, \`sema inspecionar\`, \`sema drift\` e \`sema impacto\`.
354
- 4. Não use MCP remoto, \`sema_sync\`, \`sema_contratos_sincronizar\` nem \`sema mcp-client\` para ler workspace local quando a CLI estiver operacional.
355
- 5. Em web/remoto sem workspace, use MCP: \`sema_chat_contexto\`, \`sema_sync\` inline, projeto retornado e \`sema_resumo\`.
356
- 6. Chame docs-impacto com a intenção declarada antes de agir.
357
- 7. Chame inspecionar no contrato \`.sema\` aplicável.
358
- 8. Antes de editar código existente, rode drift e impacto.
359
- 9. Antes de criar ou editar \`.sema\`, use exemplos oficiais.
360
- 10. Ao concluir mudança de contrato, rode validar.
361
- 11. Antes de finalizar, use finalizar-mudanca com as docs lidas.
329
+ 4. Não use fonte externa de workspace para substituir a CLI local quando a CLI estiver operacional.
330
+ 5. Chame docs-impacto com a intenção declarada antes de agir.
331
+ 6. Chame inspecionar no contrato \`.sema\` aplicável.
332
+ 7. Antes de editar código existente, rode drift e impacto.
333
+ 8. Antes de criar ou editar \`.sema\`, use exemplos oficiais.
334
+ 9. Ao concluir mudança de contrato, rode validar.
335
+ 10. Antes de finalizar, use finalizar-mudanca com as docs lidas.
362
336
 
363
337
  É 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.
364
338
 
@@ -384,18 +358,20 @@ Código governado:
384
358
  - Ao encontrar esse marcador, volte ao contrato .sema aplicável e chame Sema antes de editar.
385
359
  - Comentário de código é lembrete curto; não substitui drift, docs-impacto nem finalizar-mudanca.
386
360
  - Validação inline prova o payload enviado; não dispensa o marcador no arquivo físico sincronizado.
387
- - 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.
388
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.
389
363
 
390
364
  Sinal e evidência:
391
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.
392
366
  - Palavra-chave ou regex passando não prova governança se contrato, código e comportamento não batem.
393
- - Caminho Linux do MCP remoto é espelho governado do Sema, não pasta local do usuário.
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.
368
+ - Caminho fora do workspace local aberto pelo usuário não substitui a pasta local.
394
369
 
395
- Design visual:
396
- - Se houver UI, design moderno é requisito governado, não enfeite.
370
+ Acabamento visual e terminal:
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.
397
372
  - Capacidade ${capacidade}: ${politicaDesign.porCapacidade[capacidade]}
398
373
  - Evidências: ${politicaDesign.evidencias[capacidade].join(", ")}.
374
+ - 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.
399
375
  - Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
400
376
 
401
377
  Idioma:
@@ -406,46 +382,46 @@ Idioma:
406
382
  `;
407
383
  }
408
384
  function renderizarDocSintaxeSemaLocal(agentContextPack) {
409
- return `# Sintaxe Sema Para IA
385
+ return `# Sema Syntax for AI Agents
410
386
 
411
- 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.
412
388
 
413
- ## Regra de ouro
389
+ ## Golden Rule
414
390
 
415
- 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/\`.
416
392
 
417
- ## Exemplo minimo
393
+ ## Minimal Example
418
394
 
419
395
  \`\`\`sema
420
- module app.exemplo {
396
+ module app.example {
421
397
  entity Item {
422
398
  fields {
423
399
  id: Id
424
- nome: Texto
425
- ativo: Booleano
400
+ name: Texto
401
+ active: Booleano
426
402
  }
427
403
  }
428
404
 
429
- task criar_item {
405
+ task create_item {
430
406
  input {
431
- nome: Texto required
407
+ name: Texto required
432
408
  }
433
409
  output {
434
410
  item: Item
435
411
  }
436
412
  rules {
437
- nome deve_ser preenchido
413
+ name deve_ser preenchido
438
414
  }
439
415
  effects {
440
416
  persistencia Item
441
- auditoria item_criado
417
+ auditoria item_created
442
418
  }
443
419
  guarantees {
444
420
  item existe
445
421
  }
446
422
  tests {
447
- caso "cria item valido" {
448
- given { nome: "Item" }
423
+ caso "creates valid item" {
424
+ given { name: "Item" }
449
425
  expect { sucesso: verdadeiro }
450
426
  }
451
427
  }
@@ -453,49 +429,91 @@ module app.exemplo {
453
429
  }
454
430
  \`\`\`
455
431
 
456
- ## Blocos mais usados
432
+ ## Common Blocks
433
+
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.
445
+
446
+ ## Canonical \`use\` and \`impl\` Origins
447
+
448
+ Use these origins before inventing a new one:
449
+
450
+ - \`ts\` ou \`typescript\`
451
+ - \`js\` ou \`javascript\`
452
+ - \`py\` ou \`python\`
453
+ - \`dart\`
454
+ - \`lua\`
455
+ - \`cs\` ou \`dotnet\`
456
+ - \`java\`
457
+ - \`go\`
458
+ - \`rust\`
459
+ - \`cpp\`
460
+
461
+ Examples:
462
+
463
+ \`\`\`sema
464
+ use javascript app.web.expenses
465
+
466
+ impl {
467
+ js: src.app.saveExpense
468
+ }
469
+ \`\`\`
470
+
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.
472
+
473
+ ## Small Canonical Lists
474
+
475
+ - \`effects\`: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
476
+ - \`audit.motivo\`: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
477
+
478
+ ## Contract Size
457
479
 
458
- - \`docs\`: resumo e notas do modulo.
459
- - \`entity\`: modelo de dominio.
460
- - \`task\`: operacao governada.
461
- - \`input\` e \`output\`: contrato de entrada e saida.
462
- - \`rules\`: validacoes e regras de negocio.
463
- - \`effects\`: persistencia, consulta, evento, auditoria e chamadas externas.
464
- - \`guarantees\`: o que a task precisa entregar se tiver sucesso.
465
- - \`error\`: erros nomeados e mensagens.
466
- - \`tests\`: casos minimos de comportamento.
467
- - \`route\`: superficie publica vinculada a uma task.
468
- - \`impl\` e \`vinculos\`: ligacao entre contrato e codigo real.
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
469
487
 
470
- ## JavaScript existe
488
+ ## JavaScript Is Supported
471
489
 
472
- A CLI suporta geracao JavaScript. Use:
490
+ The CLI supports JavaScript generation:
473
491
 
474
492
  \`\`\`bash
475
- sema compilar contratos/pedidos.sema --alvo javascript --saida ./generated/javascript
493
+ sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
476
494
  \`\`\`
477
495
 
478
- 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\`.
479
497
 
480
- ## Arquivos de apoio
498
+ ## Support Files
481
499
 
482
- - \`AGENTS.md\`: regras obrigatorias do agente.
483
- - \`${ARQUIVO_SEMA_BOOT}\`: primeira leitura para qualquer IA.
484
- - \`${ARQUIVO_SEMA_SMALL_MODEL}\`: versao curta para IA fraca.
485
- - \`${ARQUIVO_AGENT_CONTEXT_PACK}\`: pacote estruturado para agentes.
486
- - \`SEMA_INDEX.json\`: indice do projeto.
487
- - \`docs/comandos.md\`: catalogo de comandos, gates e regra de \`--saida\`.
488
- - \`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.
489
507
 
490
- 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.
491
509
 
492
- Politica de plataforma: ${agentContextPack.politicaPlataforma.regra}
510
+ Platform policy: ${agentContextPack.politicaPlataforma.regra}
493
511
  `;
494
512
  }
495
513
  function renderizarDocFluxoPraticoSemaLocal(agentContextPack) {
496
- return `# Fluxo Pratico IA + Sema
514
+ return `# Practical AI + Sema Workflow
497
515
 
498
- Este e o fluxo minimo para agentes em workspace local.
516
+ This is the minimum workflow for agents in a local workspace.
499
517
 
500
518
  1. Leia \`${ARQUIVO_SEMA_BOOT}\`.
501
519
  2. Rode \`sema --version\`.
@@ -503,39 +521,45 @@ Este e o fluxo minimo para agentes em workspace local.
503
521
  4. Rode \`sema resumo\`.
504
522
  5. Rode \`sema docs-impacto --intencao "<acao>" --json\`.
505
523
  6. Leia a documentacao obrigatoria retornada.
506
- 7. Antes de escolher comando ou interpretar \`--saida\`, leia \`docs/comandos.md\`.
507
- 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\`.
508
526
  9. Antes de editar codigo existente, rode \`sema drift\` e \`sema impacto\`.
509
527
  10. Depois de alterar \`.sema\`, rode \`sema formatar\` e \`sema validar\`.
510
528
  11. Antes de concluir, rode \`sema finalizar-mudanca\` com as docs lidas.
511
529
 
512
- ## Capacidade
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\`.
513
531
 
514
- - IA fraca: \`${ARQUIVO_SEMA_SMALL_MODEL}\`, \`SEMA_BRIEF.micro.txt\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_INDEX.json\`.
515
- - IA media: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\`, \`AGENTS.md\`.
516
- - IA forte: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, AST, IR, drift e impacto.
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.
517
533
 
518
- ## Quando gerar codigo
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.
519
535
 
520
- Se a entrega inclui codigo derivado do contrato, rode \`sema compilar\`.
536
+ ## Agent Capacity
537
+
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.
541
+
542
+ ## When to Generate Code
543
+
544
+ If the delivery includes code derived from a contract, run \`sema compilar\`.
521
545
 
522
546
  \`\`\`bash
523
- sema compilar contratos/pedidos.sema --alvo javascript --saida ./generated/javascript
547
+ sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
524
548
  \`\`\`
525
549
 
526
- 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.
527
551
 
528
- ## Falha fechada
552
+ ## Fail Closed
529
553
 
530
554
  ${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
531
555
  `;
532
556
  }
533
557
  function renderizarDocComandosSemaLocal(agentContextPack) {
534
- return `# Catalogo de comandos Sema
558
+ return `# Sema Command Catalog
535
559
 
536
- 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.
537
561
 
538
- ## Fluxo minimo local
562
+ ## Minimum Local Flow
539
563
 
540
564
  \`\`\`bash
541
565
  sema --version
@@ -544,98 +568,115 @@ sema resumo
544
568
  sema docs-impacto --intencao "<acao>" --json
545
569
  \`\`\`
546
570
 
547
- Depois leia as docs obrigatorias retornadas por \`docs-impacto\`.
571
+ Then read every required doc returned by \`docs-impacto\`.
548
572
 
549
- ## Contrato e descoberta
573
+ ## Contract and Discovery
550
574
 
551
- - \`sema iniciar --template <template>\`: cria projeto Sema novo com contrato, docs, exemplos e kit IA.
552
- - \`sema validar <arquivo-ou-pasta> --json\`: valida contrato \`.sema\`.
553
- - \`sema diagnosticos <arquivo.sema> --json\`: detalha erros e avisos.
554
- - \`sema formatar <arquivo-ou-pasta>\`: formata contrato.
555
- - \`sema inspecionar <arquivo-ou-pasta> --json\`: mostra modulos, tasks, routes, entidades, vinculos e arquivos esperados.
556
- - \`sema ast <arquivo.sema> --json\`: mostra AST para depurar sintaxe.
557
- - \`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.
558
582
 
559
- ## Mudanca e fechamento
583
+ ## Change and Closure
560
584
 
561
- - \`sema docs-impacto --intencao "<acao>" --json\`: descobre docs obrigatorias e bloqueios documentais.
562
- - \`sema drift <arquivo-ou-pasta> --escopo modulo --json\`: compara contrato e implementacao.
563
- - \`sema impacto <arquivo-ou-pasta> --alvo <token> --mudanca "<descricao>" --json\`: mapeia impacto antes de alterar comportamento.
564
- - \`sema verificar <arquivo-ou-pasta> --json\`: verificacao final agregada.
565
- - \`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.
566
590
 
567
- ## Sema Codigo
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.
568
592
 
569
- - \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart|lua|javascript|html|css> --saida <diretorio>\`: gera esqueleto/artefatos de apoio a partir do contrato.
570
- - \`sema testar <arquivo.sema> --alvo <alvo> --saida <diretorio-temporario>\`: gera e executa testes locais quando o alvo suporta.
571
- - \`sema importar <fonte> <diretorio> --saida <diretorio> --json\`: importa projeto legado para contratos iniciais.
572
- - \`sema renomear-semantico <arquivo-ou-pasta> --de <nome> --para <nome> --json\`: ajuda a renomear simbolos semanticamente.
593
+ ## Sema Code
573
594
 
574
- 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.
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.
575
599
 
576
- ## IA e contexto
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.
577
601
 
578
- - \`sema ajuda-ia\`: orientacao curta para agentes.
579
- - \`sema starter-ia\`: starter de operacao.
580
- - \`sema contexto-ia <arquivo.sema> --saida <dir> --json\`: pacote de contexto para IA.
581
- - \`sema prompt-curto <arquivo-ou-pasta> --json\`: prompt compacto.
582
- - \`sema sync-ai-entrypoints --json\`: sincroniza AGENTS, boot, pack e docs locais.
583
- - \`sema instalar-exemplos --json\`: instala exemplos oficiais no workspace.
584
- - \`sema exemplos-prompt-ia\`: mostra exemplos de prompts, nao exemplos \`.sema\`.
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.
603
+
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.
605
+
606
+ ## Canonical Syntax Lists
607
+
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\`.
611
+
612
+ \`sema compilar --alvo javascript\` is a generation target. \`impl { js: ... }\` is the live-code origin. Do not swap one for the other.
613
+
614
+ ## AI and Context
615
+
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.
585
623
 
586
624
  ## Profiles e Author
587
625
 
588
- - \`sema author iniciar|validar|briefing|revisar-cliches|validar-narrativa|validar-proibicoes\`: governa escrita autoral.
589
- - \`sema profile validar <software|workflow|ops|game|legal|research|redacao|propostas|conversas> <arquivo> --json\`: valida artefato por profile.
590
- - \`sema profile capabilities --json\`: lista profiles/capacidades.
591
- - \`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.
592
630
 
593
- ## Operacional
631
+ ## Operational
594
632
 
595
- - \`sema doctor\`: diagnostica instalacao local.
596
- - \`sema chat doctor --json\`: diagnostica Sema Chat/OpenCode local.
597
- - \`sema mcp-instalar-chave --stdin --json\`: instala chave obtida pelo humano no painel.
598
- - \`sema runner validar-remoto --snapshot <arquivo.json|-> --saida <dir> --json\`: validacao remota por snapshot.
633
+ - \`sema doctor\`: diagnoses local installation.
599
634
 
600
- ## Proibido
635
+ ## Forbidden
601
636
 
602
- - Nao usar MCP remoto para ler workspace local quando \`sema --version\` funciona.
603
- - Nao procurar \`.sema\` no disco inteiro para aprender sintaxe; use \`exemplos/\`, \`docs/sintaxe.md\` e este catalogo.
604
- - Nao encerrar depois de \`sema compilar\` se os arquivos alvo do contrato ainda nao existem.
605
- - Nao trocar \`sema compilar\` por \`sema testar\` quando o Guard pede Sema Codigo.
606
- - Nao criar relatorio Markdown para fingir que rodou gate.
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.
607
644
 
608
- Politica de codigo governado: ${agentContextPack.politicaCodigoGovernado.regra}
645
+ Governed code policy: ${agentContextPack.politicaCodigoGovernado.regra}
609
646
  `;
610
647
  }
611
648
  function renderizarAgentStarterLocal(agentContextPack) {
612
649
  return `# Agent Starter
613
650
 
614
- Voce esta em um projeto governado por Sema.
651
+ You are in a Sema-governed project.
615
652
 
616
- Leia nesta ordem:
653
+ Read in this order:
617
654
 
618
655
  1. \`${ARQUIVO_SEMA_BOOT}\`
619
656
  2. \`${ARQUIVO_AGENT_CONTEXT_PACK}\`
620
657
  3. \`SEMA_INDEX.json\`
621
658
  4. \`AGENTS.md\`
622
- 5. \`docs/comandos.md\`
623
- 6. \`docs/sintaxe.md\`
659
+ 5. \`docs/commands.md\`
660
+ 6. \`docs/syntax.md\`
624
661
  7. \`exemplos/\`
625
662
 
626
- Comandos basicos:
663
+ Basic commands:
627
664
 
628
665
  \`\`\`bash
629
666
  sema --version
630
667
  sema preflight resumo --json
631
668
  sema resumo
632
669
  sema docs-impacto --intencao "<acao>" --json
633
- sema validar contratos/pedidos.sema --json
634
- sema drift contratos/pedidos.sema --escopo modulo --json
635
- 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
636
673
  \`\`\`
637
674
 
638
- 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.
676
+
677
+ Closure is not an opinion: \`sema drift --json\` must be green. \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or broken impls block closure.
678
+
679
+ Ready UI requires proof: desktop/mobile and a narrow viewport without horizontal overflow (\`scrollWidth <= clientWidth\`).
639
680
 
640
681
  ${agentContextPack.politicaCodigoGovernado.regra}
641
682
  `;
@@ -648,10 +689,9 @@ export async function sincronizarEntryPointsAgentes(baseProjeto, agentContextPac
648
689
  resultados.push({ caminho: relativo, status });
649
690
  };
650
691
  await registrar("AGENTS.md", renderizarInstrucaoClienteSema("generico", "media", agentContextPack), true);
651
- await registrar("docs/sintaxe.md", renderizarDocSintaxeSemaLocal(agentContextPack), true);
652
- await registrar("docs/fluxo-pratico-ia-sema.md", renderizarDocFluxoPraticoSemaLocal(agentContextPack), true);
653
- await registrar("docs/comandos.md", renderizarDocComandosSemaLocal(agentContextPack), true);
654
- 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);
655
695
  await registrar(".github/copilot-instructions.md", renderizarInstrucaoClienteSema("copilot", "media", agentContextPack), true);
656
696
  const clinePath = path.join(baseProjeto, ".clinerules");
657
697
  const clineStat = await statSeguro(clinePath);