@semacode/cli 1.5.28 → 1.5.29
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/AGENTS.md +279 -265
- package/AGENT_CONTEXT_PACK.json +164 -0
- package/README.md +144 -144
- package/SEMA_BRIEF.curto.txt +7 -7
- package/SEMA_BRIEF.md +464 -65
- package/SEMA_BRIEF.micro.txt +6 -6
- package/SEMA_INDEX.json +6723 -669
- package/dist/bridge.d.ts +52 -0
- package/dist/bridge.js +318 -0
- package/dist/bridge.js.map +1 -0
- package/dist/comandos.d.ts +11 -0
- package/dist/comandos.js +110 -0
- package/dist/comandos.js.map +1 -0
- package/dist/contexto.d.ts +34 -0
- package/dist/contexto.js +197 -0
- package/dist/contexto.js.map +1 -0
- package/dist/drift.d.ts +1 -1
- package/dist/drift.js +32 -5
- package/dist/drift.js.map +1 -1
- package/dist/index.js +391 -64
- package/dist/index.js.map +1 -1
- package/dist/lua-symbols.d.ts +0 -6
- package/dist/lua-symbols.js +11 -78
- package/dist/lua-symbols.js.map +1 -1
- package/dist/projeto.js +6 -0
- package/dist/projeto.js.map +1 -1
- package/dist/tipos.d.ts +1 -1
- package/docs/AGENT_STARTER.md +109 -109
- package/docs/api.md +82 -0
- package/docs/cli.md +175 -175
- package/docs/como-ensinar-a-sema-para-ia.md +155 -155
- package/docs/deploy.md +93 -93
- package/docs/documentacao.md +88 -88
- package/docs/env.md +105 -105
- package/docs/extensao-vscode.md +53 -53
- package/docs/fluxo-pratico-ia-sema.md +187 -187
- package/docs/instalacao-e-primeiro-uso.md +134 -134
- package/docs/integracao-com-ia.md +110 -110
- package/docs/mcp.md +292 -292
- package/docs/pagamento-ponta-a-ponta.md +171 -171
- package/docs/persistencia-vendor-first.md +151 -151
- package/docs/prompt-base-ia-sema.md +111 -111
- package/docs/repositories.md +54 -54
- package/docs/rollback.md +49 -49
- package/docs/seguranca.md +126 -126
- package/docs/sintaxe.md +218 -218
- package/exemplos/author_obra_comum.sema +294 -294
- package/exemplos/author_tema_sensivel.sema +264 -264
- package/exemplos/profile_game.sema +114 -114
- package/exemplos/profile_legal.sema +105 -105
- package/exemplos/profile_ops.sema +110 -110
- package/exemplos/profile_research.sema +104 -104
- package/exemplos/profile_software.sema +123 -123
- package/exemplos/profile_workflow_n8n.sema +99 -99
- package/llms-full.txt +10 -9
- package/llms.txt +8 -7
- package/node_modules/@sema/gerador-css/package.json +1 -1
- package/node_modules/@sema/gerador-dart/package.json +1 -1
- package/node_modules/@sema/gerador-html/package.json +1 -1
- package/node_modules/@sema/gerador-javascript/package.json +1 -1
- package/node_modules/@sema/gerador-lua/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/dist/ast/tipos.d.ts +1 -1
- package/node_modules/@sema/nucleo/dist/index.d.ts +17 -0
- package/node_modules/@sema/nucleo/dist/index.js +28 -0
- package/node_modules/@sema/nucleo/dist/index.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.js +4 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +3 -3
- package/node_modules/@sema/nucleo/dist/parser/parser.js +2 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +2 -2
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +3 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -1
- package/node_modules/@sema/nucleo/package.json +1 -1
- package/node_modules/@sema/padroes/package.json +1 -1
- package/package.json +11 -10
- package/dist/php-symbols.d.ts +0 -24
- package/dist/php-symbols.js +0 -375
- package/dist/php-symbols.js.map +0 -1
package/docs/extensao-vscode.md
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
# Extensao VS Code
|
|
2
|
-
|
|
3
|
-
<!-- sema:i18n -->
|
|
4
|
-
> EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
|
|
5
|
-
> PT: Português depois, com acentos preservados.
|
|
6
|
-
> ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Runbook da extensao `Sema Language Tools`.
|
|
10
|
-
|
|
11
|
-
## Arquivos principais
|
|
12
|
-
|
|
13
|
-
- `pacotes/editor-vscode/package.json`
|
|
14
|
-
- `pacotes/editor-vscode/extension.js`
|
|
15
|
-
- `pacotes/editor-vscode/server.js`
|
|
16
|
-
- `pacotes/editor-vscode/README.md`
|
|
17
|
-
- `pacotes/editor-vscode/CHANGELOG.md`
|
|
18
|
-
|
|
19
|
-
## Empacotar
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
npm run extensao:empacotar
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
O pacote versionado deve aparecer em `.tmp/editor-vscode/sema-language-tools-<versao>.vsix`.
|
|
26
|
-
|
|
27
|
-
## Instalar localmente
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
npm run extensao:instalar-local
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
Ou:
|
|
34
|
-
|
|
35
|
-
```bash
|
|
36
|
-
code --install-extension .tmp/editor-vscode/sema-language-tools-<versao>.vsix --force
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## Smoke test
|
|
40
|
-
|
|
41
|
-
1. Abra um projeto com `.sema`.
|
|
42
|
-
2. Confirme que o Language Server inicia sem crash.
|
|
43
|
-
3. Rode `Sema: Diagnosticar CLI`.
|
|
44
|
-
4. Rode `Sema: Instalar Chave MCP`, cole uma chave `sema_mcp_*` do painel e confirme que a CLI grava a variavel do usuario sem argumento com segredo.
|
|
45
|
-
5. Rode `Sema: Sincronizar EntryPoints IA do Projeto`.
|
|
46
|
-
6. Abra um `.sema` e confirme diagnosticos, highlight e formatacao.
|
|
47
|
-
|
|
48
|
-
## Cuidados
|
|
49
|
-
|
|
50
|
-
- O `extension.js` deve apontar o LSP para `server.js`.
|
|
51
|
-
- A extensao embute instrucoes de IA; atualize a lista de ferramentas MCP privadas quando novos comandos remotos forem adicionados.
|
|
52
|
-
- A chave MCP do painel deve ser instalada via comando da extensao ou `sema mcp-instalar-chave --stdin`; nao trate `SEMA_MCP_AUTH_TOKEN` como token fixo do servidor.
|
|
53
|
-
- A versão da extensao deve bater com a versão pública preparada por `release:preparar-publica`.
|
|
1
|
+
# Extensao VS Code
|
|
2
|
+
|
|
3
|
+
<!-- sema:i18n -->
|
|
4
|
+
> EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
|
|
5
|
+
> PT: Português depois, com acentos preservados.
|
|
6
|
+
> ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Runbook da extensao `Sema Language Tools`.
|
|
10
|
+
|
|
11
|
+
## Arquivos principais
|
|
12
|
+
|
|
13
|
+
- `pacotes/editor-vscode/package.json`
|
|
14
|
+
- `pacotes/editor-vscode/extension.js`
|
|
15
|
+
- `pacotes/editor-vscode/server.js`
|
|
16
|
+
- `pacotes/editor-vscode/README.md`
|
|
17
|
+
- `pacotes/editor-vscode/CHANGELOG.md`
|
|
18
|
+
|
|
19
|
+
## Empacotar
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm run extensao:empacotar
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
O pacote versionado deve aparecer em `.tmp/editor-vscode/sema-language-tools-<versao>.vsix`.
|
|
26
|
+
|
|
27
|
+
## Instalar localmente
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
npm run extensao:instalar-local
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Ou:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
code --install-extension .tmp/editor-vscode/sema-language-tools-<versao>.vsix --force
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Smoke test
|
|
40
|
+
|
|
41
|
+
1. Abra um projeto com `.sema`.
|
|
42
|
+
2. Confirme que o Language Server inicia sem crash.
|
|
43
|
+
3. Rode `Sema: Diagnosticar CLI`.
|
|
44
|
+
4. Rode `Sema: Instalar Chave MCP`, cole uma chave `sema_mcp_*` do painel e confirme que a CLI grava a variavel do usuario sem argumento com segredo.
|
|
45
|
+
5. Rode `Sema: Sincronizar EntryPoints IA do Projeto`.
|
|
46
|
+
6. Abra um `.sema` e confirme diagnosticos, highlight e formatacao.
|
|
47
|
+
|
|
48
|
+
## Cuidados
|
|
49
|
+
|
|
50
|
+
- O `extension.js` deve apontar o LSP para `server.js`.
|
|
51
|
+
- A extensao embute instrucoes de IA; atualize a lista de ferramentas MCP privadas quando novos comandos remotos forem adicionados.
|
|
52
|
+
- A chave MCP do painel deve ser instalada via comando da extensao ou `sema mcp-instalar-chave --stdin`; nao trate `SEMA_MCP_AUTH_TOKEN` como token fixo do servidor.
|
|
53
|
+
- A versão da extensao deve bater com a versão pública preparada por `release:preparar-publica`.
|
|
@@ -1,187 +1,187 @@
|
|
|
1
|
-
# Fluxo Pratico para IA Antes de Editar `.sema`
|
|
2
|
-
|
|
3
|
-
<!-- sema:i18n -->
|
|
4
|
-
> EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
|
|
5
|
-
> PT: Português depois, com acentos preservados.
|
|
6
|
-
> ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Este documento descreve o fluxo operacional recomendado para qualquer IA antes, durante e depois de alterar arquivos `.sema`.
|
|
10
|
-
|
|
11
|
-
Se a IA seguir isso, ela trabalha com contexto. Se não seguir, vira adivinhação gourmet.
|
|
12
|
-
|
|
13
|
-
O ponto central: Sema não é texto para agradar humano. É contrato semântico IA-first. Humanos autorizam e revisam; a IA consome o contrato para decidir o próximo movimento.
|
|
14
|
-
|
|
15
|
-
## Fluxo curto
|
|
16
|
-
|
|
17
|
-
1. ler contexto do projeto
|
|
18
|
-
2. identificar a capacidade da IA
|
|
19
|
-
3. identificar o módulo alvo
|
|
20
|
-
4. consultar o menor artefato semântico suficiente
|
|
21
|
-
5. editar
|
|
22
|
-
6. formatar
|
|
23
|
-
7. validar
|
|
24
|
-
8. verificar
|
|
25
|
-
|
|
26
|
-
## Fluxo detalhado
|
|
27
|
-
|
|
28
|
-
### Etapa 1. Ler contexto mínimo
|
|
29
|
-
|
|
30
|
-
Antes de tocar em qualquer arquivo, a IA deve ler:
|
|
31
|
-
|
|
32
|
-
- [README.md](../README.md)
|
|
33
|
-
- [integração-com-ia.md](./integracao-com-ia.md)
|
|
34
|
-
- [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
|
|
35
|
-
|
|
36
|
-
Se o trabalho estiver ligado a pagamento, ler também:
|
|
37
|
-
|
|
38
|
-
- [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
|
|
39
|
-
|
|
40
|
-
### Etapa 2. Escolher a faixa de capacidade
|
|
41
|
-
|
|
42
|
-
Antes de despejar contexto na IA, escolha o que ela aguenta:
|
|
43
|
-
|
|
44
|
-
- IA pequena ou gratuita: `sema resumo --micro` e `briefing.min.json`
|
|
45
|
-
- IA média: `sema resumo --curto`, `briefing.min.json` e `drift.json`
|
|
46
|
-
- IA grande: `contexto-ia`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
|
|
47
|
-
|
|
48
|
-
### Etapa 3. Ler o módulo alvo e um exemplo parecido
|
|
49
|
-
|
|
50
|
-
A IA deve identificar:
|
|
51
|
-
|
|
52
|
-
- qual arquivo sera editado
|
|
53
|
-
- qual módulo esse arquivo representa
|
|
54
|
-
- qual exemplo oficial mais se parece com o que precisa ser feito
|
|
55
|
-
|
|
56
|
-
Regra pratica:
|
|
57
|
-
|
|
58
|
-
- automacao: [automacao.sema](../exemplos/automacao.sema)
|
|
59
|
-
- erros e fluxos de falha: [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
|
|
60
|
-
- borda pública e pagamento: [pagamento.sema](../exemplos/pagamento.sema)
|
|
61
|
-
|
|
62
|
-
### Etapa 4. Consultar AST e IR quando fizer sentido
|
|
63
|
-
|
|
64
|
-
Antes de alterar, a IA deve executar:
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
sema resumo caminho/arquivo.sema --curto --para mudanca
|
|
68
|
-
sema ast caminho/arquivo.sema --json
|
|
69
|
-
sema ir caminho/arquivo.sema --json
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
Objetivo:
|
|
73
|
-
|
|
74
|
-
- ver a forma sintatica quando a capacidade aguentar
|
|
75
|
-
- ver a forma semântica resolvida quando a capacidade aguentar
|
|
76
|
-
- evitar interpretar errado o contrato
|
|
77
|
-
|
|
78
|
-
### Etapa 5. Editar o `.sema`
|
|
79
|
-
|
|
80
|
-
Ao editar, a IA deve:
|
|
81
|
-
|
|
82
|
-
- preservar a intenção do módulo
|
|
83
|
-
- seguir a gramática existente
|
|
84
|
-
- evitar criar bloco ou operador não suportado
|
|
85
|
-
- preferir a forma já usada nos exemplos oficiais
|
|
86
|
-
- usar blocos existentes como `auth`, `authz`, `dados`, `audit`, `forbidden`, `execucao`, `use`, `state` e `enum` antes de propor sintaxe nova
|
|
87
|
-
- evitar teste fraco em task sensível; `expect { sucesso: verdadeiro }` sozinho não prova semântica operacional
|
|
88
|
-
|
|
89
|
-
### Etapa 6. Formatar
|
|
90
|
-
|
|
91
|
-
Depois da edição:
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
sema formatar caminho/arquivo.sema
|
|
95
|
-
sema formatar caminho/arquivo.sema --check
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
Se `--check` falhar, o trabalho ainda não está pronto.
|
|
99
|
-
|
|
100
|
-
### Etapa 7. Validar e diagnosticar
|
|
101
|
-
|
|
102
|
-
Depois da formatacao:
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
sema validar caminho/arquivo.sema --json
|
|
106
|
-
sema diagnosticos caminho/arquivo.sema --json
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
Se houver falha:
|
|
110
|
-
|
|
111
|
-
- usar os diagnósticos estruturados como contrato de correcao
|
|
112
|
-
- não insistir em leitura manual teimosa quando a CLI já disse onde está a merda
|
|
113
|
-
|
|
114
|
-
### Etapa 7.5. Compilar quando a tarefa pedir código derivado
|
|
115
|
-
|
|
116
|
-
Se a tarefa não for só editar contrato, mas também gerar base de implementacao, a IA deve rodar explicitamente:
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
Ou trocar o alvo para `python` ou `dart`, conforme o caso.
|
|
123
|
-
|
|
124
|
-
Regra pratica:
|
|
125
|
-
|
|
126
|
-
- se a entrega inclui código derivado, `sema compilar` não é opcional
|
|
127
|
-
- se a IA ignorar `compilar`, ela pode acabar reescrevendo na mao coisa que a Sema já gera sozinha, que é burrice operacional
|
|
128
|
-
|
|
129
|
-
### Etapa 8. Verificar
|
|
130
|
-
|
|
131
|
-
No fechamento:
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
## Fluxo mínimo para automacao
|
|
138
|
-
|
|
139
|
-
Se voce quiser o menor fluxo aceitavel para uma IA pequena:
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
sema resumo caminho/arquivo.sema --micro --para mudanca
|
|
143
|
-
sema formatar caminho/arquivo.sema
|
|
144
|
-
sema validar caminho/arquivo.sema --json
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
|
|
148
|
-
|
|
149
|
-
Se a tarefa envolver código derivado, o fluxo mínimo aceitavel vira:
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
sema ir caminho/arquivo.sema --json
|
|
153
|
-
sema formatar caminho/arquivo.sema
|
|
154
|
-
sema validar caminho/arquivo.sema --json
|
|
155
|
-
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
## Checklist de saída
|
|
159
|
-
|
|
160
|
-
Antes de considerar a alteracao pronta, a IA deve responder mentalmente:
|
|
161
|
-
|
|
162
|
-
- eu entendi o módulo e o contrato?
|
|
163
|
-
- eu mantive a sintaxe dentro do que a linguagem suporta?
|
|
164
|
-
- eu formatei o arquivo?
|
|
165
|
-
- eu validei?
|
|
166
|
-
- eu olhei diagnósticos se algo falhou?
|
|
167
|
-
- eu fechei com verificação?
|
|
168
|
-
|
|
169
|
-
Se alguma resposta for "não", ainda não terminou.
|
|
170
|
-
|
|
171
|
-
## Regra de ouro
|
|
172
|
-
|
|
173
|
-
Em Sema, a IA não deveria operar no escuro.
|
|
174
|
-
|
|
175
|
-
Ela deve trabalhar sempre com:
|
|
176
|
-
|
|
177
|
-
- exemplo oficial
|
|
178
|
-
- AST
|
|
179
|
-
- IR
|
|
180
|
-
- diagnósticos
|
|
181
|
-
- formatador
|
|
182
|
-
|
|
183
|
-
Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e não só no discurso bonito.
|
|
184
|
-
|
|
185
|
-
## Observacao sobre caminhos
|
|
186
|
-
|
|
187
|
-
Está documentação usa placeholders de arquivo e pasta, não caminhos do monorepo da Sema. A IA deve adaptar isso ao projeto atual e continuar tratando `sema` como interface pública principal.
|
|
1
|
+
# Fluxo Pratico para IA Antes de Editar `.sema`
|
|
2
|
+
|
|
3
|
+
<!-- sema:i18n -->
|
|
4
|
+
> EN: English first. The canonical operational body below may still be in Portuguese until full translation lands.
|
|
5
|
+
> PT: Português depois, com acentos preservados.
|
|
6
|
+
> ES: Español al final; não traduza comandos, rotas nem sómbolos `.sema` sem contrato.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Este documento descreve o fluxo operacional recomendado para qualquer IA antes, durante e depois de alterar arquivos `.sema`.
|
|
10
|
+
|
|
11
|
+
Se a IA seguir isso, ela trabalha com contexto. Se não seguir, vira adivinhação gourmet.
|
|
12
|
+
|
|
13
|
+
O ponto central: Sema não é texto para agradar humano. É contrato semântico IA-first. Humanos autorizam e revisam; a IA consome o contrato para decidir o próximo movimento.
|
|
14
|
+
|
|
15
|
+
## Fluxo curto
|
|
16
|
+
|
|
17
|
+
1. ler contexto do projeto
|
|
18
|
+
2. identificar a capacidade da IA
|
|
19
|
+
3. identificar o módulo alvo
|
|
20
|
+
4. consultar o menor artefato semântico suficiente
|
|
21
|
+
5. editar
|
|
22
|
+
6. formatar
|
|
23
|
+
7. validar
|
|
24
|
+
8. verificar
|
|
25
|
+
|
|
26
|
+
## Fluxo detalhado
|
|
27
|
+
|
|
28
|
+
### Etapa 1. Ler contexto mínimo
|
|
29
|
+
|
|
30
|
+
Antes de tocar em qualquer arquivo, a IA deve ler:
|
|
31
|
+
|
|
32
|
+
- [README.md](../README.md)
|
|
33
|
+
- [integração-com-ia.md](./integracao-com-ia.md)
|
|
34
|
+
- [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
|
|
35
|
+
|
|
36
|
+
Se o trabalho estiver ligado a pagamento, ler também:
|
|
37
|
+
|
|
38
|
+
- [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
|
|
39
|
+
|
|
40
|
+
### Etapa 2. Escolher a faixa de capacidade
|
|
41
|
+
|
|
42
|
+
Antes de despejar contexto na IA, escolha o que ela aguenta:
|
|
43
|
+
|
|
44
|
+
- IA pequena ou gratuita: `sema resumo --micro` e `briefing.min.json`
|
|
45
|
+
- IA média: `sema resumo --curto`, `briefing.min.json` e `drift.json`
|
|
46
|
+
- IA grande: `contexto-ia`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
|
|
47
|
+
|
|
48
|
+
### Etapa 3. Ler o módulo alvo e um exemplo parecido
|
|
49
|
+
|
|
50
|
+
A IA deve identificar:
|
|
51
|
+
|
|
52
|
+
- qual arquivo sera editado
|
|
53
|
+
- qual módulo esse arquivo representa
|
|
54
|
+
- qual exemplo oficial mais se parece com o que precisa ser feito
|
|
55
|
+
|
|
56
|
+
Regra pratica:
|
|
57
|
+
|
|
58
|
+
- automacao: [automacao.sema](../exemplos/automacao.sema)
|
|
59
|
+
- erros e fluxos de falha: [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
|
|
60
|
+
- borda pública e pagamento: [pagamento.sema](../exemplos/pagamento.sema)
|
|
61
|
+
|
|
62
|
+
### Etapa 4. Consultar AST e IR quando fizer sentido
|
|
63
|
+
|
|
64
|
+
Antes de alterar, a IA deve executar:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
sema resumo caminho/arquivo.sema --curto --para mudanca
|
|
68
|
+
sema ast caminho/arquivo.sema --json
|
|
69
|
+
sema ir caminho/arquivo.sema --json
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Objetivo:
|
|
73
|
+
|
|
74
|
+
- ver a forma sintatica quando a capacidade aguentar
|
|
75
|
+
- ver a forma semântica resolvida quando a capacidade aguentar
|
|
76
|
+
- evitar interpretar errado o contrato
|
|
77
|
+
|
|
78
|
+
### Etapa 5. Editar o `.sema`
|
|
79
|
+
|
|
80
|
+
Ao editar, a IA deve:
|
|
81
|
+
|
|
82
|
+
- preservar a intenção do módulo
|
|
83
|
+
- seguir a gramática existente
|
|
84
|
+
- evitar criar bloco ou operador não suportado
|
|
85
|
+
- preferir a forma já usada nos exemplos oficiais
|
|
86
|
+
- usar blocos existentes como `auth`, `authz`, `dados`, `audit`, `forbidden`, `execucao`, `use`, `state` e `enum` antes de propor sintaxe nova
|
|
87
|
+
- evitar teste fraco em task sensível; `expect { sucesso: verdadeiro }` sozinho não prova semântica operacional
|
|
88
|
+
|
|
89
|
+
### Etapa 6. Formatar
|
|
90
|
+
|
|
91
|
+
Depois da edição:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
sema formatar caminho/arquivo.sema
|
|
95
|
+
sema formatar caminho/arquivo.sema --check
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Se `--check` falhar, o trabalho ainda não está pronto.
|
|
99
|
+
|
|
100
|
+
### Etapa 7. Validar e diagnosticar
|
|
101
|
+
|
|
102
|
+
Depois da formatacao:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
sema validar caminho/arquivo.sema --json
|
|
106
|
+
sema diagnosticos caminho/arquivo.sema --json
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Se houver falha:
|
|
110
|
+
|
|
111
|
+
- usar os diagnósticos estruturados como contrato de correcao
|
|
112
|
+
- não insistir em leitura manual teimosa quando a CLI já disse onde está a merda
|
|
113
|
+
|
|
114
|
+
### Etapa 7.5. Compilar quando a tarefa pedir código derivado
|
|
115
|
+
|
|
116
|
+
Se a tarefa não for só editar contrato, mas também gerar base de implementacao, a IA deve rodar explicitamente:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Ou trocar o alvo para `python` ou `dart`, conforme o caso.
|
|
123
|
+
|
|
124
|
+
Regra pratica:
|
|
125
|
+
|
|
126
|
+
- se a entrega inclui código derivado, `sema compilar` não é opcional
|
|
127
|
+
- se a IA ignorar `compilar`, ela pode acabar reescrevendo na mao coisa que a Sema já gera sozinha, que é burrice operacional
|
|
128
|
+
|
|
129
|
+
### Etapa 8. Verificar
|
|
130
|
+
|
|
131
|
+
No fechamento:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Fluxo mínimo para automacao
|
|
138
|
+
|
|
139
|
+
Se voce quiser o menor fluxo aceitavel para uma IA pequena:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
sema resumo caminho/arquivo.sema --micro --para mudanca
|
|
143
|
+
sema formatar caminho/arquivo.sema
|
|
144
|
+
sema validar caminho/arquivo.sema --json
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
|
|
148
|
+
|
|
149
|
+
Se a tarefa envolver código derivado, o fluxo mínimo aceitavel vira:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
sema ir caminho/arquivo.sema --json
|
|
153
|
+
sema formatar caminho/arquivo.sema
|
|
154
|
+
sema validar caminho/arquivo.sema --json
|
|
155
|
+
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Checklist de saída
|
|
159
|
+
|
|
160
|
+
Antes de considerar a alteracao pronta, a IA deve responder mentalmente:
|
|
161
|
+
|
|
162
|
+
- eu entendi o módulo e o contrato?
|
|
163
|
+
- eu mantive a sintaxe dentro do que a linguagem suporta?
|
|
164
|
+
- eu formatei o arquivo?
|
|
165
|
+
- eu validei?
|
|
166
|
+
- eu olhei diagnósticos se algo falhou?
|
|
167
|
+
- eu fechei com verificação?
|
|
168
|
+
|
|
169
|
+
Se alguma resposta for "não", ainda não terminou.
|
|
170
|
+
|
|
171
|
+
## Regra de ouro
|
|
172
|
+
|
|
173
|
+
Em Sema, a IA não deveria operar no escuro.
|
|
174
|
+
|
|
175
|
+
Ela deve trabalhar sempre com:
|
|
176
|
+
|
|
177
|
+
- exemplo oficial
|
|
178
|
+
- AST
|
|
179
|
+
- IR
|
|
180
|
+
- diagnósticos
|
|
181
|
+
- formatador
|
|
182
|
+
|
|
183
|
+
Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e não só no discurso bonito.
|
|
184
|
+
|
|
185
|
+
## Observacao sobre caminhos
|
|
186
|
+
|
|
187
|
+
Está documentação usa placeholders de arquivo e pasta, não caminhos do monorepo da Sema. A IA deve adaptar isso ao projeto atual e continuar tratando `sema` como interface pública principal.
|