@semacode/cli 1.5.11 → 1.5.16

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 (177) hide show
  1. package/README.md +6 -1
  2. package/dist/index.js +446 -32
  3. package/package.json +23 -32
  4. package/semacode-cli-1.3.1.tgz +0 -0
  5. package/src/angular-consumer-standalone.ts +312 -0
  6. package/src/cpp-symbols.ts +82 -0
  7. package/src/docs.ts +535 -0
  8. package/src/dotnet-http.ts +355 -0
  9. package/src/drift.ts +4933 -0
  10. package/src/go-http.ts +118 -0
  11. package/src/importador.ts +3891 -0
  12. package/src/index.ts +5641 -0
  13. package/src/java-http.ts +247 -0
  14. package/src/lua-symbols.ts +114 -0
  15. package/src/php-symbols.ts +462 -0
  16. package/src/projeto.ts +862 -0
  17. package/src/python-http.ts +258 -0
  18. package/src/rust-http.ts +125 -0
  19. package/src/tipos.ts +24 -0
  20. package/src/typescript-http.ts +1076 -0
  21. package/tsconfig.json +20 -0
  22. package/AGENTS.md +0 -272
  23. package/LICENSE +0 -22
  24. package/SEMA_BRIEF.curto.txt +0 -9
  25. package/SEMA_BRIEF.md +0 -63
  26. package/SEMA_BRIEF.micro.txt +0 -7
  27. package/SEMA_INDEX.json +0 -799
  28. package/dist/angular-consumer-standalone.d.ts +0 -6
  29. package/dist/angular-consumer-standalone.js.map +0 -1
  30. package/dist/cpp-symbols.d.ts +0 -10
  31. package/dist/cpp-symbols.js.map +0 -1
  32. package/dist/docs.d.ts +0 -56
  33. package/dist/docs.js.map +0 -1
  34. package/dist/dotnet-http.d.ts +0 -23
  35. package/dist/dotnet-http.js.map +0 -1
  36. package/dist/drift.d.ts +0 -225
  37. package/dist/drift.js.map +0 -1
  38. package/dist/go-http.d.ts +0 -23
  39. package/dist/go-http.js.map +0 -1
  40. package/dist/importador.d.ts +0 -31
  41. package/dist/importador.js.map +0 -1
  42. package/dist/index.d.ts +0 -2
  43. package/dist/index.js.map +0 -1
  44. package/dist/java-http.d.ts +0 -23
  45. package/dist/java-http.js.map +0 -1
  46. package/dist/lua-symbols.d.ts +0 -10
  47. package/dist/lua-symbols.js.map +0 -1
  48. package/dist/php-symbols.d.ts +0 -24
  49. package/dist/php-symbols.js.map +0 -1
  50. package/dist/projeto.d.ts +0 -53
  51. package/dist/projeto.js.map +0 -1
  52. package/dist/python-http.d.ts +0 -23
  53. package/dist/python-http.js.map +0 -1
  54. package/dist/rust-http.d.ts +0 -23
  55. package/dist/rust-http.js.map +0 -1
  56. package/dist/tipos.d.ts +0 -3
  57. package/dist/tipos.js.map +0 -1
  58. package/dist/typescript-http.d.ts +0 -35
  59. package/dist/typescript-http.js.map +0 -1
  60. package/docs/AGENT_STARTER.md +0 -102
  61. package/docs/cli.md +0 -110
  62. package/docs/como-ensinar-a-sema-para-ia.md +0 -149
  63. package/docs/deploy.md +0 -70
  64. package/docs/documentacao.md +0 -63
  65. package/docs/env.md +0 -56
  66. package/docs/extensao-vscode.md +0 -45
  67. package/docs/fluxo-pratico-ia-sema.md +0 -177
  68. package/docs/instalacao-e-primeiro-uso.md +0 -112
  69. package/docs/integracao-com-ia.md +0 -101
  70. package/docs/mcp.md +0 -53
  71. package/docs/pagamento-ponta-a-ponta.md +0 -155
  72. package/docs/persistencia-vendor-first.md +0 -145
  73. package/docs/prompt-base-ia-sema.md +0 -104
  74. package/docs/rollback.md +0 -47
  75. package/docs/sintaxe.md +0 -244
  76. package/exemplos/agendamento.sema +0 -106
  77. package/exemplos/assinatura.sema +0 -136
  78. package/exemplos/auditoria.sema +0 -88
  79. package/exemplos/autenticacao.sema +0 -125
  80. package/exemplos/automacao.sema +0 -107
  81. package/exemplos/cadastro_usuario.sema +0 -54
  82. package/exemplos/calculadora.sema +0 -78
  83. package/exemplos/crud_simples.sema +0 -89
  84. package/exemplos/estoque.sema +0 -126
  85. package/exemplos/exportacao.sema +0 -94
  86. package/exemplos/fila.sema +0 -131
  87. package/exemplos/integracao_externa.sema +0 -94
  88. package/exemplos/multi_tenant.sema +0 -140
  89. package/exemplos/notificacao.sema +0 -98
  90. package/exemplos/operacao_estrategia.sema +0 -402
  91. package/exemplos/pagamento.sema +0 -222
  92. package/exemplos/pagamento_dominio.sema +0 -35
  93. package/exemplos/pedido.sema +0 -119
  94. package/exemplos/permissao.sema +0 -121
  95. package/exemplos/persistencia_vendor_first.sema +0 -86
  96. package/exemplos/relatorio.sema +0 -93
  97. package/exemplos/testes_embutidos.sema +0 -45
  98. package/exemplos/tratamento_erro.sema +0 -157
  99. package/exemplos/upload_arquivo.sema +0 -93
  100. package/exemplos/webhook.sema +0 -96
  101. package/llms-full.txt +0 -34
  102. package/llms.txt +0 -17
  103. package/node_modules/@sema/gerador-css/dist/index.d.ts +0 -3
  104. package/node_modules/@sema/gerador-css/dist/index.js +0 -592
  105. package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
  106. package/node_modules/@sema/gerador-css/package.json +0 -7
  107. package/node_modules/@sema/gerador-dart/dist/index.d.ts +0 -3
  108. package/node_modules/@sema/gerador-dart/dist/index.js +0 -44
  109. package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
  110. package/node_modules/@sema/gerador-dart/package.json +0 -7
  111. package/node_modules/@sema/gerador-html/dist/index.d.ts +0 -3
  112. package/node_modules/@sema/gerador-html/dist/index.js +0 -163
  113. package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
  114. package/node_modules/@sema/gerador-html/package.json +0 -7
  115. package/node_modules/@sema/gerador-javascript/dist/index.d.ts +0 -3
  116. package/node_modules/@sema/gerador-javascript/dist/index.js +0 -421
  117. package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
  118. package/node_modules/@sema/gerador-javascript/package.json +0 -7
  119. package/node_modules/@sema/gerador-lua/dist/index.d.ts +0 -3
  120. package/node_modules/@sema/gerador-lua/dist/index.js +0 -328
  121. package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
  122. package/node_modules/@sema/gerador-lua/package.json +0 -7
  123. package/node_modules/@sema/gerador-python/dist/index.d.ts +0 -6
  124. package/node_modules/@sema/gerador-python/dist/index.js +0 -729
  125. package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
  126. package/node_modules/@sema/gerador-python/package.json +0 -7
  127. package/node_modules/@sema/gerador-typescript/dist/index.d.ts +0 -6
  128. package/node_modules/@sema/gerador-typescript/dist/index.js +0 -793
  129. package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
  130. package/node_modules/@sema/gerador-typescript/package.json +0 -7
  131. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +0 -123
  132. package/node_modules/@sema/nucleo/dist/ast/tipos.js +0 -2
  133. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
  134. package/node_modules/@sema/nucleo/dist/diagnosticos/index.d.ts +0 -21
  135. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js +0 -12
  136. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
  137. package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +0 -9
  138. package/node_modules/@sema/nucleo/dist/formatador/index.js +0 -460
  139. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
  140. package/node_modules/@sema/nucleo/dist/index.d.ts +0 -35
  141. package/node_modules/@sema/nucleo/dist/index.js +0 -96
  142. package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
  143. package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +0 -5
  144. package/node_modules/@sema/nucleo/dist/ir/conversor.js +0 -883
  145. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
  146. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +0 -345
  147. package/node_modules/@sema/nucleo/dist/ir/modelos.js +0 -2
  148. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
  149. package/node_modules/@sema/nucleo/dist/lexer/lexer.d.ts +0 -7
  150. package/node_modules/@sema/nucleo/dist/lexer/lexer.js +0 -122
  151. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
  152. package/node_modules/@sema/nucleo/dist/lexer/tokens.d.ts +0 -8
  153. package/node_modules/@sema/nucleo/dist/lexer/tokens.js +0 -61
  154. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
  155. package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +0 -9
  156. package/node_modules/@sema/nucleo/dist/parser/parser.js +0 -771
  157. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
  158. package/node_modules/@sema/nucleo/dist/persistencia/contratos.d.ts +0 -39
  159. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +0 -294
  160. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
  161. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +0 -57
  162. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +0 -1617
  163. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
  164. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +0 -104
  165. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +0 -445
  166. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
  167. package/node_modules/@sema/nucleo/dist/semantico/seguranca.d.ts +0 -91
  168. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js +0 -258
  169. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
  170. package/node_modules/@sema/nucleo/dist/util/arquivos.d.ts +0 -2
  171. package/node_modules/@sema/nucleo/dist/util/arquivos.js +0 -25
  172. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
  173. package/node_modules/@sema/nucleo/package.json +0 -7
  174. package/node_modules/@sema/padroes/dist/index.d.ts +0 -25
  175. package/node_modules/@sema/padroes/dist/index.js +0 -316
  176. package/node_modules/@sema/padroes/dist/index.js.map +0 -1
  177. package/node_modules/@sema/padroes/package.json +0 -7
