@semacode/cli 0.9.0 → 1.0.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.
- package/README.md +11 -3
- package/dist/index.js +706 -55
- package/dist/index.js.map +1 -1
- package/docs/AGENT_STARTER.md +10 -4
- package/docs/como-ensinar-a-sema-para-ia.md +17 -11
- package/docs/fluxo-pratico-ia-sema.md +42 -38
- package/docs/instalacao-e-primeiro-uso.md +189 -0
- package/docs/integracao-com-ia.md +228 -0
- package/docs/pagamento-ponta-a-ponta.md +155 -0
- package/docs/prompt-base-ia-sema.md +10 -3
- package/docs/sintaxe.md +267 -0
- package/exemplos/automacao.sema +107 -0
- package/exemplos/cadastro_usuario.sema +54 -0
- package/exemplos/calculadora.sema +78 -0
- package/exemplos/crud_simples.sema +89 -0
- package/exemplos/operacao_estrategia.sema +402 -0
- package/exemplos/pagamento.sema +222 -0
- package/exemplos/pagamento_dominio.sema +35 -0
- package/exemplos/testes_embutidos.sema +45 -0
- package/exemplos/tratamento_erro.sema +157 -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
|
@@ -7,12 +7,13 @@ Se a IA seguir isso, ela trabalha com contexto. Se nao seguir, vira adivinhacao
|
|
|
7
7
|
## Fluxo curto
|
|
8
8
|
|
|
9
9
|
1. ler contexto do projeto
|
|
10
|
-
2. identificar
|
|
11
|
-
3.
|
|
12
|
-
4.
|
|
13
|
-
5.
|
|
14
|
-
6.
|
|
15
|
-
7.
|
|
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
|
|
16
17
|
|
|
17
18
|
## Fluxo detalhado
|
|
18
19
|
|
|
@@ -28,7 +29,15 @@ Se o trabalho estiver ligado a pagamento, ler tambem:
|
|
|
28
29
|
|
|
29
30
|
- [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
|
|
30
31
|
|
|
31
|
-
### Etapa 2.
|
|
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
|
|
32
41
|
|
|
33
42
|
A IA deve identificar:
|
|
34
43
|
|
|
@@ -42,22 +51,23 @@ Regra pratica:
|
|
|
42
51
|
- erros e fluxos de falha: [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
|
|
43
52
|
- borda publica e pagamento: [pagamento.sema](../exemplos/pagamento.sema)
|
|
44
53
|
|
|
45
|
-
### Etapa
|
|
54
|
+
### Etapa 4. Consultar AST e IR quando fizer sentido
|
|
46
55
|
|
|
47
56
|
Antes de alterar, a IA deve executar:
|
|
48
57
|
|
|
49
58
|
```bash
|
|
50
|
-
|
|
51
|
-
|
|
59
|
+
sema resumo caminho/arquivo.sema --curto --para mudanca
|
|
60
|
+
sema ast caminho/arquivo.sema --json
|
|
61
|
+
sema ir caminho/arquivo.sema --json
|
|
52
62
|
```
|
|
53
63
|
|
|
54
64
|
Objetivo:
|
|
55
65
|
|
|
56
|
-
- ver a forma sintatica
|
|
57
|
-
- ver a forma semantica resolvida
|
|
66
|
+
- ver a forma sintatica quando a capacidade aguentar
|
|
67
|
+
- ver a forma semantica resolvida quando a capacidade aguentar
|
|
58
68
|
- evitar interpretar errado o contrato
|
|
59
69
|
|
|
60
|
-
### Etapa
|
|
70
|
+
### Etapa 5. Editar o `.sema`
|
|
61
71
|
|
|
62
72
|
Ao editar, a IA deve:
|
|
63
73
|
|
|
@@ -66,24 +76,24 @@ Ao editar, a IA deve:
|
|
|
66
76
|
- evitar criar bloco ou operador nao suportado
|
|
67
77
|
- preferir a forma ja usada nos exemplos oficiais
|
|
68
78
|
|
|
69
|
-
### Etapa
|
|
79
|
+
### Etapa 6. Formatar
|
|
70
80
|
|
|
71
81
|
Depois da edicao:
|
|
72
82
|
|
|
73
83
|
```bash
|
|
74
|
-
|
|
75
|
-
|
|
84
|
+
sema formatar caminho/arquivo.sema
|
|
85
|
+
sema formatar caminho/arquivo.sema --check
|
|
76
86
|
```
|
|
77
87
|
|
|
78
88
|
Se `--check` falhar, o trabalho ainda nao esta pronto.
|
|
79
89
|
|
|
80
|
-
### Etapa
|
|
90
|
+
### Etapa 7. Validar e diagnosticar
|
|
81
91
|
|
|
82
92
|
Depois da formatacao:
|
|
83
93
|
|
|
84
94
|
```bash
|
|
85
|
-
|
|
86
|
-
|
|
95
|
+
sema validar caminho/arquivo.sema --json
|
|
96
|
+
sema diagnosticos caminho/arquivo.sema --json
|
|
87
97
|
```
|
|
88
98
|
|
|
89
99
|
Se houver falha:
|
|
@@ -91,12 +101,12 @@ Se houver falha:
|
|
|
91
101
|
- usar os diagnosticos estruturados como contrato de correcao
|
|
92
102
|
- nao insistir em leitura manual teimosa quando a CLI ja disse onde esta a merda
|
|
93
103
|
|
|
94
|
-
### Etapa
|
|
104
|
+
### Etapa 7.5. Compilar quando a tarefa pedir codigo derivado
|
|
95
105
|
|
|
96
106
|
Se a tarefa nao for so editar contrato, mas tambem gerar base de implementacao, a IA deve rodar explicitamente:
|
|
97
107
|
|
|
98
108
|
```bash
|
|
99
|
-
|
|
109
|
+
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
100
110
|
```
|
|
101
111
|
|
|
102
112
|
Ou trocar o alvo para `python` ou `dart`, conforme o caso.
|
|
@@ -106,28 +116,22 @@ Regra pratica:
|
|
|
106
116
|
- se a entrega inclui codigo derivado, `sema compilar` nao e opcional
|
|
107
117
|
- se a IA ignorar `compilar`, ela pode acabar reescrevendo na mao coisa que a Sema ja gera sozinha, que e burrice operacional
|
|
108
118
|
|
|
109
|
-
### Etapa
|
|
119
|
+
### Etapa 8. Verificar
|
|
110
120
|
|
|
111
121
|
No fechamento:
|
|
112
122
|
|
|
113
123
|
```bash
|
|
114
|
-
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
Ou, no fluxo consolidado do projeto:
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
npm run project:check
|
|
124
|
+
sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
|
|
121
125
|
```
|
|
122
126
|
|
|
123
127
|
## Fluxo minimo para automacao
|
|
124
128
|
|
|
125
|
-
Se voce quiser o menor fluxo aceitavel para uma IA:
|
|
129
|
+
Se voce quiser o menor fluxo aceitavel para uma IA pequena:
|
|
126
130
|
|
|
127
131
|
```bash
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
132
|
+
sema resumo caminho/arquivo.sema --micro --para mudanca
|
|
133
|
+
sema formatar caminho/arquivo.sema
|
|
134
|
+
sema validar caminho/arquivo.sema --json
|
|
131
135
|
```
|
|
132
136
|
|
|
133
137
|
Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
|
|
@@ -135,10 +139,10 @@ Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
|
|
|
135
139
|
Se a tarefa envolver codigo derivado, o fluxo minimo aceitavel vira:
|
|
136
140
|
|
|
137
141
|
```bash
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
|
|
142
146
|
```
|
|
143
147
|
|
|
144
148
|
## Checklist de saida
|
|
@@ -170,4 +174,4 @@ Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e nao so
|
|
|
170
174
|
|
|
171
175
|
## Observacao sobre caminhos
|
|
172
176
|
|
|
173
|
-
Esta documentacao usa
|
|
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,189 @@
|
|
|
1
|
+
# Instalacao e Primeiro Uso
|
|
2
|
+
|
|
3
|
+
Este guia mostra o caminho mais curto para testar a Sema do jeito certo, sem misturar fluxo de usuario com gambiarra de contribuinte.
|
|
4
|
+
|
|
5
|
+
## Requisitos
|
|
6
|
+
|
|
7
|
+
- Node.js instalado
|
|
8
|
+
- npm funcionando
|
|
9
|
+
- Python 3 e `pytest` se voce quiser rodar o fluxo completo de testes Python gerados
|
|
10
|
+
|
|
11
|
+
O repositorio so e necessario se voce quiser contribuir na Sema, rodar o showcase oficial localmente ou empacotar release.
|
|
12
|
+
|
|
13
|
+
## Caminho oficial
|
|
14
|
+
|
|
15
|
+
Instalacao via npm:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install -g @semacode/cli
|
|
19
|
+
sema --help
|
|
20
|
+
sema doctor
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Se preferir o tarball oficial da GitHub Release:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g https://github.com/gerlanss/Sema/releases/latest/download/sema-cli-latest.tgz
|
|
27
|
+
sema --help
|
|
28
|
+
sema doctor
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Instalacao local ao projeto:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npm install @semacode/cli
|
|
35
|
+
npx sema --help
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Instaladores auxiliares para a linha publica atual:
|
|
39
|
+
|
|
40
|
+
- Linux/macOS: `curl -fsSL https://raw.githubusercontent.com/gerlanss/Sema/v1.0.0/install-sema.sh | bash`
|
|
41
|
+
- Windows PowerShell: `irm https://raw.githubusercontent.com/gerlanss/Sema/v1.0.0/install-sema.ps1 | iex`
|
|
42
|
+
|
|
43
|
+
Se voce quiser reproducao estrita, prefira o npm registry ou o tarball da GitHub Release.
|
|
44
|
+
|
|
45
|
+
## Primeiro teste sem clonar o repo
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
mkdir sema-demo
|
|
49
|
+
cd sema-demo
|
|
50
|
+
sema iniciar
|
|
51
|
+
sema validar contratos/pedidos.sema --json
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Primeiro fluxo util
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
sema validar contratos/pedidos.sema --json
|
|
58
|
+
sema ast contratos/pedidos.sema --json
|
|
59
|
+
sema ir contratos/pedidos.sema --json
|
|
60
|
+
sema formatar contratos/pedidos.sema
|
|
61
|
+
sema verificar contratos --saida ./.tmp/verificacao
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Primeiro fluxo de IA real
|
|
65
|
+
|
|
66
|
+
Sem clonar o repo, o fluxo que mais mostra a proposta da Sema hoje e:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
sema inspecionar . --json
|
|
70
|
+
sema resumo contratos/pedidos.sema --micro --para mudanca
|
|
71
|
+
sema drift contratos/pedidos.sema --json
|
|
72
|
+
sema contexto-ia contratos/pedidos.sema --saida ./.tmp/contexto-pedidos --json
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Esse fluxo mostra:
|
|
76
|
+
|
|
77
|
+
- base de projeto resolvida
|
|
78
|
+
- cartao semantico curto para IA pequena ou gratuita
|
|
79
|
+
- codigo vivo detectado
|
|
80
|
+
- `impl` e `vinculos` resolvidos
|
|
81
|
+
- score, confianca e lacunas do `drift`
|
|
82
|
+
- `briefing.min.json` e `briefing.json` para IA antes da edicao
|
|
83
|
+
|
|
84
|
+
## `sema.config.json`
|
|
85
|
+
|
|
86
|
+
Exemplo de configuracao para projeto real:
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"origens": ["./contratos"],
|
|
91
|
+
"saida": "./generated",
|
|
92
|
+
"alvos": ["typescript", "python"],
|
|
93
|
+
"alvoPadrao": "typescript",
|
|
94
|
+
"estruturaSaida": "backend",
|
|
95
|
+
"framework": "nestjs",
|
|
96
|
+
"modoEstrito": true,
|
|
97
|
+
"diretoriosSaidaPorAlvo": {
|
|
98
|
+
"typescript": "./generated/nestjs",
|
|
99
|
+
"python": "./generated/fastapi"
|
|
100
|
+
},
|
|
101
|
+
"convencoesGeracaoPorProjeto": "backend"
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Gerar codigo
|
|
106
|
+
|
|
107
|
+
Scaffold base:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
sema compilar contratos/pedidos.sema --alvo typescript --saida ./saida/typescript
|
|
111
|
+
sema compilar contratos/pedidos.sema --alvo python --saida ./saida/python
|
|
112
|
+
sema compilar contratos/pedidos.sema --alvo dart --saida ./saida/dart
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Scaffold backend:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
sema compilar contratos/pedidos.sema --alvo typescript --framework nestjs --estrutura backend --saida ./generated/nestjs
|
|
119
|
+
sema compilar contratos/pedidos.sema --alvo python --framework fastapi --estrutura backend --saida ./generated/fastapi
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Extensao VS Code
|
|
123
|
+
|
|
124
|
+
Empacotar:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
npm run extensao:empacotar
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Instalar localmente:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
npm run extensao:instalar-local
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Ou manualmente:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
code --install-extension .tmp/editor-vscode/sema-language-tools-1.0.0.vsix --force
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
## Caminho de contribuinte
|
|
143
|
+
|
|
144
|
+
Se o objetivo for desenvolver a propria Sema:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
npm install
|
|
148
|
+
npm run build
|
|
149
|
+
npm run cli:instalar-local
|
|
150
|
+
sema validar exemplos/calculadora.sema
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
Se quiser validar tudo de cara:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
npm run project:check
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## `npm link` continua existindo
|
|
160
|
+
|
|
161
|
+
Esse fluxo continua util, mas e trilha de contribuinte:
|
|
162
|
+
|
|
163
|
+
```powershell
|
|
164
|
+
npm run cli:instalar-local
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Serve para:
|
|
168
|
+
|
|
169
|
+
- testar a experiencia de terminal no proprio ambiente
|
|
170
|
+
- desenvolver a CLI
|
|
171
|
+
- usar `sema` como interface principal mesmo durante o desenvolvimento local
|
|
172
|
+
|
|
173
|
+
Para remover:
|
|
174
|
+
|
|
175
|
+
```powershell
|
|
176
|
+
npm run cli:desinstalar-local
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
## Resumo honesto
|
|
180
|
+
|
|
181
|
+
Hoje o jeito certo de testar a Sema e:
|
|
182
|
+
|
|
183
|
+
1. instalar a CLI pelo npm ou pela GitHub Release
|
|
184
|
+
2. rodar `sema iniciar`
|
|
185
|
+
3. validar `contratos/pedidos.sema`
|
|
186
|
+
4. usar `inspecionar -> resumo -> drift -> contexto-ia` quando o projeto for vivo
|
|
187
|
+
5. ler `briefing.min.json` ou `briefing.json` antes de mandar a IA sair cavando arquivo
|
|
188
|
+
|
|
189
|
+
Clone + build + `npm link` continua bom para oficina, nao para landing page publica.
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# Integracao com IA
|
|
2
|
+
|
|
3
|
+
A Sema foi desenhada para IA editar backend vivo com menos chute. O ponto nao e "a IA gera tudo"; o ponto e deixar contrato, vinculo e contexto operacional estruturados o bastante para a IA nao trabalhar igual um bicho tonto. Leitura humana continua possivel, mas nao e o centro do desenho.
|
|
4
|
+
|
|
5
|
+
## Moldura correta
|
|
6
|
+
|
|
7
|
+
Se uma IA tratar a Sema como enfeite declarativo, ela vai usar mal. A moldura certa e esta:
|
|
8
|
+
|
|
9
|
+
- `impl` liga intencao a simbolo executavel
|
|
10
|
+
- `vinculos` ligam contrato a arquivo, simbolo, recurso e superficie real
|
|
11
|
+
- `execucao` explicita timeout, retry, compensacao e criticidade
|
|
12
|
+
- `drift` mede verdade contra codigo vivo
|
|
13
|
+
- `contexto-ia` empacota briefing operacional antes da edicao
|
|
14
|
+
|
|
15
|
+
Em resumo: a Sema nao serve para a IA adivinhar melhor. Ela serve para a IA precisar adivinhar menos.
|
|
16
|
+
|
|
17
|
+
## Fluxo recomendado
|
|
18
|
+
|
|
19
|
+
Quando o trabalho cair em projeto vivo, o fluxo canonico agora e:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
sema inspecionar . --json
|
|
23
|
+
sema resumo contratos/modulo.sema --micro --para mudanca
|
|
24
|
+
sema drift contratos/modulo.sema --json
|
|
25
|
+
sema contexto-ia contratos/modulo.sema --saida ./.tmp/contexto --json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Leitura rapida:
|
|
29
|
+
|
|
30
|
+
1. `inspecionar` descobre base do projeto, diretorios de codigo, fontes legado e modulos relevantes.
|
|
31
|
+
2. `resumo` entrega o menor cartao semantico util para a IA atual.
|
|
32
|
+
3. `drift` mede impls, vinculos, rotas, recursos, score semantico e confianca.
|
|
33
|
+
4. `contexto-ia` gera o pacote que a IA deveria ler antes de editar.
|
|
34
|
+
|
|
35
|
+
## Capacidade da IA
|
|
36
|
+
|
|
37
|
+
A Sema agora assume explicitamente que nem toda IA aguenta o pacote completo.
|
|
38
|
+
|
|
39
|
+
- IA pequena ou gratuita: comece em `resumo.micro.txt`, `briefing.min.json` e `prompt-curto.txt`
|
|
40
|
+
- IA media: suba para `resumo.curto.txt`, `briefing.min.json` e `drift.json`
|
|
41
|
+
- IA grande ou com tool use: leia `README.md`, `resumo.md`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
|
|
42
|
+
|
|
43
|
+
Se voce joga `ast.json` inteiro em modelo pequeno e depois reclama da resposta, foi voce que fez cagada operacional.
|
|
44
|
+
|
|
45
|
+
## O que a IA deve consumir
|
|
46
|
+
|
|
47
|
+
No minimo, para IA pequena:
|
|
48
|
+
|
|
49
|
+
- `resumo.micro.txt`
|
|
50
|
+
- `briefing.min.json`
|
|
51
|
+
|
|
52
|
+
No minimo, para IA media:
|
|
53
|
+
|
|
54
|
+
- `resumo.curto.txt`
|
|
55
|
+
- `briefing.min.json`
|
|
56
|
+
- `drift.json`
|
|
57
|
+
|
|
58
|
+
No minimo, para IA grande:
|
|
59
|
+
|
|
60
|
+
- `ir.json`
|
|
61
|
+
- `drift.json`
|
|
62
|
+
- `briefing.json`
|
|
63
|
+
- o proprio contrato `.sema`
|
|
64
|
+
|
|
65
|
+
O `briefing.json` agora e a peca mais operacional do pacote. Ele responde perguntas que agente serio precisa responder antes de mexer em codigo:
|
|
66
|
+
|
|
67
|
+
- o que tocar
|
|
68
|
+
- o que validar
|
|
69
|
+
- o que esta frouxo
|
|
70
|
+
- o que foi inferido
|
|
71
|
+
- quais simbolos estao relacionados
|
|
72
|
+
- quais superficies publicas podem ser afetadas
|
|
73
|
+
- quais testes minimos rodar
|
|
74
|
+
|
|
75
|
+
## Saida relevante do pacote `contexto-ia`
|
|
76
|
+
|
|
77
|
+
Hoje o pacote pode incluir:
|
|
78
|
+
|
|
79
|
+
- `resumo.micro.txt`
|
|
80
|
+
- `resumo.curto.txt`
|
|
81
|
+
- `resumo.md`
|
|
82
|
+
- `briefing.min.json`
|
|
83
|
+
- `prompt-curto.txt`
|
|
84
|
+
- `ast.json`
|
|
85
|
+
- `ir.json`
|
|
86
|
+
- `diagnosticos.json`
|
|
87
|
+
- `drift.json`
|
|
88
|
+
- `briefing.json`
|
|
89
|
+
- `README.md`
|
|
90
|
+
- `impl.<origem>.txt` quando existir implementacao vinculada
|
|
91
|
+
|
|
92
|
+
## Score, confianca e risco
|
|
93
|
+
|
|
94
|
+
`drift`, `inspecionar` e `contexto-ia` passam a expor sinais que ajudam a IA a nao tratar rascunho como verdade absoluta:
|
|
95
|
+
|
|
96
|
+
- `scoreSemantico`
|
|
97
|
+
- `confiancaVinculo`
|
|
98
|
+
- `riscoOperacional`
|
|
99
|
+
- `lacunas`
|
|
100
|
+
- `vinculos_validos`
|
|
101
|
+
- `vinculos_quebrados`
|
|
102
|
+
|
|
103
|
+
Leitura pratica:
|
|
104
|
+
|
|
105
|
+
- score alto + confianca alta: a IA pode editar com trilha boa
|
|
106
|
+
- score medio: ainda precisa ler contrato e conferir codigo vivo
|
|
107
|
+
- vinculo quebrado: a IA deve reduzir ousadia e consertar rastreabilidade antes de refatorar igual doida
|
|
108
|
+
|
|
109
|
+
## Superficies que a IA pode esperar
|
|
110
|
+
|
|
111
|
+
A linguagem agora trata estas bordas como primeira classe:
|
|
112
|
+
|
|
113
|
+
- `route`
|
|
114
|
+
- `worker`
|
|
115
|
+
- `evento`
|
|
116
|
+
- `fila`
|
|
117
|
+
- `cron`
|
|
118
|
+
- `webhook`
|
|
119
|
+
- `cache`
|
|
120
|
+
- `storage`
|
|
121
|
+
- `policy`
|
|
122
|
+
|
|
123
|
+
Isso importa porque backend real nao vive so de HTTP. Se a IA vai editar stack viva, ela precisa enxergar job, evento, webhook e recurso assincrono como parte do contrato, nao como sobra esquecida no runtime.
|
|
124
|
+
|
|
125
|
+
## Contrato operacional
|
|
126
|
+
|
|
127
|
+
Dentro de `task` e superficies, a IA deve prestar atencao em:
|
|
128
|
+
|
|
129
|
+
- `input`
|
|
130
|
+
- `output`
|
|
131
|
+
- `effects`
|
|
132
|
+
- `impl`
|
|
133
|
+
- `vinculos`
|
|
134
|
+
- `execucao`
|
|
135
|
+
- `guarantees`
|
|
136
|
+
- `error`
|
|
137
|
+
|
|
138
|
+
Exemplo minimo:
|
|
139
|
+
|
|
140
|
+
```sema
|
|
141
|
+
task medir_drift {
|
|
142
|
+
input {
|
|
143
|
+
contrato: Texto required
|
|
144
|
+
}
|
|
145
|
+
output {
|
|
146
|
+
score: Decimal
|
|
147
|
+
}
|
|
148
|
+
impl {
|
|
149
|
+
ts: cli.src.drift.analisarDriftLegado
|
|
150
|
+
}
|
|
151
|
+
vinculos {
|
|
152
|
+
arquivo: "pacotes/cli/src/drift.ts"
|
|
153
|
+
simbolo: cli.src.drift.analisarDriftLegado
|
|
154
|
+
}
|
|
155
|
+
execucao {
|
|
156
|
+
timeout: "30s"
|
|
157
|
+
retry: "3x exponencial"
|
|
158
|
+
criticidade_operacional: alta
|
|
159
|
+
}
|
|
160
|
+
guarantees {
|
|
161
|
+
score existe
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Comandos que agente serio nao deveria ignorar
|
|
167
|
+
|
|
168
|
+
- `sema ast arquivo.sema --json`
|
|
169
|
+
- `sema ir arquivo.sema --json`
|
|
170
|
+
- `sema validar arquivo.sema --json`
|
|
171
|
+
- `sema diagnosticos arquivo.sema --json`
|
|
172
|
+
- `sema formatar arquivo.sema`
|
|
173
|
+
- `sema inspecionar [arquivo-ou-pasta] --json`
|
|
174
|
+
- `sema drift [arquivo-ou-pasta] --json`
|
|
175
|
+
- `sema contexto-ia arquivo.sema [--saida <diretorio>] --json`
|
|
176
|
+
- `sema verificar [arquivo-ou-pasta] --json`
|
|
177
|
+
|
|
178
|
+
## Fluxos comuns
|
|
179
|
+
|
|
180
|
+
Quando a tarefa for so modelagem:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
sema ast contratos/pedidos.sema --json
|
|
184
|
+
sema ir contratos/pedidos.sema --json
|
|
185
|
+
sema formatar contratos/pedidos.sema
|
|
186
|
+
sema validar contratos/pedidos.sema --json
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Quando a tarefa envolver codigo derivado:
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
sema inspecionar . --json
|
|
193
|
+
sema drift contratos/pedidos.sema --json
|
|
194
|
+
sema contexto-ia contratos/pedidos.sema --saida ./.tmp/contexto-pedidos --json
|
|
195
|
+
sema compilar contratos/pedidos.sema --alvo typescript --framework nestjs --estrutura backend --saida ./generated/nestjs
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Quando a tarefa nasce num legado:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
sema importar flask ./backend-flask --saida ./sema/importado --json
|
|
202
|
+
sema formatar ./sema/importado
|
|
203
|
+
sema validar ./sema/importado --json
|
|
204
|
+
sema drift ./sema/importado --json
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Showcase oficial do repo
|
|
208
|
+
|
|
209
|
+
Se voce estiver no monorepo da Sema, o showcase [showcases/ranking-showroom](../showcases/ranking-showroom/) continua sendo a melhor vitrine do fluxo completo:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
cd showcases/ranking-showroom
|
|
213
|
+
sema inspecionar . --json
|
|
214
|
+
sema drift contratos/ranking_showroom.sema --json
|
|
215
|
+
sema contexto-ia contratos/ranking_showroom.sema --saida ./.tmp/contexto-ranking --json
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
O valor aqui nao e so "validou". O valor e sair com score, confianca, drift e briefing suficientes para editar o backend Flask real sem sair cavando arquivo a esmo.
|
|
219
|
+
|
|
220
|
+
## Fechamento operacional
|
|
221
|
+
|
|
222
|
+
Quando a IA terminar a mudanca fora do monorepo:
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
sema formatar contratos/modulo.sema
|
|
226
|
+
sema validar contratos/modulo.sema --json
|
|
227
|
+
sema verificar contratos --json --saida ./.tmp/verificacao-final
|
|
228
|
+
```
|