@semacode/cli 0.8.2 → 0.8.3
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 +2 -2
- package/docs/AGENT_STARTER.md +63 -0
- package/docs/como-ensinar-a-sema-para-ia.md +129 -0
- package/docs/fluxo-pratico-ia-sema.md +173 -0
- package/docs/prompt-base-ia-sema.md +88 -0
- package/node_modules/@sema/gerador-dart/package.json +1 -1
- package/node_modules/@sema/gerador-python/package.json +1 -1
- package/node_modules/@sema/gerador-typescript/package.json +1 -1
- package/node_modules/@sema/nucleo/package.json +1 -1
- package/node_modules/@sema/padroes/package.json +1 -1
- package/package.json +7 -6
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.
|
|
23
|
+
npm install -g ./sema-cli-0.8.3.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.
|
|
42
|
+
npm install ./sema-cli-0.8.3.tgz
|
|
43
43
|
npx sema --help
|
|
44
44
|
```
|
|
45
45
|
|
|
@@ -0,0 +1,63 @@
|
|
|
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 modela contratos, estados, fluxos, erros, efeitos e garantias
|
|
10
|
+
- a Sema gera codigo e scaffolding real para TypeScript, Python e Dart
|
|
11
|
+
- a Sema pode servir de base para interfaces graficas elegantes e coerentes
|
|
12
|
+
- a Sema nao gera uma interface completa sozinha no estado atual
|
|
13
|
+
- trate a Sema como cerebro semantico da aplicacao, nao como gerador magico de front-end pronto
|
|
14
|
+
- se a tarefa envolver UI, prefira pedir Sema + React + TypeScript ou Sema + arquitetura de front-end
|
|
15
|
+
- evite pedir HTML unico solto quando a intencao for testar a Sema de verdade
|
|
16
|
+
|
|
17
|
+
Regras:
|
|
18
|
+
- nao invente sintaxe fora da gramatica e dos exemplos oficiais
|
|
19
|
+
- trate `ir --json` como fonte de verdade semantica
|
|
20
|
+
- trate `diagnosticos --json` como fonte de correcao
|
|
21
|
+
- use `sema formatar` como fonte unica de estilo
|
|
22
|
+
- preserve a intencao do contrato
|
|
23
|
+
|
|
24
|
+
Comandos essenciais:
|
|
25
|
+
- contexto completo do modulo: `sema contexto-ia <arquivo.sema>`
|
|
26
|
+
- estrutura sintatica: `sema ast <arquivo.sema> --json`
|
|
27
|
+
- estrutura semantica: `sema ir <arquivo.sema> --json`
|
|
28
|
+
- validacao: `sema validar <arquivo.sema> --json`
|
|
29
|
+
- diagnosticos: `sema diagnosticos <arquivo.sema> --json`
|
|
30
|
+
- formatacao: `sema formatar <arquivo.sema>`
|
|
31
|
+
- importacao assistida de legado: `sema importar <nestjs|fastapi|flask|typescript|python|dart> <diretorio> --saida <diretorio>`
|
|
32
|
+
- geracao de codigo: `sema compilar <arquivo-ou-pasta> --alvo <typescript|python|dart> --saida <diretorio>`
|
|
33
|
+
- verificacao final: `sema verificar <arquivo-ou-pasta> [--json]`
|
|
34
|
+
|
|
35
|
+
Regra pratica de ouro:
|
|
36
|
+
- se a tarefa pedir codigo derivado, `sema compilar` e obrigatorio
|
|
37
|
+
- se a tarefa partir de projeto que nao nasceu com Sema, `sema importar` deve entrar antes da lapidacao semantica
|
|
38
|
+
- se a tarefa pedir apenas leitura ou correcao sem gerar codigo, `sema compilar` pode ficar fora
|
|
39
|
+
|
|
40
|
+
Antes de editar:
|
|
41
|
+
1. leia README, docs de IA e um exemplo oficial parecido
|
|
42
|
+
2. consulte AST e IR do modulo alvo
|
|
43
|
+
|
|
44
|
+
Depois de editar:
|
|
45
|
+
1. rode `sema formatar`
|
|
46
|
+
2. rode `sema validar --json`
|
|
47
|
+
3. se houver falha, use `diagnosticos --json`
|
|
48
|
+
4. se a tarefa pedir codigo derivado, rode `sema compilar`
|
|
49
|
+
5. feche com `sema verificar` ou `npm run project:check`
|
|
50
|
+
|
|
51
|
+
Priorize sempre:
|
|
52
|
+
- exemplos oficiais
|
|
53
|
+
- JSON da CLI
|
|
54
|
+
- consistencia semantica
|
|
55
|
+
|
|
56
|
+
Nao improvise quando faltar contexto.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Documentos de apoio:
|
|
60
|
+
|
|
61
|
+
- [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
|
|
62
|
+
- [prompt-base-ia-sema.md](./prompt-base-ia-sema.md)
|
|
63
|
+
- [fluxo-pratico-ia-sema.md](./fluxo-pratico-ia-sema.md)
|
|
@@ -0,0 +1,129 @@
|
|
|
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
|
+
## Camada 1. Sintaxe
|
|
17
|
+
|
|
18
|
+
A IA precisa saber como a linguagem e escrita.
|
|
19
|
+
|
|
20
|
+
Fontes principais:
|
|
21
|
+
|
|
22
|
+
- [gramatica-inicial.md](./gramatica-inicial.md)
|
|
23
|
+
- [sintaxe.md](./sintaxe.md)
|
|
24
|
+
- [gramatica.ebnf](../pacotes/nucleo/src/parser/gramatica.ebnf)
|
|
25
|
+
|
|
26
|
+
Objetivo dessa camada:
|
|
27
|
+
|
|
28
|
+
- reconhecer blocos validos
|
|
29
|
+
- entender delimitadores
|
|
30
|
+
- nao inventar palavras-chave
|
|
31
|
+
- respeitar a organizacao canonicamente formatada
|
|
32
|
+
|
|
33
|
+
## Camada 2. Semantica
|
|
34
|
+
|
|
35
|
+
Depois de saber ler, a IA precisa saber o que cada bloco significa.
|
|
36
|
+
|
|
37
|
+
Fontes principais:
|
|
38
|
+
|
|
39
|
+
- [README.md](../README.md)
|
|
40
|
+
- [especificacao-inicial.md](./especificacao-inicial.md)
|
|
41
|
+
- [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
|
|
42
|
+
|
|
43
|
+
Objetivo dessa camada:
|
|
44
|
+
|
|
45
|
+
- distinguir contrato interno de `task`
|
|
46
|
+
- distinguir contrato publico de `route`
|
|
47
|
+
- entender `effects`, `guarantees`, `error`, `state` e `flow`
|
|
48
|
+
- operar na linguagem como especificacao executavel, nao como texto decorativo
|
|
49
|
+
|
|
50
|
+
## Camada 3. Estrutura intermediaria estavel
|
|
51
|
+
|
|
52
|
+
Essa e a camada que faz a parada parar de ser um cassino.
|
|
53
|
+
|
|
54
|
+
Em vez de confiar que a IA vai interpretar `.sema` cru de primeira, use a CLI como tradutora oficial da linguagem.
|
|
55
|
+
|
|
56
|
+
Comandos principais:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
node pacotes/cli/dist/index.js validar arquivo.sema --json
|
|
60
|
+
node pacotes/cli/dist/index.js diagnosticos arquivo.sema --json
|
|
61
|
+
node pacotes/cli/dist/index.js ast arquivo.sema --json
|
|
62
|
+
node pacotes/cli/dist/index.js ir arquivo.sema --json
|
|
63
|
+
node pacotes/cli/dist/index.js verificar exemplos --json --saida ./.tmp/verificacao-ia
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Como cada comando ajuda:
|
|
67
|
+
|
|
68
|
+
- `validar --json`: diz se a base esta semanticamente valida
|
|
69
|
+
- `diagnosticos --json`: devolve erros e avisos como contrato estruturado
|
|
70
|
+
- `ast --json`: mostra a forma sintatica escrita
|
|
71
|
+
- `ir --json`: mostra a forma semantica resolvida
|
|
72
|
+
- `verificar --json`: mostra o estado operacional do projeto
|
|
73
|
+
|
|
74
|
+
Se a IA puder consumir `ir --json`, melhor ainda. E ali que a linguagem fica menos ambigua e mais utilizavel para automacao.
|
|
75
|
+
|
|
76
|
+
## Camada 4. Exemplos reais
|
|
77
|
+
|
|
78
|
+
Modelo aprende muito por padrao. Por isso, bons exemplos valem quase tanto quanto especificacao.
|
|
79
|
+
|
|
80
|
+
Arquivos recomendados:
|
|
81
|
+
|
|
82
|
+
- [pagamento.sema](../exemplos/pagamento.sema)
|
|
83
|
+
- [pagamento_dominio.sema](../exemplos/pagamento_dominio.sema)
|
|
84
|
+
- [automacao.sema](../exemplos/automacao.sema)
|
|
85
|
+
- [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
|
|
86
|
+
- [crud_simples.sema](../exemplos/crud_simples.sema)
|
|
87
|
+
|
|
88
|
+
O vertical de pagamento do `0.5` deve ser tratado como a referencia principal.
|
|
89
|
+
|
|
90
|
+
## O que a IA nao deve fazer
|
|
91
|
+
|
|
92
|
+
- inventar palavras-chave fora da gramatica
|
|
93
|
+
- introduzir blocos inexistentes
|
|
94
|
+
- assumir semantica que nao aparece na especificacao
|
|
95
|
+
- editar `.sema` sem rodar `sema formatar`
|
|
96
|
+
- encerrar alteracao sem consultar `diagnosticos` quando houver falha
|
|
97
|
+
|
|
98
|
+
## O que a IA deve fazer
|
|
99
|
+
|
|
100
|
+
- usar a gramatica e os exemplos como fonte de estilo
|
|
101
|
+
- usar a IR como fonte de verdade semantica sempre que possivel
|
|
102
|
+
- usar diagnosticos estruturados como guia de correcao
|
|
103
|
+
- rodar o formatador antes de considerar o trabalho pronto
|
|
104
|
+
- validar e verificar a mudanca no mesmo fluxo
|
|
105
|
+
|
|
106
|
+
## Estrategia recomendada
|
|
107
|
+
|
|
108
|
+
Se voce for instruir uma IA para trabalhar com Sema, entregue o contexto nesta ordem:
|
|
109
|
+
|
|
110
|
+
1. [README.md](../README.md)
|
|
111
|
+
2. [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
|
|
112
|
+
3. [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
|
|
113
|
+
4. [prompt-base-ia-sema.md](./prompt-base-ia-sema.md)
|
|
114
|
+
5. `ast --json`, `ir --json` e `diagnosticos --json` do modulo alvo
|
|
115
|
+
|
|
116
|
+
Essa ordem faz a IA ir de contexto geral para contexto operacional, em vez de cair direto num arquivo cru e sair chutando.
|
|
117
|
+
|
|
118
|
+
## Regra de ouro
|
|
119
|
+
|
|
120
|
+
A Sema foi desenhada para ser entendida por IA, mas isso nao significa que a IA vai adivinhar sozinha.
|
|
121
|
+
|
|
122
|
+
Ela entende bem quando recebe:
|
|
123
|
+
|
|
124
|
+
- especificacao
|
|
125
|
+
- exemplos
|
|
126
|
+
- JSON estrutural
|
|
127
|
+
- feedback automatico
|
|
128
|
+
|
|
129
|
+
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,88 @@
|
|
|
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, uma DSL semantica orientada a contrato, desenhada para facilitar entendimento e operacao por IA.
|
|
13
|
+
|
|
14
|
+
Trate a Sema como linguagem de especificacao executavel. Nao invente sintaxe, palavras-chave ou blocos fora da gramatica e dos exemplos oficiais.
|
|
15
|
+
|
|
16
|
+
Fontes de verdade, em ordem:
|
|
17
|
+
1. README do projeto
|
|
18
|
+
2. gramatica e documentacao de sintaxe da Sema
|
|
19
|
+
3. especificacao semantica da linguagem
|
|
20
|
+
4. exemplos oficiais, com prioridade para o vertical de pagamento
|
|
21
|
+
5. AST, IR e diagnosticos exportados pela CLI em JSON
|
|
22
|
+
|
|
23
|
+
Regras de operacao:
|
|
24
|
+
- preserve o significado semantico
|
|
25
|
+
- use o formatador oficial da Sema como fonte unica de estilo
|
|
26
|
+
- use diagnosticos estruturados como contrato de correcao
|
|
27
|
+
- use a IR como fonte de verdade semantica quando houver duvida
|
|
28
|
+
- nao conclua uma alteracao sem validar e verificar o modulo
|
|
29
|
+
|
|
30
|
+
Antes de editar `.sema`, entenda:
|
|
31
|
+
- o module alvo
|
|
32
|
+
- os contratos de task, route, error, effects, guarantees, state e flow
|
|
33
|
+
- os exemplos oficiais relacionados
|
|
34
|
+
|
|
35
|
+
Depois de editar `.sema`, execute este fluxo:
|
|
36
|
+
1. formatar
|
|
37
|
+
2. validar
|
|
38
|
+
3. diagnosticar, se houver falha
|
|
39
|
+
4. verificar
|
|
40
|
+
|
|
41
|
+
Se houver conflito entre texto livre e IR/diagnosticos, priorize a IR e os diagnosticos da CLI.
|
|
42
|
+
|
|
43
|
+
Se algo nao estiver claro, siga a forma ja usada nos exemplos oficiais. Nao improvise sem base.
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Variacao curta
|
|
47
|
+
|
|
48
|
+
Se voce quiser um prompt menor para uso frequente:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
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.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Variacao para revisao
|
|
55
|
+
|
|
56
|
+
Use esta versao quando a IA for revisar `.sema` em vez de criar:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
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.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Variacao para geracao
|
|
63
|
+
|
|
64
|
+
Use esta versao quando a IA for escrever modulo novo:
|
|
65
|
+
|
|
66
|
+
```text
|
|
67
|
+
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.
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Variacao para correcao guiada por diagnostico
|
|
71
|
+
|
|
72
|
+
Use esta versao quando a IA ja tiver erro concreto para corrigir:
|
|
73
|
+
|
|
74
|
+
```text
|
|
75
|
+
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.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## O que sempre anexar junto do prompt
|
|
79
|
+
|
|
80
|
+
Idealmente, acompanhe o prompt com:
|
|
81
|
+
|
|
82
|
+
- o arquivo `.sema` alvo
|
|
83
|
+
- o resultado de `sema ast --json`
|
|
84
|
+
- o resultado de `sema ir --json`
|
|
85
|
+
- o resultado de `sema diagnosticos --json`, se houver erro
|
|
86
|
+
- um exemplo oficial parecido
|
|
87
|
+
|
|
88
|
+
Sem isso, a IA pode ate acertar. Com isso, ela trabalha direito.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semacode/cli",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.3",
|
|
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.
|
|
44
|
-
"@sema/gerador-dart": "0.8.
|
|
45
|
-
"@sema/gerador-python": "0.8.
|
|
46
|
-
"@sema/gerador-typescript": "0.8.
|
|
47
|
-
"@sema/padroes": "0.8.
|
|
44
|
+
"@sema/nucleo": "0.8.3",
|
|
45
|
+
"@sema/gerador-dart": "0.8.3",
|
|
46
|
+
"@sema/gerador-python": "0.8.3",
|
|
47
|
+
"@sema/gerador-typescript": "0.8.3",
|
|
48
|
+
"@sema/padroes": "0.8.3",
|
|
48
49
|
"typescript": "^5.8.3"
|
|
49
50
|
},
|
|
50
51
|
"bundledDependencies": [
|