@@ -1,112 +0,0 @@
1
- # Instalacao e Primeiro Uso
2
-
3
- Este guia cobre o caminho publico atual da Sema para CLI, MCP e extensao.
4
-
5
- ## Requisitos
6
-
7
- - Node.js LTS
8
- - npm funcional
9
- - Python 3 so se voce quiser rodar testes Python gerados
10
-
11
- ## CLI
12
-
13
- Instalacao principal:
14
-
15
- ```bash
16
- npm install -g @semacode/cli
17
- sema --help
18
- sema doctor
19
- sema docs-impacto --intencao "alterar projeto" --json
20
- ```
21
-
22
- Instalacao por release:
23
-
24
- ```bash
25
- npm install -g https://github.com/gerlanss/Sema/releases/latest/download/sema-cli-latest.tgz
26
- ```
27
-
28
- Instalacao local ao projeto:
29
-
30
- ```bash
31
- npm install @semacode/cli
32
- npx sema --help
33
- ```
34
-
35
- ## MCP
36
-
37
- Se voce usa cliente MCP:
38
-
39
- ```bash
40
- npm install -g @semacode/mcp
41
- sema-mcp
42
- ```
43
-
44
- Ou sem instalar:
45
-
46
- ```bash
47
- npx -y @semacode/mcp
48
- ```
49
-
50
- As ferramentas MCP incluem `sema_docs_impacto` e `sema_finalizar_mudanca` para obrigar agentes a ler e atualizar docs relacionadas antes de concluir alteracoes.
51
-
52
- ## Instaladores oficiais
53
-
54
- Linux ou macOS:
55
-
56
- ```bash
57
- curl -fsSL https://raw.githubusercontent.com/gerlanss/Sema/main/install-sema.sh | bash
58
- curl -fsSL https://raw.githubusercontent.com/gerlanss/Sema/main/install-sema.sh | bash -s -- --with-vscode --with-mcp
59
- ```
60
-
61
- Windows PowerShell:
62
-
63
- ```powershell
64
- Invoke-WebRequest -Uri https://raw.githubusercontent.com/gerlanss/Sema/main/install-sema.ps1 -OutFile install-sema.ps1
65
- .\install-sema.ps1 -WithVSCode -WithMcp
66
- ```
67
-
68
- Se quiser uma tag especifica, troque `main` pela versao desejada.
69
-
70
- ## Extensao VS Code
71
-
72
- ```bash
73
- curl -L -o sema-language-tools.vsix https://github.com/gerlanss/Sema/releases/latest/download/sema-language-tools-latest.vsix
74
- code --install-extension ./sema-language-tools.vsix --force
75
- ```
76
-
77
- Ou baixe a VSIX antes e instale localmente.
78
-
79
- ## Primeiro teste
80
-
81
- ```bash
82
- mkdir sema-demo
83
- cd sema-demo
84
- sema iniciar
85
- sema validar contratos/pedidos.sema --json
86
- ```
87
-
88
- ## Primeiro fluxo util
89
-
90
- ```bash
91
- sema validar contratos/pedidos.sema --json
92
- sema ir contratos/pedidos.sema --json
93
- sema formatar contratos/pedidos.sema
94
- sema verificar contratos --saida ./.tmp/verificacao
95
- ```
96
-
97
- ## Primeiro fluxo IA-first
98
-
99
- ```bash
100
- sema inspecionar . --json
101
- sema resumo contratos/pedidos.sema --micro --para onboarding
102
- sema drift contratos/pedidos.sema --escopo modulo --json
103
- sema impacto contratos/pedidos.sema --alvo pedido_id --mudanca "trocar pedido_id por pedido_uuid" --json
104
- sema contexto-ia contratos/pedidos.sema --saida ./.tmp/contexto --json
105
- ```
106
-
107
- ## Primeiro fluxo de persistencia vendor-first
108
-
109
- ```bash
110
- sema validar contratos/sema/persistencia_vendor_first.sema --json
111
- sema ir contratos/sema/persistencia_vendor_first.sema --json
112
- ```
@@ -1,101 +0,0 @@
1
- # Integracao com IA
2
-
3
- Sema foi feita para IA operar software vivo com menos adivinhacao.
4
-
5
- ## Ordem recomendada
6
-
7
- 1. `sema inspecionar . --json`
8
- 2. `sema resumo <arquivo-ou-pasta> --micro --para onboarding`
9
- 3. `sema drift <arquivo-ou-pasta> --json`
10
- 4. `sema contexto-ia <arquivo.sema> --saida <diretorio> --json`
11
-
12
- Nao comece cavando codigo bruto quando a ferramenta ja consegue te dar contrato, score, lacuna e superficie viva.
13
-
14
- ## Por capacidade do modelo
15
-
16
- IA pequena:
17
-
18
- - `sema resumo --micro`
19
- - `briefing.min.json`
20
- - `prompt-curto.txt`
21
-
22
- IA media:
23
-
24
- - `sema resumo --curto`
25
- - `drift.json`
26
- - `briefing.min.json`
27
-
28
- IA grande:
29
-
30
- - `sema contexto-ia`
31
- - `briefing.json`
32
- - `ir.json`
33
- - `ast.json`
34
-
35
- ## MCP
36
-
37
- Se o agente usa MCP:
38
-
39
- ```bash
40
- npm install -g @semacode/cli @semacode/mcp
41
- ```
42
-
43
- Depois configure:
44
-
45
- ```json
46
- {
47
- "mcpServers": {
48
- "sema": {
49
- "command": "npx",
50
- "args": ["-y", "@semacode/mcp"]
51
- }
52
- }
53
- }
54
- ```
55
-
56
- Ferramentas mais uteis no fluxo de mudanca:
57
-
58
- - `sema_drift` para medir coerencia viva
59
- - `sema_impacto` para dizer o que tocar
60
- - `sema_renomear_semantico` para guiar troca de nomes sem misturar payload antigo e novo
61
- - `sema_docs_impacto` para obrigar leitura das docs relacionadas antes de agir
62
- - `sema_finalizar_mudanca` para bloquear conclusao sem leitura documental comprovada
63
-
64
- As ferramentas MCP usam a CLI como backend operacional. Portanto, suporte de linguagem como Lua em `use`, `impl`, IR, `drift` e importacao fica disponivel no MCP quando `@semacode/cli` e `@semacode/mcp` estao na mesma linha publica.
65
-
66
- ## Portao documental
67
-
68
- Antes de editar ou executar operacao sensivel, declare a intencao:
69
-
70
- ```bash
71
- sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
72
- ```
73
-
74
- Leia todos os itens em `leituraObrigatoria`. Se `docsAusentes` vier preenchido, crie ou complete os documentos antes da acao.
75
-
76
- Antes de concluir:
77
-
78
- ```bash
79
- sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
80
- ```
81
-
82
- Se houver diagnostico de severidade 4+, a IA nao deve finalizar a mudanca.
83
-
84
- ## Regras praticas
85
-
86
- - trate `.sema` e IR como fonte de verdade semantica
87
- - trate `drift` como juiz da adocao incremental
88
- - use `briefing.min.json` antes de abrir dezenas de arquivos
89
- - nao invente sintaxe fora da gramatica oficial
90
- - em persistencia, nao assuma que bancos diferentes tem o mesmo contrato operacional
91
-
92
- ## Arquivos uteis no repo
93
-
94
- - `AGENTS.md`
95
- - `llms.txt`
96
- - `llms-full.txt`
97
- - `SEMA_BRIEF.md`
98
- - `SEMA_INDEX.json`
99
- - `docs/persistencia-vendor-first.md`
100
- - `docs/mcp.md`
101
- - `docs/documentacao.md`
package/docs/mcp.md DELETED
@@ -1,53 +0,0 @@
1
- # MCP
2
-
3
- O MCP da Sema e a porta de entrada para agentes que precisam obedecer contrato, ler contexto certo e fechar mudanca com verificacao rastreavel.
4
-
5
- ## Fluxo obrigatorio para agentes
6
-
7
- Antes de uma acao operacional, a IA deve declarar a intencao e chamar:
8
-
9
- ```bash
10
- sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
11
- ```
12
-
13
- Via MCP, use `sema_docs_impacto` com a mesma intencao. A resposta contem `leituraObrigatoria` com caminhos, motivos e conteudo dos documentos existentes. Se algum documento obrigatorio estiver ausente, o resultado vem com bloqueio de severidade 4.
14
-
15
- Antes de concluir, a IA deve comprovar leitura:
16
-
17
- ```bash
18
- sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
19
- ```
20
-
21
- Via MCP, use `sema_finalizar_mudanca`.
22
-
23
- ## Ferramentas de documentacao
24
-
25
- - `sema_docs_impacto`: resolve docs obrigatorias por intencao, arquivos alvo e categoria inferida.
26
- - `sema_finalizar_mudanca`: bloqueia conclusao sem docs lidas ou docs ausentes.
27
-
28
- ## Quando criar docs
29
-
30
- Se a intencao exige um runbook e ele nao existe, rode `sema_docs_impacto` com `criar_ausentes: true`. Exemplos:
31
-
32
- - deploy: cria `docs/deploy.md`, `docs/env.md` e `docs/rollback.md`.
33
- - rota/API: cria `docs/api.md`.
34
- - auth: cria `docs/auth.md` e `docs/seguranca.md`.
35
- - banco: cria `docs/database.md`.
36
- - MCP: cria `docs/mcp.md`.
37
- - extensao: cria `docs/extensao-vscode.md`.
38
-
39
- O documento criado e um ponto de partida. A IA ainda deve preencher detalhes reais do projeto antes de executar a acao.
40
-
41
- ## Regra de conclusao
42
-
43
- Uma mudanca nao deve ser considerada concluida enquanto `sema_finalizar_mudanca` retornar diagnostico de severidade 4 ou maior. Isso inclui:
44
-
45
- - documento obrigatorio ausente
46
- - leitura obrigatoria nao comprovada
47
- - runbook criado mas ainda nao revisado para a operacao real
48
-
49
- ## Relacao com contratos
50
-
51
- Essas ferramentas nao substituem `sema_resumo`, `sema_inspecionar`, `sema_drift` ou `sema_validar`. Elas adicionam o portao documental: a IA descobre o que ler e o que documentar antes de agir.
52
-
53
- O MCP acompanha a semantica entregue pela CLI. Quando a CLI aceita uma origem viva, como Lua em `use`, `impl`, IR, `drift` e `sema importar`, a ferramenta MCP correspondente passa a operar esse contrato desde que CLI e MCP estejam na mesma versao.
@@ -1,155 +0,0 @@
1
- # Pagamento Ponta a Ponta na Sema
2
-
3
- Este documento descreve o vertical oficial de pagamento da Sema no fluxo publico atual.
4
-
5
- O objetivo nao e mostrar um exemplo fofo. O objetivo e demonstrar que a linguagem ja consegue modelar um fluxo de negocio real com:
6
-
7
- - contrato publico
8
- - regras
9
- - efeitos operacionais
10
- - transicoes de estado
11
- - orquestracao
12
- - erros publicos
13
- - testes executaveis
14
-
15
- ## Arquivos de referencia
16
-
17
- - `exemplos/pagamento_dominio.sema`
18
- - `exemplos/pagamento.sema`
19
-
20
- ## Como o vertical foi dividido
21
-
22
- ### `exemplos.pagamento.dominio`
23
-
24
- Centraliza os contratos compartilhados:
25
-
26
- - `entity Pagamento`
27
- - `enum StatusPagamento`
28
- - `state ciclo_pagamento`
29
-
30
- ### `exemplos.pagamento`
31
-
32
- Centraliza a operacao do vertical:
33
-
34
- - `task processar_pagamento`
35
- - `task confirmar_pagamento`
36
- - `task notificar_falha_pagamento`
37
- - `task registrar_timeout_pagamento`
38
- - `flow orquestracao_pagamento`
39
- - `route processar_pagamento_publico`
40
-
41
- ## Narrativa do caso
42
-
43
- ### Entrada publica
44
-
45
- A operacao entra por:
46
-
47
- - `route processar_pagamento_publico`
48
-
49
- Esse contrato publica:
50
-
51
- - `pagamento_id`
52
- - `valor`
53
- - `token`
54
-
55
- E expoe:
56
-
57
- - `pagamento`
58
- - `status`
59
- - erros publicos coerentes com a `task`
60
-
61
- ### Task interna
62
-
63
- A `task processar_pagamento` faz o trabalho central:
64
-
65
- - valida entrada
66
- - consulta o gateway
67
- - persiste o pagamento
68
- - emite evento
69
- - notifica comprovante
70
- - registra auditoria
71
- - garante consistencia da saida
72
-
73
- ### Estado e transicoes
74
-
75
- O `state ciclo_pagamento` ancora o contrato de transicao:
76
-
77
- - `PENDENTE -> AUTORIZADO`
78
- - `AUTORIZADO -> PROCESSADO`
79
- - `PENDENTE -> RECUSADO`
80
-
81
- A `task` explicita quais transicoes ela realmente usa.
82
-
83
- ### Flow de orquestracao
84
-
85
- O `flow orquestracao_pagamento` demonstra:
86
-
87
- - passagem de contexto
88
- - confirmacao em caso de sucesso
89
- - notificacao em caso de recusa
90
- - registro de timeout em caso de indisponibilidade
91
- - ramificacao por erro tipado
92
-
93
- ### Efeitos operacionais
94
-
95
- O vertical usa as 5 categorias oficiais da Sema:
96
-
97
- - `persistencia`
98
- - `consulta`
99
- - `evento`
100
- - `notificacao`
101
- - `auditoria`
102
-
103
- Tambem usa `criticidade` para deixar claro o peso operacional do efeito.
104
-
105
- ### Falhas reais
106
-
107
- O vertical cobre explicitamente:
108
-
109
- - autorizacao negada
110
- - saldo insuficiente
111
- - timeout de gateway
112
-
113
- ## Fluxo de trabalho recomendado
114
-
115
- ### 1. Escrever ou ajustar os arquivos `.sema`
116
-
117
- Use o dominio compartilhado em um modulo e a operacao em outro modulo.
118
-
119
- ### 2. Aplicar o formato canonico
120
-
121
- ```bash
122
- sema formatar exemplos
123
- ```
124
-
125
- ### 3. Validar semanticamente
126
-
127
- ```bash
128
- sema validar exemplos/pagamento.sema
129
- ```
130
-
131
- ### 4. Gerar codigo
132
-
133
- ```bash
134
- sema compilar exemplos/pagamento.sema --alvo typescript --saida ./.tmp/pagamento-ts
135
- sema compilar exemplos/pagamento.sema --alvo python --saida ./.tmp/pagamento-py
136
- ```
137
-
138
- ### 5. Verificar o vertical completo
139
-
140
- ```bash
141
- sema verificar exemplos/pagamento.sema --json --saida ./.tmp/verificacao-pagamento
142
- ```
143
-
144
- ## O que esse vertical prova
145
-
146
- Se esse vertical passa, a Sema ja consegue demonstrar que:
147
-
148
- - modela contrato publico
149
- - modela efeitos operacionais
150
- - modela falhas reais
151
- - modulariza dominio com `use`
152
- - gera artefatos coerentes para TypeScript e Python
153
- - executa testes gerados sem gambiarra conceitual
154
-
155
- Esse e o criterio pratico que sustenta o uso publico do vertical de pagamento como referencia para IA e geracao.
@@ -1,145 +0,0 @@
1
- # Persistencia Vendor-First
2
-
3
- Sema 1.5.7 trata banco como superficie semantica de primeira classe. Isso significa assumir diferencas reais entre engines e coloca-las no contrato, no semantico, no IR, no drift, no impact map, na renomeacao assistida, no `verificar` e na extensao. Nesta linha, o `drift` tambem materializa persistencia local real em `Preferences`, `localStorage` e `sessionStorage` quando a task esta ancorada no arquivo que usa essas APIs.
4
-
5
- ## Engines publicas
6
-
7
- - `postgres`
8
- - `mysql`
9
- - `sqlite`
10
- - `mongodb`
11
- - `redis`
12
-
13
- ## Exemplo PostgreSQL
14
-
15
- ```sema
16
- database principal_postgres {
17
- engine: postgres
18
- schema: public
19
- consistency: forte
20
- durability: alta
21
- transaction_model: mvcc
22
- query_model: sql
23
- capabilities {
24
- joins
25
- views
26
- foreign_keys
27
- }
28
- table pedidos {
29
- entity: Pedido
30
- }
31
- relationship pedido_cliente {
32
- from: Pedido
33
- to: Cliente
34
- }
35
- query buscar_pedidos {
36
- mode: sql
37
- }
38
- }
39
- ```
40
-
41
- ## Exemplo MySQL
42
-
43
- ```sema
44
- database principal_mysql {
45
- engine: mysql
46
- consistency: forte
47
- durability: alta
48
- transaction_model: bloqueio
49
- query_model: sql
50
- table faturamento {
51
- table: faturamento
52
- }
53
- index faturamento_status {
54
- table: faturamento
55
- }
56
- query buscar_faturas {
57
- mode: sql
58
- }
59
- }
60
- ```
61
-
62
- ## Exemplo SQLite
63
-
64
- ```sema
65
- database principal_sqlite {
66
- engine: sqlite
67
- consistency: snapshot
68
- durability: media
69
- transaction_model: single_thread
70
- query_model: sql
71
- table cache_local {
72
- table: cache_local
73
- }
74
- retention limpeza_local {
75
- retention: "7d"
76
- }
77
- }
78
- ```
79
-
80
- ## Exemplo MongoDB
81
-
82
- ```sema
83
- database principal_mongodb {
84
- engine: mongodb
85
- consistency: eventual
86
- durability: alta
87
- transaction_model: documento
88
- query_model: documento
89
- collection pedidos {
90
- collection: pedidos
91
- }
92
- document pedido_snapshot {
93
- entity: PedidoSnapshot
94
- }
95
- query pipeline_pedido {
96
- mode: pipeline
97
- }
98
- }
99
- ```
100
-
101
- ## Exemplo Redis
102
-
103
- ```sema
104
- database principal_redis {
105
- engine: redis
106
- consistency: eventual
107
- durability: media
108
- transaction_model: single_thread
109
- query_model: chave_valor
110
- keyspace cache_pedidos {
111
- ttl: "300s"
112
- }
113
- stream eventos_pedido {
114
- surface: fila
115
- }
116
- retention expurgo_cache {
117
- retention: "300s"
118
- }
119
- }
120
- ```
121
-
122
- ## Compatibilidade calculada
123
-
124
- Cada recurso recebe compatibilidade por engine:
125
-
126
- - `nativo`
127
- - `adaptado`
128
- - `parcial`
129
- - `invalido`
130
-
131
- Isso deixa explicito quando o contrato esta pedindo portabilidade falsa, por exemplo:
132
-
133
- - `table` em `redis`
134
- - `foreign_keys` em engine sem suporte equivalente
135
- - transacao multi-documento tratada como universal
136
-
137
- ## Onde isso aparece
138
-
139
- - parser e AST
140
- - IR canonica
141
- - analisador semantico
142
- - formatador
143
- - `sema drift`
144
- - `sema importar`
145
- - extensao VS Code
@@ -1,104 +0,0 @@
1
- # Prompt-Base Oficial para IA Trabalhar com Sema
2
-
3
- Este arquivo serve como prompt-base oficial para qualquer IA que precise ler, escrever, revisar ou transformar arquivos `.sema`.
4
-
5
- O objetivo nao e fazer a IA "improvisar bonito". O objetivo e fazer a IA operar a linguagem com previsibilidade. A Sema nao foi desenhada para ergonomia humana como prioridade; ela foi desenhada para IA.
6
-
7
- ## Prompt-base
8
-
9
- Use o texto abaixo como base:
10
-
11
- ```text
12
- Voce esta trabalhando com Sema, um Protocolo de Governanca de Intencao para IA e backend vivo.
13
-
14
- Tecnicamente, a Sema funciona como linguagem de intencao orientada a contrato. Operacionalmente, ela existe para governar semantica acima da stack e reduzir ambiguidade para IA, nao para substituir arquitetura, design ou curadoria humana.
15
-
16
- Trate a Sema como linguagem de especificacao executavel e protocolo de governanca semantica. Nao invente sintaxe, palavras-chave ou blocos fora da gramatica e dos exemplos oficiais.
17
-
18
- Fontes de verdade, em ordem:
19
- 1. se o projeto expuser `SEMA_CONTEXT.md`, comece por ele
20
- 2. `SEMA_BRIEF.md`
21
- 3. `SEMA_INDEX.json`
22
- 4. README do projeto
23
- 5. gramatica e documentacao de sintaxe da Sema
24
- 6. especificacao semantica da linguagem
25
- 7. exemplos oficiais, com prioridade para o vertical de pagamento
26
- 8. `sema resumo` e `briefing.min.json` quando a IA for pequena
27
- 9. AST, IR e diagnosticos exportados pela CLI em JSON quando a capacidade aguentar
28
-
29
- Regras de operacao:
30
- - preserve o significado semantico
31
- - use o formatador oficial da Sema como fonte unica de estilo
32
- - use diagnosticos estruturados como contrato de correcao
33
- - use a IR como fonte de verdade semantica quando houver duvida
34
- - nao conclua uma alteracao sem validar e verificar o modulo
35
- - trate `importar` como bootstrap revisavel, nao como contrato final automatico
36
- - trate `drift` como medicao de verdade contra codigo vivo
37
- - trate `impl` como ponte entre task e simbolo real
38
- - nao invente regra de negocio que o contrato e o codigo nao sustentem
39
-
40
- Antes de editar `.sema`, entenda:
41
- - o module alvo
42
- - os contratos de task, route, error, effects, guarantees, state e flow
43
- - os exemplos oficiais relacionados
44
-
45
- Depois de editar `.sema`, execute este fluxo:
46
- 1. formatar
47
- 2. validar
48
- 3. diagnosticar, se houver falha
49
- 4. verificar
50
-
51
- Se houver conflito entre texto livre e IR/diagnosticos, priorize a IR e os diagnosticos da CLI.
52
-
53
- Se algo nao estiver claro, siga a forma ja usada nos exemplos oficiais. Nao improvise sem base.
54
- ```
55
-
56
- ## Variacao curta
57
-
58
- Se voce quiser um prompt menor para uso frequente:
59
-
60
- ```text
61
- Trabalhe com Sema como DSL semantica orientada a contrato. Nao invente sintaxe. Use os exemplos oficiais e a gramatica como referencia de escrita. Use `ir --json` como fonte de verdade semantica, `diagnosticos --json` como fonte de correcao e `sema formatar` como fonte unica de estilo. Antes de encerrar, rode validacao e verificacao.
62
- ```
63
-
64
- Se voce quiser um prompt ainda mais curto e pronto para colar, use:
65
-
66
- ```bash
67
- sema prompt-curto caminho/arquivo.sema --curto --para mudanca
68
- ```
69
-
70
- ## Variacao para revisao
71
-
72
- Use esta versao quando a IA for revisar `.sema` em vez de criar:
73
-
74
- ```text
75
- Revise este modulo Sema como contrato semantico executavel. Procure incoerencias entre input, output, rules, effects, guarantees, state, flow, route e error. Considere a IR e os diagnosticos da CLI como fonte de verdade. Nao critique estilo fora do que o formatador oficial resolveria automaticamente.
76
- ```
77
-
78
- ## Variacao para geracao
79
-
80
- Use esta versao quando a IA for escrever modulo novo:
81
-
82
- ```text
83
- Gere um modulo Sema seguindo a gramatica oficial, os exemplos do projeto e o estilo do formatador canonico. Estruture o modulo como contrato semantico executavel, com blocos explicitos para entrada, saida, regras, efeitos, garantias, erros, estado, fluxo e testes quando fizer sentido. Nao use sintaxe fora do repertorio ja suportado pela linguagem.
84
- ```
85
-
86
- ## Variacao para correcao guiada por diagnostico
87
-
88
- Use esta versao quando a IA ja tiver erro concreto para corrigir:
89
-
90
- ```text
91
- Corrija este modulo Sema a partir dos diagnosticos estruturados da CLI. Preserve a intencao do contrato e altere apenas o necessario para eliminar as falhas. Depois da correcao, aplique o formatador oficial e revalide.
92
- ```
93
-
94
- ## O que sempre anexar junto do prompt
95
-
96
- Idealmente, acompanhe o prompt com:
97
-
98
- - o arquivo `.sema` alvo
99
- - o resultado de `sema ast --json`
100
- - o resultado de `sema ir --json`
101
- - o resultado de `sema diagnosticos --json`, se houver erro
102
- - um exemplo oficial parecido
103
-
104
- Sem isso, a IA pode ate acertar. Com isso, ela trabalha direito.