@semacode/cli 1.3.6 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/AGENTS.md +272 -0
  2. package/LICENSE +22 -0
  3. package/README.md +93 -0
  4. package/SEMA_BRIEF.curto.txt +9 -0
  5. package/SEMA_BRIEF.md +49 -0
  6. package/SEMA_BRIEF.micro.txt +7 -0
  7. package/SEMA_INDEX.json +546 -0
  8. package/dist/drift.d.ts +5 -3
  9. package/dist/drift.js +532 -27
  10. package/dist/drift.js.map +1 -1
  11. package/dist/importador.d.ts +2 -0
  12. package/dist/importador.js +166 -7
  13. package/dist/importador.js.map +1 -1
  14. package/dist/index.js +2 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/projeto.d.ts +6 -1
  17. package/dist/projeto.js +1 -3
  18. package/dist/projeto.js.map +1 -1
  19. package/dist/typescript-http.js +1 -1
  20. package/dist/typescript-http.js.map +1 -1
  21. package/docs/AGENT_STARTER.md +102 -0
  22. package/docs/cli.md +101 -0
  23. package/docs/como-ensinar-a-sema-para-ia.md +149 -0
  24. package/docs/fluxo-pratico-ia-sema.md +177 -0
  25. package/docs/instalacao-e-primeiro-uso.md +108 -0
  26. package/docs/integracao-com-ia.md +71 -0
  27. package/docs/pagamento-ponta-a-ponta.md +155 -0
  28. package/docs/persistencia-vendor-first.md +145 -0
  29. package/docs/prompt-base-ia-sema.md +104 -0
  30. package/docs/sintaxe.md +177 -0
  31. package/exemplos/agendamento.sema +106 -0
  32. package/exemplos/assinatura.sema +136 -0
  33. package/exemplos/auditoria.sema +88 -0
  34. package/exemplos/autenticacao.sema +125 -0
  35. package/exemplos/automacao.sema +107 -0
  36. package/exemplos/cadastro_usuario.sema +54 -0
  37. package/exemplos/calculadora.sema +78 -0
  38. package/exemplos/crud_simples.sema +89 -0
  39. package/exemplos/estoque.sema +126 -0
  40. package/exemplos/exportacao.sema +94 -0
  41. package/exemplos/fila.sema +131 -0
  42. package/exemplos/integracao_externa.sema +94 -0
  43. package/exemplos/multi_tenant.sema +140 -0
  44. package/exemplos/notificacao.sema +98 -0
  45. package/exemplos/operacao_estrategia.sema +402 -0
  46. package/exemplos/pagamento.sema +222 -0
  47. package/exemplos/pagamento_dominio.sema +35 -0
  48. package/exemplos/pedido.sema +119 -0
  49. package/exemplos/permissao.sema +121 -0
  50. package/exemplos/persistencia_vendor_first.sema +86 -0
  51. package/exemplos/relatorio.sema +93 -0
  52. package/exemplos/testes_embutidos.sema +45 -0
  53. package/exemplos/tratamento_erro.sema +157 -0
  54. package/exemplos/upload_arquivo.sema +93 -0
  55. package/exemplos/webhook.sema +96 -0
  56. package/llms-full.txt +34 -0
  57. package/llms.txt +17 -0
  58. package/logo.png +0 -0
  59. package/node_modules/@sema/gerador-css/package.json +3 -10
  60. package/node_modules/@sema/gerador-dart/package.json +3 -10
  61. package/node_modules/@sema/gerador-html/package.json +3 -10
  62. package/node_modules/@sema/gerador-javascript/package.json +3 -10
  63. package/node_modules/@sema/gerador-lua/package.json +3 -10
  64. package/node_modules/@sema/gerador-python/package.json +3 -10
  65. package/node_modules/@sema/gerador-typescript/package.json +3 -10
  66. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +2 -1
  67. package/node_modules/@sema/nucleo/dist/formatador/index.js +32 -17
  68. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -1
  69. package/node_modules/@sema/nucleo/dist/index.d.ts +1 -0
  70. package/node_modules/@sema/nucleo/dist/index.js +1 -0
  71. package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
  72. package/node_modules/@sema/nucleo/dist/ir/conversor.js +94 -0
  73. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
  74. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +60 -0
  75. package/node_modules/@sema/nucleo/dist/lexer/tokens.js +15 -0
  76. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -1
  77. package/node_modules/@sema/nucleo/dist/parser/parser.js +98 -3
  78. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
  79. package/node_modules/@sema/nucleo/dist/persistencia/contratos.d.ts +39 -0
  80. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +294 -0
  81. package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -0
  82. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -1
  83. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +118 -2
  84. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
  85. package/node_modules/@sema/nucleo/package.json +3 -6
  86. package/node_modules/@sema/padroes/package.json +3 -6
  87. package/package.json +33 -21
  88. package/node_modules/@sema/gerador-css/src/index.ts +0 -605
  89. package/node_modules/@sema/gerador-css/tsconfig.json +0 -13
  90. package/node_modules/@sema/gerador-css/tsconfig.tsbuildinfo +0 -1
  91. package/node_modules/@sema/gerador-dart/src/index.ts +0 -52
  92. package/node_modules/@sema/gerador-dart/tsconfig.json +0 -13
  93. package/node_modules/@sema/gerador-dart/tsconfig.tsbuildinfo +0 -1
  94. package/node_modules/@sema/gerador-html/src/index.ts +0 -185
  95. package/node_modules/@sema/gerador-html/tsconfig.json +0 -13
  96. package/node_modules/@sema/gerador-html/tsconfig.tsbuildinfo +0 -1
  97. package/node_modules/@sema/gerador-javascript/src/index.ts +0 -461
  98. package/node_modules/@sema/gerador-javascript/tsconfig.json +0 -13
  99. package/node_modules/@sema/gerador-javascript/tsconfig.tsbuildinfo +0 -1
  100. package/node_modules/@sema/gerador-lua/src/index.d.ts +0 -3
  101. package/node_modules/@sema/gerador-lua/src/index.js.map +0 -1
  102. package/node_modules/@sema/gerador-lua/src/index.ts +0 -359
  103. package/node_modules/@sema/gerador-lua/tsconfig.json +0 -13
  104. package/node_modules/@sema/gerador-lua/tsconfig.tsbuildinfo +0 -1
  105. package/node_modules/@sema/gerador-python/src/index.ts +0 -706
  106. package/node_modules/@sema/gerador-python/tsconfig.json +0 -13
  107. package/node_modules/@sema/gerador-python/tsconfig.tsbuildinfo +0 -1
  108. package/node_modules/@sema/gerador-typescript/src/index.ts +0 -728
  109. package/node_modules/@sema/gerador-typescript/tsconfig.json +0 -13
  110. package/node_modules/@sema/gerador-typescript/tsconfig.tsbuildinfo +0 -1
  111. package/node_modules/@sema/nucleo/src/ast/tipos.ts +0 -191
  112. package/node_modules/@sema/nucleo/src/diagnosticos/index.ts +0 -43
  113. package/node_modules/@sema/nucleo/src/formatador/index.ts +0 -507
  114. package/node_modules/@sema/nucleo/src/index.ts +0 -133
  115. package/node_modules/@sema/nucleo/src/ir/conversor.ts +0 -912
  116. package/node_modules/@sema/nucleo/src/ir/modelos.ts +0 -331
  117. package/node_modules/@sema/nucleo/src/lexer/lexer.ts +0 -166
  118. package/node_modules/@sema/nucleo/src/lexer/tokens.ts +0 -64
  119. package/node_modules/@sema/nucleo/src/parser/gramatica.ebnf +0 -39
  120. package/node_modules/@sema/nucleo/src/parser/parser.ts +0 -790
  121. package/node_modules/@sema/nucleo/src/semantico/analisador.ts +0 -2692
  122. package/node_modules/@sema/nucleo/src/semantico/estruturas.ts +0 -632
  123. package/node_modules/@sema/nucleo/src/semantico/seguranca.ts +0 -362
  124. package/node_modules/@sema/nucleo/src/util/arquivos.ts +0 -28
  125. package/node_modules/@sema/nucleo/tsconfig.json +0 -9
  126. package/node_modules/@sema/nucleo/tsconfig.tsbuildinfo +0 -1
  127. package/node_modules/@sema/padroes/src/index.ts +0 -251
  128. package/node_modules/@sema/padroes/tsconfig.json +0 -9
  129. package/node_modules/@sema/padroes/tsconfig.tsbuildinfo +0 -1
