@semacode/cli 0.8.2 → 0.8.4

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.
package/README.md CHANGED
@@ -20,7 +20,7 @@ sema --help
20
20
  ## Instalacao via tarball da release
21
21
 
22
22
  ```bash
23
- npm install -g ./sema-cli-0.8.2.tgz
23
+ npm install -g ./sema-cli-0.8.4.tgz
24
24
  ```
25
25
 
26
26
  Ou direto da GitHub Release:
@@ -39,7 +39,7 @@ npx sema --help
39
39
  Ou, se voce estiver testando um tarball local:
40
40
 
41
41
  ```bash
42
- npm install ./sema-cli-0.8.2.tgz
42
+ npm install ./sema-cli-0.8.4.tgz
43
43
  npx sema --help
44
44
  ```
45
45
 
package/dist/index.js CHANGED
@@ -15,8 +15,12 @@ const STARTER_IA = `Voce esta trabalhando com Sema, um Protocolo de Governanca d
15
15
 
16
16
  Importante:
17
17
  - a Sema se apresenta publicamente como protocolo e funciona tecnicamente como linguagem de intencao
18
+ - a Sema e protocolo de governanca semantica, nao gerador magico que deveria fazer tudo
18
19
  - a Sema modela contratos, estados, fluxos, erros, efeitos e garantias
19
20
  - a Sema gera codigo e scaffolding real para TypeScript, Python e Dart
21
+ - a Sema usa \`importar\` para bootstrap revisavel, nao para contrato final automatico
22
+ - a Sema usa \`drift\` para medir diferenca entre contrato e codigo vivo
23
+ - a Sema usa \`impl\` para ligar task a simbolo real do runtime
20
24
  - a Sema pode servir de base para interfaces graficas elegantes e coerentes
21
25
  - a Sema nao gera uma interface completa sozinha no estado atual
22
26
  - trate a Sema como cerebro semantico da aplicacao, nao como gerador magico de front-end pronto
@@ -29,6 +33,7 @@ Regras:
29
33
  - trate \`diagnosticos --json\` como fonte de correcao
30
34
  - use \`sema formatar\` como fonte unica de estilo
31
35
  - preserve a intencao do contrato
36
+ - nao cobre da Sema adivinhacao de negocio que nao esta no contrato nem no codigo
32
37
 
33
38
  Comandos essenciais:
34
39
  - contexto completo do modulo: \`sema contexto-ia <arquivo.sema>\`
@@ -37,6 +42,8 @@ Comandos essenciais:
37
42
  - validacao: \`sema validar <arquivo.sema> --json\`
38
43
  - diagnosticos: \`sema diagnosticos <arquivo.sema> --json\`
39
44
  - formatacao: \`sema formatar <arquivo.sema>\`
45
+ - importacao assistida de legado: \`sema importar <nestjs|fastapi|flask|nextjs|firebase|dotnet|java|go|rust|cpp|typescript|python|dart> <diretorio> --saida <diretorio>\`
46
+ - auditoria de coerencia contra codigo vivo: \`sema drift <arquivo-ou-pasta> [--json]\`
40
47
  - geracao de codigo: \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart> --saida <diretorio>\`
41
48
  - verificacao final: \`sema verificar <arquivo-ou-pasta> [--json]\`
42
49
 
@@ -48,8 +55,9 @@ Depois de editar:
48
55
  1. rode \`sema formatar\`
49
56
  2. rode \`sema validar --json\`
50
57
  3. se houver falha, use \`diagnosticos --json\`
51
- 4. se a tarefa pedir codigo derivado, rode \`sema compilar\`
52
- 5. feche com \`sema verificar\` ou \`npm run project:check\`
58
+ 4. se a tarefa partir de legado, rode \`sema drift\`
59
+ 5. se a tarefa pedir codigo derivado, rode \`sema compilar\`
60
+ 6. feche com \`sema verificar\` ou \`npm run project:check\`
53
61
 
54
62
  Priorize sempre:
55
63
  - exemplos oficiais
@@ -1811,6 +1819,18 @@ async function comandoAjudaIa() {
1811
1819
  console.log("");
1812
1820
  console.log(renderizarCabecalhoDocsIa(descoberta));
1813
1821
  console.log("");
1822
+ console.log("O que a Sema faz de verdade");
1823
+ console.log("- Governa contrato, intencao, erro, efeito, garantia, fluxo e vinculo com implementacao viva.");
1824
+ console.log("- Usa `importar` para bootstrap revisavel de legado.");
1825
+ console.log("- Usa `impl` para ligar contrato a simbolos reais.");
1826
+ console.log("- Usa `drift` para medir divergencia entre contrato e codigo vivo.");
1827
+ console.log("- Usa `contexto-ia` para preparar AST, IR, diagnosticos e drift antes da edicao.");
1828
+ console.log("");
1829
+ console.log("O que a Sema nao promete");
1830
+ console.log("- Nao escreve contrato final sozinho.");
1831
+ console.log("- Nao substitui decisao arquitetural.");
1832
+ console.log("- Nao adivinha regra de negocio que o codigo nao explicita.");
1833
+ console.log("");
1814
1834
  console.log("Fluxo recomendado");
1815
1835
  console.log("- Use `sema starter-ia` para um texto curto de onboarding.");
1816
1836
  console.log("- Use `sema prompt-ia` para o prompt-base geral.");
@@ -1824,6 +1844,7 @@ async function comandoAjudaIa() {
1824
1844
  console.log("Regra pratica");
1825
1845
  console.log("- Se voce quer testar a Sema de verdade, nao peca so HTML solto.");
1826
1846
  console.log("- Peca `.sema` + arquitetura + React + TypeScript, ou use o modo `Sema primeiro`.");
1847
+ console.log("- Se o projeto ja existe, trate `importar` como rascunho e `drift` como juiz.");
1827
1848
  return 0;
1828
1849
  }
1829
1850
  async function comandoPromptIa() {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ # AGENT_STARTER
2
+
3
+ Use este texto como starter curto para qualquer IA antes de editar `.sema`.
4
+
5
+ ```text
6
+ Voce esta trabalhando com Sema, um Protocolo de Governanca de Intencao para IA e backend vivo.
7
+
8
+ Importante:
9
+ - a Sema e protocolo de governanca semantica, nao gerador magico que deveria fazer tudo
10
+ - a Sema modela contratos, estados, fluxos, erros, efeitos e garantias
11
+ - a Sema gera codigo e scaffolding real para TypeScript, Python e Dart
12
+ - a Sema usa `importar` para bootstrap revisavel, nao para contrato final automatico
13
+ - a Sema usa `drift` para medir diferenca entre contrato e codigo vivo
14
+ - a Sema usa `impl` para ligar task a simbolo real do runtime
15
+ - a Sema pode servir de base para interfaces graficas elegantes e coerentes
16
+ - a Sema nao gera uma interface completa sozinha no estado atual
17
+ - trate a Sema como cerebro semantico da aplicacao, nao como gerador magico de front-end pronto
18
+ - se a tarefa envolver UI, prefira pedir Sema + React + TypeScript ou Sema + arquitetura de front-end
19
+ - evite pedir HTML unico solto quando a intencao for testar a Sema de verdade
20
+
21
+ Regras:
22
+ - nao invente sintaxe fora da gramatica e dos exemplos oficiais
23
+ - trate `ir --json` como fonte de verdade semantica
24
+ - trate `diagnosticos --json` como fonte de correcao
25
+ - use `sema formatar` como fonte unica de estilo
26
+ - preserve a intencao do contrato
27
+ - nao cobre da Sema adivinhacao de negocio que nao esta no contrato nem no codigo
28
+
29
+ Comandos essenciais:
30
+ - contexto completo do modulo: `sema contexto-ia <arquivo.sema>`
31
+ - estrutura sintatica: `sema ast <arquivo.sema> --json`
32
+ - estrutura semantica: `sema ir <arquivo.sema> --json`
33
+ - validacao: `sema validar <arquivo.sema> --json`
34
+ - diagnosticos: `sema diagnosticos <arquivo.sema> --json`
35
+ - formatacao: `sema formatar <arquivo.sema>`
36
+ - importacao assistida de legado: `sema importar <nestjs|fastapi|flask|typescript|python|dart> <diretorio> --saida <diretorio>`
37
+ - geracao de codigo: `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart> --saida <diretorio>`
38
+ - verificacao final: `sema verificar <arquivo-ou-pasta> [--json]`
39
+
40
+ Regra pratica de ouro:
41
+ - se a tarefa pedir codigo derivado, `sema compilar` e obrigatorio
42
+ - se a tarefa partir de projeto que nao nasceu com Sema, `sema importar` deve entrar antes da lapidacao semantica
43
+ - se a tarefa pedir apenas leitura ou correcao sem gerar codigo, `sema compilar` pode ficar fora
44
+
45
+ Antes de editar:
46
+ 1. leia README, docs de IA e um exemplo oficial parecido
47
+ 2. consulte AST e IR do modulo alvo
48
+
49
+ Depois de editar:
50
+ 1. rode `sema formatar`
51
+ 2. rode `sema validar --json`
52
+ 3. se houver falha, use `diagnosticos --json`
53
+ 4. se a tarefa pedir codigo derivado, rode `sema compilar`
54
+ 5. feche com `sema verificar` ou `npm run project:check`
55
+
56
+ Priorize sempre:
57
+ - exemplos oficiais
58
+ - JSON da CLI
59
+ - consistencia semantica
60
+
61
+ Nao improvise quando faltar contexto.
62
+ ```
63
+
64
+ Documentos de apoio:
65
+
66
+ - [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
67
+ - [prompt-base-ia-sema.md](./prompt-base-ia-sema.md)
68
+ - [fluxo-pratico-ia-sema.md](./fluxo-pratico-ia-sema.md)
@@ -0,0 +1,143 @@
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
+ ## Principio central
6
+
7
+ Uma IA entende uma linguagem nova quando recebe quatro camadas de contexto:
8
+
9
+ 1. sintaxe
10
+ 2. semantica
11
+ 3. estrutura intermediaria estavel
12
+ 4. exemplos reais
13
+
14
+ Sem essas quatro camadas, o modelo comeca a adivinhar. E adivinhacao em linguagem de contrato e pedir para nascer bug feio.
15
+
16
+ Antes de qualquer outra coisa, a IA tambem precisa receber a **moldura correta**:
17
+
18
+ - a Sema e um protocolo de governanca de intencao
19
+ - a Sema nao foi feita para "automatizar tudo"
20
+ - a Sema existe para explicitar, alinhar e verificar contrato contra sistema vivo
21
+ - curadoria humana continua parte da proposta
22
+
23
+ Se a IA errar essa moldura, ela vai cobrar da ferramenta a coisa errada e operar feito um animal apressado.
24
+
25
+ ## Camada 1. Sintaxe
26
+
27
+ A IA precisa saber como a linguagem e escrita.
28
+
29
+ Fontes principais:
30
+
31
+ - [gramatica-inicial.md](./gramatica-inicial.md)
32
+ - [sintaxe.md](./sintaxe.md)
33
+ - [gramatica.ebnf](../pacotes/nucleo/src/parser/gramatica.ebnf)
34
+
35
+ Objetivo dessa camada:
36
+
37
+ - reconhecer blocos validos
38
+ - entender delimitadores
39
+ - nao inventar palavras-chave
40
+ - respeitar a organizacao canonicamente formatada
41
+
42
+ ## Camada 2. Semantica
43
+
44
+ Depois de saber ler, a IA precisa saber o que cada bloco significa.
45
+
46
+ Fontes principais:
47
+
48
+ - [README.md](../README.md)
49
+ - [especificacao-inicial.md](./especificacao-inicial.md)
50
+ - [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
51
+
52
+ Objetivo dessa camada:
53
+
54
+ - distinguir contrato interno de `task`
55
+ - distinguir contrato publico de `route`
56
+ - entender `effects`, `guarantees`, `error`, `state` e `flow`
57
+ - operar na linguagem como especificacao executavel, nao como texto decorativo
58
+ - entender que `importar` e bootstrap
59
+ - entender que `drift` e regua de coerencia contra o runtime
60
+ - entender que `impl` e ponte rastreavel para simbolo vivo
61
+
62
+ ## Camada 3. Estrutura intermediaria estavel
63
+
64
+ Essa e a camada que faz a parada parar de ser um cassino.
65
+
66
+ Em vez de confiar que a IA vai interpretar `.sema` cru de primeira, use a CLI como tradutora oficial da linguagem.
67
+
68
+ Comandos principais:
69
+
70
+ ```bash
71
+ node pacotes/cli/dist/index.js validar arquivo.sema --json
72
+ node pacotes/cli/dist/index.js diagnosticos arquivo.sema --json
73
+ node pacotes/cli/dist/index.js ast arquivo.sema --json
74
+ node pacotes/cli/dist/index.js ir arquivo.sema --json
75
+ node pacotes/cli/dist/index.js verificar exemplos --json --saida ./.tmp/verificacao-ia
76
+ ```
77
+
78
+ Como cada comando ajuda:
79
+
80
+ - `validar --json`: diz se a base esta semanticamente valida
81
+ - `diagnosticos --json`: devolve erros e avisos como contrato estruturado
82
+ - `ast --json`: mostra a forma sintatica escrita
83
+ - `ir --json`: mostra a forma semantica resolvida
84
+ - `verificar --json`: mostra o estado operacional do projeto
85
+
86
+ Se a IA puder consumir `ir --json`, melhor ainda. E ali que a linguagem fica menos ambigua e mais utilizavel para automacao.
87
+
88
+ ## Camada 4. Exemplos reais
89
+
90
+ Modelo aprende muito por padrao. Por isso, bons exemplos valem quase tanto quanto especificacao.
91
+
92
+ Arquivos recomendados:
93
+
94
+ - [pagamento.sema](../exemplos/pagamento.sema)
95
+ - [pagamento_dominio.sema](../exemplos/pagamento_dominio.sema)
96
+ - [automacao.sema](../exemplos/automacao.sema)
97
+ - [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
98
+ - [crud_simples.sema](../exemplos/crud_simples.sema)
99
+
100
+ O vertical de pagamento do `0.5` deve ser tratado como a referencia principal.
101
+
102
+ ## O que a IA nao deve fazer
103
+
104
+ - inventar palavras-chave fora da gramatica
105
+ - introduzir blocos inexistentes
106
+ - assumir semantica que nao aparece na especificacao
107
+ - tratar draft importado como contrato final so porque veio da CLI
108
+ - tratar a Sema como gerador magico de sistema completo
109
+ - editar `.sema` sem rodar `sema formatar`
110
+ - encerrar alteracao sem consultar `diagnosticos` quando houver falha
111
+
112
+ ## O que a IA deve fazer
113
+
114
+ - usar a gramatica e os exemplos como fonte de estilo
115
+ - usar a IR como fonte de verdade semantica sempre que possivel
116
+ - usar diagnosticos estruturados como guia de correcao
117
+ - rodar o formatador antes de considerar o trabalho pronto
118
+ - validar e verificar a mudanca no mesmo fluxo
119
+
120
+ ## Estrategia recomendada
121
+
122
+ Se voce for instruir uma IA para trabalhar com Sema, entregue o contexto nesta ordem:
123
+
124
+ 1. [README.md](../README.md)
125
+ 2. [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
126
+ 3. [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
127
+ 4. [prompt-base-ia-sema.md](./prompt-base-ia-sema.md)
128
+ 5. `ast --json`, `ir --json` e `diagnosticos --json` do modulo alvo
129
+
130
+ Essa ordem faz a IA ir de contexto geral para contexto operacional, em vez de cair direto num arquivo cru e sair chutando.
131
+
132
+ ## Regra de ouro
133
+
134
+ A Sema foi desenhada para ser entendida por IA, mas isso nao significa que a IA vai adivinhar sozinha.
135
+
136
+ Ela entende bem quando recebe:
137
+
138
+ - especificacao
139
+ - exemplos
140
+ - JSON estrutural
141
+ - feedback automatico
142
+
143
+ Sem isso, ate o modelo mais caro vira estagiario emocionado.
@@ -0,0 +1,173 @@
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 o modulo alvo
11
+ 3. consultar AST e IR
12
+ 4. editar
13
+ 5. formatar
14
+ 6. validar
15
+ 7. verificar
16
+
17
+ ## Fluxo detalhado
18
+
19
+ ### Etapa 1. Ler contexto minimo
20
+
21
+ Antes de tocar em qualquer arquivo, a IA deve ler:
22
+
23
+ - [README.md](../README.md)
24
+ - [integracao-com-ia.md](./integracao-com-ia.md)
25
+ - [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
26
+
27
+ Se o trabalho estiver ligado a pagamento, ler tambem:
28
+
29
+ - [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
30
+
31
+ ### Etapa 2. Ler o modulo alvo e um exemplo parecido
32
+
33
+ A IA deve identificar:
34
+
35
+ - qual arquivo sera editado
36
+ - qual modulo esse arquivo representa
37
+ - qual exemplo oficial mais se parece com o que precisa ser feito
38
+
39
+ Regra pratica:
40
+
41
+ - automacao: [automacao.sema](../exemplos/automacao.sema)
42
+ - erros e fluxos de falha: [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
43
+ - borda publica e pagamento: [pagamento.sema](../exemplos/pagamento.sema)
44
+
45
+ ### Etapa 3. Consultar AST e IR
46
+
47
+ Antes de alterar, a IA deve executar:
48
+
49
+ ```bash
50
+ node pacotes/cli/dist/index.js ast caminho\\arquivo.sema --json
51
+ node pacotes/cli/dist/index.js ir caminho\\arquivo.sema --json
52
+ ```
53
+
54
+ Objetivo:
55
+
56
+ - ver a forma sintatica
57
+ - ver a forma semantica resolvida
58
+ - evitar interpretar errado o contrato
59
+
60
+ ### Etapa 4. Editar o `.sema`
61
+
62
+ Ao editar, a IA deve:
63
+
64
+ - preservar a intencao do modulo
65
+ - seguir a gramatica existente
66
+ - evitar criar bloco ou operador nao suportado
67
+ - preferir a forma ja usada nos exemplos oficiais
68
+
69
+ ### Etapa 5. Formatar
70
+
71
+ Depois da edicao:
72
+
73
+ ```bash
74
+ node pacotes/cli/dist/index.js formatar caminho\\arquivo.sema
75
+ node pacotes/cli/dist/index.js formatar caminho\\arquivo.sema --check
76
+ ```
77
+
78
+ Se `--check` falhar, o trabalho ainda nao esta pronto.
79
+
80
+ ### Etapa 6. Validar e diagnosticar
81
+
82
+ Depois da formatacao:
83
+
84
+ ```bash
85
+ node pacotes/cli/dist/index.js validar caminho\\arquivo.sema --json
86
+ node pacotes/cli/dist/index.js diagnosticos caminho\\arquivo.sema --json
87
+ ```
88
+
89
+ Se houver falha:
90
+
91
+ - usar os diagnosticos estruturados como contrato de correcao
92
+ - nao insistir em leitura manual teimosa quando a CLI ja disse onde esta a merda
93
+
94
+ ### Etapa 6.5. Compilar quando a tarefa pedir codigo derivado
95
+
96
+ Se a tarefa nao for so editar contrato, mas tambem gerar base de implementacao, a IA deve rodar explicitamente:
97
+
98
+ ```bash
99
+ node pacotes/cli/dist/index.js compilar caminho\\arquivo.sema --alvo typescript --saida .\\saida\\typescript
100
+ ```
101
+
102
+ Ou trocar o alvo para `python` ou `dart`, conforme o caso.
103
+
104
+ Regra pratica:
105
+
106
+ - se a entrega inclui codigo derivado, `sema compilar` nao e opcional
107
+ - se a IA ignorar `compilar`, ela pode acabar reescrevendo na mao coisa que a Sema ja gera sozinha, que e burrice operacional
108
+
109
+ ### Etapa 7. Verificar
110
+
111
+ No fechamento:
112
+
113
+ ```bash
114
+ node pacotes/cli/dist/index.js verificar exemplos --json --saida ./.tmp/verificacao-ia
115
+ ```
116
+
117
+ Ou, no fluxo consolidado do projeto:
118
+
119
+ ```bash
120
+ npm run project:check
121
+ ```
122
+
123
+ ## Fluxo minimo para automacao
124
+
125
+ Se voce quiser o menor fluxo aceitavel para uma IA:
126
+
127
+ ```bash
128
+ node pacotes/cli/dist/index.js ir caminho\\arquivo.sema --json
129
+ node pacotes/cli/dist/index.js formatar caminho\\arquivo.sema
130
+ node pacotes/cli/dist/index.js validar caminho\\arquivo.sema --json
131
+ ```
132
+
133
+ Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
134
+
135
+ Se a tarefa envolver codigo derivado, o fluxo minimo aceitavel vira:
136
+
137
+ ```bash
138
+ node pacotes/cli/dist/index.js ir caminho\\arquivo.sema --json
139
+ node pacotes/cli/dist/index.js formatar caminho\\arquivo.sema
140
+ node pacotes/cli/dist/index.js validar caminho\\arquivo.sema --json
141
+ node pacotes/cli/dist/index.js compilar caminho\\arquivo.sema --alvo typescript --saida .\\saida\\typescript
142
+ ```
143
+
144
+ ## Checklist de saida
145
+
146
+ Antes de considerar a alteracao pronta, a IA deve responder mentalmente:
147
+
148
+ - eu entendi o modulo e o contrato?
149
+ - eu mantive a sintaxe dentro do que a linguagem suporta?
150
+ - eu formatei o arquivo?
151
+ - eu validei?
152
+ - eu olhei diagnosticos se algo falhou?
153
+ - eu fechei com verificacao?
154
+
155
+ Se alguma resposta for "nao", ainda nao terminou.
156
+
157
+ ## Regra de ouro
158
+
159
+ Em Sema, a IA nao deveria operar no escuro.
160
+
161
+ Ela deve trabalhar sempre com:
162
+
163
+ - exemplo oficial
164
+ - AST
165
+ - IR
166
+ - diagnosticos
167
+ - formatador
168
+
169
+ Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e nao so no discurso bonito.
170
+
171
+ ## Observacao sobre caminhos
172
+
173
+ Esta documentacao usa caminhos relativos ao repositorio, nao caminhos locais de maquina. Isso permite que qualquer pessoa clone o projeto e use os links e referencias sem depender de uma pasta especifica no proprio ambiente.
@@ -0,0 +1,94 @@
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.
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, 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. README do projeto
20
+ 2. gramatica e documentacao de sintaxe da Sema
21
+ 3. especificacao semantica da linguagem
22
+ 4. exemplos oficiais, com prioridade para o vertical de pagamento
23
+ 5. AST, IR e diagnosticos exportados pela CLI em JSON
24
+
25
+ Regras de operacao:
26
+ - preserve o significado semantico
27
+ - use o formatador oficial da Sema como fonte unica de estilo
28
+ - use diagnosticos estruturados como contrato de correcao
29
+ - use a IR como fonte de verdade semantica quando houver duvida
30
+ - nao conclua uma alteracao sem validar e verificar o modulo
31
+ - trate `importar` como bootstrap revisavel, nao como contrato final automatico
32
+ - trate `drift` como medicao de verdade contra codigo vivo
33
+ - trate `impl` como ponte entre task e simbolo real
34
+ - nao invente regra de negocio que o contrato e o codigo nao sustentem
35
+
36
+ Antes de editar `.sema`, entenda:
37
+ - o module alvo
38
+ - os contratos de task, route, error, effects, guarantees, state e flow
39
+ - os exemplos oficiais relacionados
40
+
41
+ Depois de editar `.sema`, execute este fluxo:
42
+ 1. formatar
43
+ 2. validar
44
+ 3. diagnosticar, se houver falha
45
+ 4. verificar
46
+
47
+ Se houver conflito entre texto livre e IR/diagnosticos, priorize a IR e os diagnosticos da CLI.
48
+
49
+ Se algo nao estiver claro, siga a forma ja usada nos exemplos oficiais. Nao improvise sem base.
50
+ ```
51
+
52
+ ## Variacao curta
53
+
54
+ Se voce quiser um prompt menor para uso frequente:
55
+
56
+ ```text
57
+ 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.
58
+ ```
59
+
60
+ ## Variacao para revisao
61
+
62
+ Use esta versao quando a IA for revisar `.sema` em vez de criar:
63
+
64
+ ```text
65
+ 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.
66
+ ```
67
+
68
+ ## Variacao para geracao
69
+
70
+ Use esta versao quando a IA for escrever modulo novo:
71
+
72
+ ```text
73
+ 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.
74
+ ```
75
+
76
+ ## Variacao para correcao guiada por diagnostico
77
+
78
+ Use esta versao quando a IA ja tiver erro concreto para corrigir:
79
+
80
+ ```text
81
+ 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.
82
+ ```
83
+
84
+ ## O que sempre anexar junto do prompt
85
+
86
+ Idealmente, acompanhe o prompt com:
87
+
88
+ - o arquivo `.sema` alvo
89
+ - o resultado de `sema ast --json`
90
+ - o resultado de `sema ir --json`
91
+ - o resultado de `sema diagnosticos --json`, se houver erro
92
+ - um exemplo oficial parecido
93
+
94
+ Sem isso, a IA pode ate acertar. Com isso, ela trabalha direito.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-dart",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-python",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/gerador-typescript",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/nucleo",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sema/padroes",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@semacode/cli",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "description": "CLI do Protocolo de Governanca de Intencao Sema para validar contratos, medir drift e operar backend vivo.",
5
5
  "type": "module",
6
6
  "icon": "logo.png",
@@ -35,16 +35,17 @@
35
35
  "types": "dist/index.d.ts",
36
36
  "files": [
37
37
  "dist",
38
+ "docs",
38
39
  "logo.png",
39
40
  "README.md",
40
41
  "LICENSE"
41
42
  ],
42
43
  "dependencies": {
43
- "@sema/nucleo": "0.8.2",
44
- "@sema/gerador-dart": "0.8.2",
45
- "@sema/gerador-python": "0.8.2",
46
- "@sema/gerador-typescript": "0.8.2",
47
- "@sema/padroes": "0.8.2",
44
+ "@sema/nucleo": "0.8.4",
45
+ "@sema/gerador-dart": "0.8.4",
46
+ "@sema/gerador-python": "0.8.4",
47
+ "@sema/gerador-typescript": "0.8.4",
48
+ "@sema/padroes": "0.8.4",
48
49
  "typescript": "^5.8.3"
49
50
  },
50
51
  "bundledDependencies": [