@semacode/cli 1.2.17 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +2 -2
  2. package/dist/index.js +58 -10
  3. package/dist/projeto.js +4 -1
  4. package/package.json +17 -34
  5. package/src/cpp-symbols.ts +82 -0
  6. package/src/dotnet-http.ts +355 -0
  7. package/src/drift.ts +2455 -0
  8. package/src/go-http.ts +118 -0
  9. package/src/importador.ts +3448 -0
  10. package/src/index.ts +4470 -0
  11. package/src/java-http.ts +247 -0
  12. package/src/projeto.ts +810 -0
  13. package/src/python-http.ts +258 -0
  14. package/src/rust-http.ts +125 -0
  15. package/src/tipos.ts +22 -0
  16. package/src/typescript-http.ts +1076 -0
  17. package/tsconfig.json +20 -0
  18. package/AGENTS.md +0 -50
  19. package/LICENSE +0 -22
  20. package/SEMA_BRIEF.curto.txt +0 -9
  21. package/SEMA_BRIEF.md +0 -49
  22. package/SEMA_BRIEF.micro.txt +0 -7
  23. package/SEMA_INDEX.json +0 -546
  24. package/dist/cpp-symbols.d.ts +0 -10
  25. package/dist/cpp-symbols.js.map +0 -1
  26. package/dist/dotnet-http.d.ts +0 -23
  27. package/dist/dotnet-http.js.map +0 -1
  28. package/dist/drift.d.ts +0 -118
  29. package/dist/drift.js.map +0 -1
  30. package/dist/go-http.d.ts +0 -23
  31. package/dist/go-http.js.map +0 -1
  32. package/dist/importador.d.ts +0 -29
  33. package/dist/importador.js.map +0 -1
  34. package/dist/index.d.ts +0 -2
  35. package/dist/index.js.map +0 -1
  36. package/dist/java-http.d.ts +0 -23
  37. package/dist/java-http.js.map +0 -1
  38. package/dist/lua-symbols.d.ts +0 -8
  39. package/dist/lua-symbols.js.map +0 -1
  40. package/dist/projeto.d.ts +0 -48
  41. package/dist/projeto.js.map +0 -1
  42. package/dist/python-http.d.ts +0 -23
  43. package/dist/python-http.js.map +0 -1
  44. package/dist/rust-http.d.ts +0 -23
  45. package/dist/rust-http.js.map +0 -1
  46. package/dist/tipos.d.ts +0 -3
  47. package/dist/tipos.js.map +0 -1
  48. package/dist/typescript-http.d.ts +0 -35
  49. package/dist/typescript-http.js.map +0 -1
  50. package/docs/AGENT_STARTER.md +0 -102
  51. package/docs/como-ensinar-a-sema-para-ia.md +0 -149
  52. package/docs/fluxo-pratico-ia-sema.md +0 -177
  53. package/docs/instalacao-e-primeiro-uso.md +0 -196
  54. package/docs/integracao-com-ia.md +0 -228
  55. package/docs/pagamento-ponta-a-ponta.md +0 -155
  56. package/docs/prompt-base-ia-sema.md +0 -104
  57. package/docs/sintaxe.md +0 -361
  58. package/exemplos/automacao.sema +0 -107
  59. package/exemplos/cadastro_usuario.sema +0 -54
  60. package/exemplos/calculadora.sema +0 -78
  61. package/exemplos/crud_simples.sema +0 -89
  62. package/exemplos/operacao_estrategia.sema +0 -402
  63. package/exemplos/pagamento.sema +0 -222
  64. package/exemplos/pagamento_dominio.sema +0 -35
  65. package/exemplos/testes_embutidos.sema +0 -45
  66. package/exemplos/tratamento_erro.sema +0 -157
  67. package/llms-full.txt +0 -34
  68. package/llms.txt +0 -17
  69. package/node_modules/@sema/gerador-dart/dist/index.d.ts +0 -3
  70. package/node_modules/@sema/gerador-dart/dist/index.js +0 -44
  71. package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
  72. package/node_modules/@sema/gerador-dart/package.json +0 -7
  73. package/node_modules/@sema/gerador-lua/dist/index.d.ts +0 -3
  74. package/node_modules/@sema/gerador-lua/dist/index.js +0 -328
  75. package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
  76. package/node_modules/@sema/gerador-lua/package.json +0 -7
  77. package/node_modules/@sema/gerador-python/dist/index.d.ts +0 -6
  78. package/node_modules/@sema/gerador-python/dist/index.js +0 -628
  79. package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
  80. package/node_modules/@sema/gerador-python/package.json +0 -7
  81. package/node_modules/@sema/gerador-typescript/dist/index.d.ts +0 -6
  82. package/node_modules/@sema/gerador-typescript/dist/index.js +0 -656
  83. package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
  84. package/node_modules/@sema/gerador-typescript/package.json +0 -7
  85. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +0 -122
  86. package/node_modules/@sema/nucleo/dist/ast/tipos.js +0 -2
  87. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
  88. package/node_modules/@sema/nucleo/dist/diagnosticos/index.d.ts +0 -21
  89. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js +0 -12
  90. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
  91. package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +0 -9
  92. package/node_modules/@sema/nucleo/dist/formatador/index.js +0 -445
  93. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
  94. package/node_modules/@sema/nucleo/dist/index.d.ts +0 -34
  95. package/node_modules/@sema/nucleo/dist/index.js +0 -95
  96. package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
  97. package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +0 -5
  98. package/node_modules/@sema/nucleo/dist/ir/conversor.js +0 -781
  99. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
  100. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +0 -285
  101. package/node_modules/@sema/nucleo/dist/ir/modelos.js +0 -2
  102. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
  103. package/node_modules/@sema/nucleo/dist/lexer/lexer.d.ts +0 -7
  104. package/node_modules/@sema/nucleo/dist/lexer/lexer.js +0 -122
  105. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
  106. package/node_modules/@sema/nucleo/dist/lexer/tokens.d.ts +0 -8
  107. package/node_modules/@sema/nucleo/dist/lexer/tokens.js +0 -46
  108. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
  109. package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +0 -9
  110. package/node_modules/@sema/nucleo/dist/parser/parser.js +0 -656
  111. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
  112. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +0 -57
  113. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +0 -1497
  114. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
  115. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +0 -104
  116. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +0 -445
  117. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
  118. package/node_modules/@sema/nucleo/dist/semantico/seguranca.d.ts +0 -91
  119. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js +0 -258
  120. package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
  121. package/node_modules/@sema/nucleo/dist/util/arquivos.d.ts +0 -2
  122. package/node_modules/@sema/nucleo/dist/util/arquivos.js +0 -25
  123. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
  124. package/node_modules/@sema/nucleo/package.json +0 -7
  125. package/node_modules/@sema/padroes/dist/index.d.ts +0 -21
  126. package/node_modules/@sema/padroes/dist/index.js +0 -159
  127. package/node_modules/@sema/padroes/dist/index.js.map +0 -1
  128. package/node_modules/@sema/padroes/package.json +0 -7