@@ -0,0 +1,149 @@
1
+ # Como Ensinar a Sema para IA
2
+
3
+ Este documento explica como fazer uma IA entender a Sema sem depender de memoria previa do modelo. A estrategia correta nao e presumir que a IA "ja conhece a linguagem", e sim entregar contexto suficiente para ela operar com seguranca.
4
+
5
+ Leia isso do ponto de vista da CLI publica. A IA nao deve assumir que esta dentro do monorepo da Sema, nem que precisa chamar `node pacotes/cli/dist/index.js`.
6
+
7
+ ## Principio central
8
+
9
+ Uma IA entende uma linguagem nova quando recebe quatro camadas de contexto:
10
+
11
+ 1. sintaxe
12
+ 2. semantica
13
+ 3. estrutura intermediaria estavel
14
+ 4. exemplos reais
15
+
16
+ Sem essas quatro camadas, o modelo comeca a adivinhar. E adivinhacao em linguagem de contrato e pedir para nascer bug feio.
17
+
18
+ Antes de qualquer outra coisa, a IA tambem precisa receber a **moldura correta**:
19
+
20
+ - a Sema e um protocolo de governanca de intencao
21
+ - a Sema foi feita para IA, nao para ergonomia humana
22
+ - a Sema nao foi feita para "automatizar tudo"
23
+ - a Sema existe para explicitar, alinhar e verificar contrato contra sistema vivo
24
+ - curadoria humana continua parte da proposta
25
+
26
+ Se a IA errar essa moldura, ela vai cobrar da ferramenta a coisa errada e operar feito um animal apressado.
27
+
28
+ ## Camada 1. Sintaxe
29
+
30
+ A IA precisa saber como a linguagem e escrita.
31
+
32
+ Fontes principais:
33
+
34
+ - [README.md](../README.md)
35
+ - [sintaxe.md](./sintaxe.md)
36
+ - [integracao-com-ia.md](./integracao-com-ia.md)
37
+
38
+ Objetivo dessa camada:
39
+
40
+ - reconhecer blocos validos
41
+ - entender delimitadores
42
+ - nao inventar palavras-chave
43
+ - respeitar a organizacao canonicamente formatada
44
+
45
+ ## Camada 2. Semantica
46
+
47
+ Depois de saber ler, a IA precisa saber o que cada bloco significa.
48
+
49
+ Fontes principais:
50
+
51
+ - [README.md](../README.md)
52
+ - [integracao-com-ia.md](./integracao-com-ia.md)
53
+ - [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
54
+
55
+ Objetivo dessa camada:
56
+
57
+ - distinguir contrato interno de `task`
58
+ - distinguir contrato publico de `route`
59
+ - entender `effects`, `guarantees`, `error`, `state` e `flow`
60
+ - operar na linguagem como especificacao executavel, nao como texto decorativo
61
+ - entender que `importar` e bootstrap
62
+ - entender que `drift` e regua de coerencia contra o runtime
63
+ - entender que `impl` e ponte rastreavel para simbolo vivo
64
+
65
+ ## Camada 3. Estrutura intermediaria estavel
66
+
67
+ Essa e a camada que faz a parada parar de ser um cassino.
68
+
69
+ Em vez de confiar que a IA vai interpretar `.sema` cru de primeira, use a CLI como tradutora oficial da linguagem.
70
+
71
+ Comandos principais:
72
+
73
+ ```bash
74
+ sema resumo arquivo.sema --micro --para onboarding
75
+ sema validar arquivo.sema --json
76
+ sema diagnosticos arquivo.sema --json
77
+ sema ast arquivo.sema --json
78
+ sema ir arquivo.sema --json
79
+ sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
80
+ ```
81
+
82
+ Como cada comando ajuda:
83
+
84
+ - `resumo`: entrega cartao semantico pequeno para IA com janela curta
85
+ - `validar --json`: diz se a base esta semanticamente valida
86
+ - `diagnosticos --json`: devolve erros e avisos como contrato estruturado
87
+ - `ast --json`: mostra a forma sintatica escrita
88
+ - `ir --json`: mostra a forma semantica resolvida
89
+ - `verificar --json`: mostra o estado operacional do projeto
90
+
91
+ Se a IA puder consumir `ir --json`, melhor ainda. E ali que a linguagem fica menos ambigua e mais utilizavel para automacao. Mas nao seja um animal: para modelo pequeno, comece em `resumo` e `briefing.min.json`.
92
+
93
+ ## Camada 4. Exemplos reais
94
+
95
+ Modelo aprende muito por padrao. Por isso, bons exemplos valem quase tanto quanto especificacao.
96
+
97
+ Arquivos recomendados:
98
+
99
+ - [pagamento.sema](../exemplos/pagamento.sema)
100
+ - [pagamento_dominio.sema](../exemplos/pagamento_dominio.sema)
101
+ - [automacao.sema](../exemplos/automacao.sema)
102
+ - [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
103
+ - [crud_simples.sema](../exemplos/crud_simples.sema)
104
+
105
+ O vertical oficial de pagamento deve ser tratado como a referencia principal.
106
+
107
+ ## O que a IA nao deve fazer
108
+
109
+ - inventar palavras-chave fora da gramatica
110
+ - introduzir blocos inexistentes
111
+ - assumir semantica que nao aparece na especificacao
112
+ - tratar draft importado como contrato final so porque veio da CLI
113
+ - tratar a Sema como gerador magico de sistema completo
114
+ - editar `.sema` sem rodar `sema formatar`
115
+ - encerrar alteracao sem consultar `diagnosticos` quando houver falha
116
+
117
+ ## O que a IA deve fazer
118
+
119
+ - usar a gramatica e os exemplos como fonte de estilo
120
+ - usar a IR como fonte de verdade semantica sempre que possivel
121
+ - usar diagnosticos estruturados como guia de correcao
122
+ - rodar o formatador antes de considerar o trabalho pronto
123
+ - validar e verificar a mudanca no mesmo fluxo
124
+
125
+ ## Estrategia recomendada
126
+
127
+ Se voce for instruir uma IA para trabalhar com Sema, entregue o contexto nesta ordem:
128
+
129
+ 1. [README.md](../README.md)
130
+ 2. [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
131
+ 3. [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
132
+ 4. [prompt-base-ia-sema.md](./prompt-base-ia-sema.md)
133
+ 5. `sema resumo --micro` ou `sema resumo --curto`, conforme a capacidade da IA
134
+ 6. `ast --json`, `ir --json` e `diagnosticos --json` do modulo alvo, se a capacidade aguentar
135
+
136
+ Essa ordem faz a IA ir de contexto geral para contexto operacional, em vez de cair direto num arquivo cru e sair chutando.
137
+
138
+ ## Regra de ouro
139
+
140
+ A Sema foi desenhada para ser entendida por IA, mas isso nao significa que a IA vai adivinhar sozinha.
141
+
142
+ Ela entende bem quando recebe:
143
+
144
+ - especificacao
145
+ - exemplos
146
+ - JSON estrutural
147
+ - feedback automatico
148
+
149
+ Sem isso, ate o modelo mais caro vira estagiario emocionado.
@@ -0,0 +1,177 @@
1
+ # Fluxo Pratico para IA Antes de Editar `.sema`
2
+
3
+ Este documento descreve o fluxo operacional recomendado para qualquer IA antes, durante e depois de alterar arquivos `.sema`.
4
+
5
+ Se a IA seguir isso, ela trabalha com contexto. Se nao seguir, vira adivinhacao gourmet.
6
+
7
+ ## Fluxo curto
8
+
9
+ 1. ler contexto do projeto
10
+ 2. identificar a capacidade da IA
11
+ 3. identificar o modulo alvo
12
+ 4. consultar o menor artefato semantico suficiente
13
+ 5. editar
14
+ 6. formatar
15
+ 7. validar
16
+ 8. verificar
17
+
18
+ ## Fluxo detalhado
19
+
20
+ ### Etapa 1. Ler contexto minimo
21
+
22
+ Antes de tocar em qualquer arquivo, a IA deve ler:
23
+
24
+ - [README.md](../README.md)
25
+ - [integracao-com-ia.md](./integracao-com-ia.md)
26
+ - [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
27
+
28
+ Se o trabalho estiver ligado a pagamento, ler tambem:
29
+
30
+ - [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
31
+
32
+ ### Etapa 2. Escolher a faixa de capacidade
33
+
34
+ Antes de despejar contexto na IA, escolha o que ela aguenta:
35
+
36
+ - IA pequena ou gratuita: `sema resumo --micro` e `briefing.min.json`
37
+ - IA media: `sema resumo --curto`, `briefing.min.json` e `drift.json`
38
+ - IA grande: `contexto-ia`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
39
+
40
+ ### Etapa 3. Ler o modulo alvo e um exemplo parecido
41
+
42
+ A IA deve identificar:
43
+
44
+ - qual arquivo sera editado
45
+ - qual modulo esse arquivo representa
46
+ - qual exemplo oficial mais se parece com o que precisa ser feito
47
+
48
+ Regra pratica:
49
+
50
+ - automacao: [automacao.sema](../exemplos/automacao.sema)
51
+ - erros e fluxos de falha: [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
52
+ - borda publica e pagamento: [pagamento.sema](../exemplos/pagamento.sema)
53
+
54
+ ### Etapa 4. Consultar AST e IR quando fizer sentido
55
+
56
+ Antes de alterar, a IA deve executar:
57
+
58
+ ```bash
59
+ sema resumo caminho/arquivo.sema --curto --para mudanca
60
+ sema ast caminho/arquivo.sema --json
61
+ sema ir caminho/arquivo.sema --json
62
+ ```
63
+
64
+ Objetivo:
65
+
66
+ - ver a forma sintatica quando a capacidade aguentar
67
+ - ver a forma semantica resolvida quando a capacidade aguentar
68
+ - evitar interpretar errado o contrato
69
+
70
+ ### Etapa 5. Editar o `.sema`
71
+
72
+ Ao editar, a IA deve:
73
+
74
+ - preservar a intencao do modulo
75
+ - seguir a gramatica existente
76
+ - evitar criar bloco ou operador nao suportado
77
+ - preferir a forma ja usada nos exemplos oficiais
78
+
79
+ ### Etapa 6. Formatar
80
+
81
+ Depois da edicao:
82
+
83
+ ```bash
84
+ sema formatar caminho/arquivo.sema
85
+ sema formatar caminho/arquivo.sema --check
86
+ ```
87
+
88
+ Se `--check` falhar, o trabalho ainda nao esta pronto.
89
+
90
+ ### Etapa 7. Validar e diagnosticar
91
+
92
+ Depois da formatacao:
93
+
94
+ ```bash
95
+ sema validar caminho/arquivo.sema --json
96
+ sema diagnosticos caminho/arquivo.sema --json
97
+ ```
98
+
99
+ Se houver falha:
100
+
101
+ - usar os diagnosticos estruturados como contrato de correcao
102
+ - nao insistir em leitura manual teimosa quando a CLI ja disse onde esta a merda
103
+
104
+ ### Etapa 7.5. Compilar quando a tarefa pedir codigo derivado
105
+
106
+ Se a tarefa nao for so editar contrato, mas tambem gerar base de implementacao, a IA deve rodar explicitamente:
107
+
108
+ ```bash
109
+ sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
110
+ ```
111
+
112
+ Ou trocar o alvo para `python` ou `dart`, conforme o caso.
113
+
114
+ Regra pratica:
115
+
116
+ - se a entrega inclui codigo derivado, `sema compilar` nao e opcional
117
+ - se a IA ignorar `compilar`, ela pode acabar reescrevendo na mao coisa que a Sema ja gera sozinha, que e burrice operacional
118
+
119
+ ### Etapa 8. Verificar
120
+
121
+ No fechamento:
122
+
123
+ ```bash
124
+ sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
125
+ ```
126
+
127
+ ## Fluxo minimo para automacao
128
+
129
+ Se voce quiser o menor fluxo aceitavel para uma IA pequena:
130
+
131
+ ```bash
132
+ sema resumo caminho/arquivo.sema --micro --para mudanca
133
+ sema formatar caminho/arquivo.sema
134
+ sema validar caminho/arquivo.sema --json
135
+ ```
136
+
137
+ Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
138
+
139
+ Se a tarefa envolver codigo derivado, o fluxo minimo aceitavel vira:
140
+
141
+ ```bash
142
+ sema ir caminho/arquivo.sema --json
143
+ sema formatar caminho/arquivo.sema
144
+ sema validar caminho/arquivo.sema --json
145
+ sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
146
+ ```
147
+
148
+ ## Checklist de saida
149
+
150
+ Antes de considerar a alteracao pronta, a IA deve responder mentalmente:
151
+
152
+ - eu entendi o modulo e o contrato?
153
+ - eu mantive a sintaxe dentro do que a linguagem suporta?
154
+ - eu formatei o arquivo?
155
+ - eu validei?
156
+ - eu olhei diagnosticos se algo falhou?
157
+ - eu fechei com verificacao?
158
+
159
+ Se alguma resposta for "nao", ainda nao terminou.
160
+
161
+ ## Regra de ouro
162
+
163
+ Em Sema, a IA nao deveria operar no escuro.
164
+
165
+ Ela deve trabalhar sempre com:
166
+
167
+ - exemplo oficial
168
+ - AST
169
+ - IR
170
+ - diagnosticos
171
+ - formatador
172
+
173
+ Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e nao so no discurso bonito.
174
+
175
+ ## Observacao sobre caminhos
176
+
177
+ Esta documentacao usa placeholders de arquivo e pasta, nao caminhos do monorepo da Sema. A IA deve adaptar isso ao projeto atual e continuar tratando `sema` como interface publica principal.
@@ -0,0 +1,108 @@
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
+ ```
20
+
21
+ Instalacao por release:
22
+
23
+ ```bash
24
+ npm install -g https://github.com/gerlanss/Sema/releases/latest/download/sema-cli-latest.tgz
25
+ ```
26
+
27
+ Instalacao local ao projeto:
28
+
29
+ ```bash
30
+ npm install @semacode/cli
31
+ npx sema --help
32
+ ```
33
+
34
+ ## MCP
35
+
36
+ Se voce usa cliente MCP:
37
+
38
+ ```bash
39
+ npm install -g @semacode/mcp
40
+ sema-mcp
41
+ ```
42
+
43
+ Ou sem instalar:
44
+
45
+ ```bash
46
+ npx -y @semacode/mcp
47
+ ```
48
+
49
+ ## Instaladores oficiais
50
+
51
+ Linux ou macOS:
52
+
53
+ ```bash
54
+ curl -fsSL https://raw.githubusercontent.com/gerlanss/Sema/v1.4.0/install-sema.sh | bash
55
+ curl -fsSL https://raw.githubusercontent.com/gerlanss/Sema/v1.4.0/install-sema.sh | bash -s -- --with-vscode --with-mcp
56
+ ```
57
+
58
+ Windows PowerShell:
59
+
60
+ ```powershell
61
+ Invoke-WebRequest -Uri https://raw.githubusercontent.com/gerlanss/Sema/v1.4.0/install-sema.ps1 -OutFile install-sema.ps1
62
+ .\install-sema.ps1 -WithVSCode -WithMcp -Version 1.4.0
63
+ ```
64
+
65
+ Se quiser outra tag, troque `v1.4.0` pelo release desejado.
66
+
67
+ ## Extensao VS Code
68
+
69
+ ```bash
70
+ curl -L -o sema-language-tools.vsix https://github.com/gerlanss/Sema/releases/latest/download/sema-language-tools-latest.vsix
71
+ code --install-extension ./sema-language-tools.vsix --force
72
+ ```
73
+
74
+ Ou baixe a VSIX antes e instale localmente.
75
+
76
+ ## Primeiro teste
77
+
78
+ ```bash
79
+ mkdir sema-demo
80
+ cd sema-demo
81
+ sema iniciar
82
+ sema validar contratos/pedidos.sema --json
83
+ ```
84
+
85
+ ## Primeiro fluxo util
86
+
87
+ ```bash
88
+ sema validar contratos/pedidos.sema --json
89
+ sema ir contratos/pedidos.sema --json
90
+ sema formatar contratos/pedidos.sema
91
+ sema verificar contratos --saida ./.tmp/verificacao
92
+ ```
93
+
94
+ ## Primeiro fluxo IA-first
95
+
96
+ ```bash
97
+ sema inspecionar . --json
98
+ sema resumo contratos/pedidos.sema --micro --para onboarding
99
+ sema drift contratos/pedidos.sema --json
100
+ sema contexto-ia contratos/pedidos.sema --saida ./.tmp/contexto --json
101
+ ```
102
+
103
+ ## Primeiro fluxo de persistencia vendor-first
104
+
105
+ ```bash
106
+ sema validar contratos/sema/persistencia_vendor_first.sema --json
107
+ sema ir contratos/sema/persistencia_vendor_first.sema --json
108
+ ```
@@ -0,0 +1,71 @@
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
+ ## Regras praticas
57
+
58
+ - trate `.sema` e IR como fonte de verdade semantica
59
+ - trate `drift` como juiz da adocao incremental
60
+ - use `briefing.min.json` antes de abrir dezenas de arquivos
61
+ - nao invente sintaxe fora da gramatica oficial
62
+ - em persistencia, nao assuma que bancos diferentes tem o mesmo contrato operacional
63
+
64
+ ## Arquivos uteis no repo
65
+
66
+ - `AGENTS.md`
67
+ - `llms.txt`
68
+ - `llms-full.txt`
69
+ - `SEMA_BRIEF.md`
70
+ - `SEMA_INDEX.json`
71
+ - `docs/persistencia-vendor-first.md`
@@ -0,0 +1,155 @@
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.