@@ -1,177 +0,0 @@
1
- # Fluxo Pratico para IA Antes de Editar `.sema`
2
-
3
- Este documento descreve o fluxo operacional recomendado para qualquer IA antes, durante e depois de alterar arquivos `.sema`.
4
-
5
- Se a IA seguir isso, ela trabalha com contexto. Se nao seguir, vira adivinhacao gourmet.
6
-
7
- ## Fluxo curto
8
-
9
- 1. ler contexto do projeto
10
- 2. identificar a capacidade da IA
11
- 3. identificar o modulo alvo
12
- 4. consultar o menor artefato semantico suficiente
13
- 5. editar
14
- 6. formatar
15
- 7. validar
16
- 8. verificar
17
-
18
- ## Fluxo detalhado
19
-
20
- ### Etapa 1. Ler contexto minimo
21
-
22
- Antes de tocar em qualquer arquivo, a IA deve ler:
23
-
24
- - [README.md](../README.md)
25
- - [integracao-com-ia.md](./integracao-com-ia.md)
26
- - [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
27
-
28
- Se o trabalho estiver ligado a pagamento, ler tambem:
29
-
30
- - [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
31
-
32
- ### Etapa 2. Escolher a faixa de capacidade
33
-
34
- Antes de despejar contexto na IA, escolha o que ela aguenta:
35
-
36
- - IA pequena ou gratuita: `sema resumo --micro` e `briefing.min.json`
37
- - IA media: `sema resumo --curto`, `briefing.min.json` e `drift.json`
38
- - IA grande: `contexto-ia`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
39
-
40
- ### Etapa 3. Ler o modulo alvo e um exemplo parecido
41
-
42
- A IA deve identificar:
43
-
44
- - qual arquivo sera editado
45
- - qual modulo esse arquivo representa
46
- - qual exemplo oficial mais se parece com o que precisa ser feito
47
-
48
- Regra pratica:
49
-
50
- - automacao: [automacao.sema](../exemplos/automacao.sema)
51
- - erros e fluxos de falha: [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
52
- - borda publica e pagamento: [pagamento.sema](../exemplos/pagamento.sema)
53
-
54
- ### Etapa 4. Consultar AST e IR quando fizer sentido
55
-
56
- Antes de alterar, a IA deve executar:
57
-
58
- ```bash
59
- sema resumo caminho/arquivo.sema --curto --para mudanca
60
- sema ast caminho/arquivo.sema --json
61
- sema ir caminho/arquivo.sema --json
62
- ```
63
-
64
- Objetivo:
65
-
66
- - ver a forma sintatica quando a capacidade aguentar
67
- - ver a forma semantica resolvida quando a capacidade aguentar
68
- - evitar interpretar errado o contrato
69
-
70
- ### Etapa 5. Editar o `.sema`
71
-
72
- Ao editar, a IA deve:
73
-
74
- - preservar a intencao do modulo
75
- - seguir a gramatica existente
76
- - evitar criar bloco ou operador nao suportado
77
- - preferir a forma ja usada nos exemplos oficiais
78
-
79
- ### Etapa 6. Formatar
80
-
81
- Depois da edicao:
82
-
83
- ```bash
84
- sema formatar caminho/arquivo.sema
85
- sema formatar caminho/arquivo.sema --check
86
- ```
87
-
88
- Se `--check` falhar, o trabalho ainda nao esta pronto.
89
-
90
- ### Etapa 7. Validar e diagnosticar
91
-
92
- Depois da formatacao:
93
-
94
- ```bash
95
- sema validar caminho/arquivo.sema --json
96
- sema diagnosticos caminho/arquivo.sema --json
97
- ```
98
-
99
- Se houver falha:
100
-
101
- - usar os diagnosticos estruturados como contrato de correcao
102
- - nao insistir em leitura manual teimosa quando a CLI ja disse onde esta a merda
103
-
104
- ### Etapa 7.5. Compilar quando a tarefa pedir codigo derivado
105
-
106
- Se a tarefa nao for so editar contrato, mas tambem gerar base de implementacao, a IA deve rodar explicitamente:
107
-
108
- ```bash
109
- sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
110
- ```
111
-
112
- Ou trocar o alvo para `python` ou `dart`, conforme o caso.
113
-
114
- Regra pratica:
115
-
116
- - se a entrega inclui codigo derivado, `sema compilar` nao e opcional
117
- - se a IA ignorar `compilar`, ela pode acabar reescrevendo na mao coisa que a Sema ja gera sozinha, que e burrice operacional
118
-
119
- ### Etapa 8. Verificar
120
-
121
- No fechamento:
122
-
123
- ```bash
124
- sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
125
- ```
126
-
127
- ## Fluxo minimo para automacao
128
-
129
- Se voce quiser o menor fluxo aceitavel para uma IA pequena:
130
-
131
- ```bash
132
- sema resumo caminho/arquivo.sema --micro --para mudanca
133
- sema formatar caminho/arquivo.sema
134
- sema validar caminho/arquivo.sema --json
135
- ```
136
-
137
- Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
138
-
139
- Se a tarefa envolver codigo derivado, o fluxo minimo aceitavel vira:
140
-
141
- ```bash
142
- sema ir caminho/arquivo.sema --json
143
- sema formatar caminho/arquivo.sema
144
- sema validar caminho/arquivo.sema --json
145
- sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
146
- ```
147
-
148
- ## Checklist de saida
149
-
150
- Antes de considerar a alteracao pronta, a IA deve responder mentalmente:
151
-
152
- - eu entendi o modulo e o contrato?
153
- - eu mantive a sintaxe dentro do que a linguagem suporta?
154
- - eu formatei o arquivo?
155
- - eu validei?
156
- - eu olhei diagnosticos se algo falhou?
157
- - eu fechei com verificacao?
158
-
159
- Se alguma resposta for "nao", ainda nao terminou.
160
-
161
- ## Regra de ouro
162
-
163
- Em Sema, a IA nao deveria operar no escuro.
164
-
165
- Ela deve trabalhar sempre com:
166
-
167
- - exemplo oficial
168
- - AST
169
- - IR
170
- - diagnosticos
171
- - formatador
172
-
173
- Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e nao so no discurso bonito.
174
-
175
- ## Observacao sobre caminhos
176
-
177
- Esta documentacao usa placeholders de arquivo e pasta, nao caminhos do monorepo da Sema. A IA deve adaptar isso ao projeto atual e continuar tratando `sema` como interface publica principal.
@@ -1,196 +0,0 @@
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
- Via GitHub Release:
125
-
126
- ```bash
127
- curl -L -o sema-language-tools.vsix https://github.com/gerlanss/Sema/releases/latest/download/sema-language-tools-latest.vsix
128
- code --install-extension ./sema-language-tools.vsix --force
129
- ```
130
-
131
- Windows PowerShell:
132
-
133
- ```powershell
134
- Invoke-WebRequest -Uri https://github.com/gerlanss/Sema/releases/latest/download/sema-language-tools-latest.vsix -OutFile sema-language-tools.vsix
135
- code --install-extension .\sema-language-tools.vsix --force
136
- ```
137
-
138
- Pagina oficial:
139
-
140
- - [https://github.com/gerlanss/Sema/releases/latest](https://github.com/gerlanss/Sema/releases/latest)
141
-
142
- Se voce estiver desenvolvendo a propria extensao localmente, ai sim entra a trilha de contribuinte:
143
-
144
- ```bash
145
- npm run extensao:empacotar
146
- npm run extensao:instalar-local
147
- ```
148
-
149
- ## Caminho de contribuinte
150
-
151
- Se o objetivo for desenvolver a propria Sema:
152
-
153
- ```bash
154
- npm install
155
- npm run build
156
- npm run cli:instalar-local
157
- sema validar exemplos/calculadora.sema
158
- ```
159
-
160
- Se quiser validar tudo de cara:
161
-
162
- ```bash
163
- npm run project:check
164
- ```
165
-
166
- ## `npm link` continua existindo
167
-
168
- Esse fluxo continua util, mas e trilha de contribuinte:
169
-
170
- ```powershell
171
- npm run cli:instalar-local
172
- ```
173
-
174
- Serve para:
175
-
176
- - testar a experiencia de terminal no proprio ambiente
177
- - desenvolver a CLI
178
- - usar `sema` como interface principal mesmo durante o desenvolvimento local
179
-
180
- Para remover:
181
-
182
- ```powershell
183
- npm run cli:desinstalar-local
184
- ```
185
-
186
- ## Resumo honesto
187
-
188
- Hoje o jeito certo de testar a Sema e:
189
-
190
- 1. instalar a CLI pelo npm ou pela GitHub Release
191
- 2. rodar `sema iniciar`
192
- 3. validar `contratos/pedidos.sema`
193
- 4. usar `inspecionar -> resumo -> drift -> contexto-ia` quando o projeto for vivo
194
- 5. ler `briefing.min.json` ou `briefing.json` antes de mandar a IA sair cavando arquivo
195
-
196
- Clone + build + `npm link` continua bom para oficina, nao para landing page publica.
@@ -1,228 +0,0 @@
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
- ```