@semacode/cli 1.0.0 → 1.1.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/AGENTS.md ADDED
@@ -0,0 +1,50 @@
1
+ # AGENTS.md
2
+
3
+ Sema e IA-first. Este repositorio nao foi desenhado para ergonomia humana como objetivo principal.
4
+
5
+ Se voce for uma IA, nao comece pelo codigo cru. Comece pela trilha canonica:
6
+
7
+ 1. `llms.txt`
8
+ 2. `SEMA_BRIEF.md`
9
+ 3. `SEMA_INDEX.json`
10
+ 4. `README.md`
11
+ 5. `docs/AGENT_STARTER.md`
12
+
13
+ Roteamento por capacidade:
14
+
15
+ - IA pequena ou gratuita: `llms.txt` -> `SEMA_BRIEF.micro.txt` -> `SEMA_INDEX.json` -> `README.md`
16
+ - IA media: `llms.txt` -> `SEMA_BRIEF.curto.txt` -> `SEMA_INDEX.json` -> `README.md` -> `docs/AGENT_STARTER.md`
17
+ - IA grande ou com tool use: `llms-full.txt` -> `SEMA_BRIEF.md` -> `SEMA_INDEX.json` -> `README.md` -> `docs/AGENT_STARTER.md`
18
+
19
+ Fontes de verdade:
20
+
21
+ 1. artefatos Sema gerados ou versionados na raiz
22
+ 2. JSON da CLI
23
+ 3. docs oficiais
24
+ 4. exemplos oficiais
25
+ 5. codigo vivo
26
+
27
+ Regras:
28
+
29
+ - trate a Sema como camada semantica para IA operar backend vivo com menos adivinhacao
30
+ - preserve contrato, vinculo, execucao, erro, efeito, garantia, score, confianca e lacunas
31
+ - se existir artefato Sema para a tarefa, use-o antes de abrir o codigo
32
+ - nao trate texto solto como mais confiavel que `drift`, `ir`, `diagnosticos` ou `briefing`
33
+ - se a IA for pequena, nao tente carregar AST e IR de cara
34
+ - nao invente sintaxe fora da gramatica oficial
35
+
36
+ Comandos minimos:
37
+
38
+ - `sema resumo <arquivo-ou-pasta> --micro --para mudanca`
39
+ - `sema prompt-curto <arquivo-ou-pasta> --curto --para review`
40
+ - `sema drift <arquivo-ou-pasta> --json`
41
+ - `sema contexto-ia <arquivo.sema> --saida ./.tmp/contexto --json`
42
+ - `sema validar <arquivo-ou-pasta> --json`
43
+ - `sema verificar <arquivo-ou-pasta> --json`
44
+
45
+ Se a tarefa envolver edicao real:
46
+
47
+ 1. leia o menor artefato que resolver
48
+ 2. suba para `drift` e `briefing` antes de editar
49
+ 3. use `diagnosticos` para correcao
50
+ 4. valide e verifique no fim
package/README.md CHANGED
@@ -13,6 +13,19 @@ Este pacote entrega a CLI oficial para:
13
13
  - gerar resumo compacto por capacidade de IA
14
14
  - preparar contexto para IA
15
15
 
16
+ Quando a CLI roda em projeto, a trilha IA-first recomendada fica assim:
17
+
18
+ - raiz do repo: `llms.txt`, `SEMA_BRIEF.*`, `SEMA_INDEX.json`, `AGENTS.md`, `README.md`
19
+ - modulo alvo: `resumo.micro.txt`, `briefing.min.json`, `prompt-curto.txt`, `drift.json`, `briefing.json`
20
+
21
+ Isto nao existe para agradar humano. Existe para a IA achar o contexto certo sem entupir a janela com lixo.
22
+
23
+ Para regenerar os entrypoints IA-first da raiz:
24
+
25
+ ```bash
26
+ sema sync-ai-entrypoints --json
27
+ ```
28
+
16
29
  ## Instalacao pelo npm registry
17
30
 
18
31
  ```bash
@@ -23,7 +36,7 @@ sema --help
23
36
  ## Instalacao via tarball da release
24
37
 
25
38
  ```bash
26
- npm install -g ./sema-cli-1.0.0.tgz
39
+ npm install -g ./sema-cli-1.1.0.tgz
27
40
  ```
28
41
 
29
42
  Ou direto da GitHub Release:
@@ -42,7 +55,7 @@ npx sema --help
42
55
  Ou, se voce estiver testando um tarball local:
43
56
 
44
57
  ```bash
45
- npm install ./sema-cli-1.0.0.tgz
58
+ npm install ./sema-cli-1.1.0.tgz
46
59
  npx sema --help
47
60
  ```
48
61
 
@@ -0,0 +1,9 @@
1
+ PROJETO: Sema
2
+ BASE: C:\GitHub\Sema
3
+ MODULOS: 4
4
+ ENTRADA_IA: llms.txt -> SEMA_BRIEF.curto.txt -> SEMA_INDEX.json -> AGENTS.md -> README.md
5
+ TOP_MODULOS: app.pedidos, sema.produto.ergonomia_e_dominio, sema.produto.governanca_ia, sema.produto.linguagem_composta
6
+ TOP_RISCOS: altera_persistencia, consultar_scorecard_compatibilidade:medio, converter_bloco_composto_para_ir:alto, criar_pedido:alto, efeito_critico, explicitar_variacao_e_compatibilidade:medio (+12)
7
+ TOP_LACUNAS: execucao_implicita, sem_impl, sem_vinculos
8
+ TOP_ARQUIVOS: C:\GitHub\Sema\pacotes\cli\src\drift.ts, C:\GitHub\Sema\pacotes\cli\src\index.ts, C:\GitHub\Sema\pacotes\cli\src\projeto.ts, C:\GitHub\Sema\pacotes\gerador-python\src\index.ts, C:\GitHub\Sema\pacotes\gerador-typescript\src\index.ts, C:\GitHub\Sema\pacotes\nucleo\src\formatador\index.ts (+3)
9
+ GERADO_EM: 2026-03-31T16:04:57.600Z
package/SEMA_BRIEF.md ADDED
@@ -0,0 +1,49 @@
1
+ # SEMA_BRIEF
2
+
3
+ Sema e IA-first. Este arquivo existe para IA achar o ponto de entrada do projeto sem ter que catar o repo inteiro feito barata tonta.
4
+
5
+ - Gerado em: `2026-03-31T16:04:57.600Z`
6
+ - Modulos: `4`
7
+
8
+ ## Entrada canonica para IA
9
+
10
+ - Ordem minima: llms.txt -> SEMA_BRIEF.md -> SEMA_INDEX.json -> AGENTS.md -> README.md -> llms-full.txt
11
+ - IA pequena: llms.txt -> SEMA_BRIEF.micro.txt -> SEMA_INDEX.json -> AGENTS.md
12
+ - IA media: llms.txt -> SEMA_BRIEF.curto.txt -> SEMA_INDEX.json -> AGENTS.md -> README.md
13
+ - IA grande: llms-full.txt -> SEMA_BRIEF.md -> SEMA_INDEX.json -> AGENTS.md -> README.md
14
+
15
+ ## Guia por capacidade
16
+
17
+ - pequena: IA gratuita ou com contexto curto. Leia so o cartao semantico e o briefing minimo. Artefatos: resumo.micro.txt, briefing.min.json, prompt-curto.txt.
18
+ - media: IA com contexto medio. Aguenta resumo expandido, briefing minimo e drift. Artefatos: resumo.curto.txt, briefing.min.json, drift.json, prompt-curto.txt.
19
+ - grande: IA com contexto grande ou tool use. Pode consumir o pacote completo. Artefatos: README.md, resumo.md, briefing.json, drift.json, ir.json, ast.json.
20
+
21
+ ## Modulos
22
+
23
+ ### app.pedidos
24
+ - Faz: governa 1 rota(s), 1 task(s) com foco em criar pedido publico
25
+ - Publico: POST /pedidos
26
+ - Tocar: nenhum
27
+ - Score: 50 | Confianca: baixa | Risco: alto
28
+ - Lacunas: execucao_implicita, sem_impl, sem_vinculos
29
+
30
+ ### sema.produto.ergonomia_e_dominio
31
+ - Faz: governa 2 superficie(s), 5 task(s) com foco em scorecard atualizado
32
+ - Publico: evento:scorecard_atualizado, policy:compatibilidade_publica
33
+ - Tocar: C:\GitHub\Sema\pacotes\cli\src\projeto.ts, C:\GitHub\Sema\pacotes\nucleo\src\formatador\index.ts, C:\GitHub\Sema\pacotes\nucleo\src\ir\conversor.ts, C:\GitHub\Sema\pacotes\nucleo\src\semantico\analisador.ts
34
+ - Score: 90 | Confianca: alta | Risco: alto
35
+ - Lacunas: execucao_implicita, sem_impl, sem_vinculos
36
+
37
+ ### sema.produto.governanca_ia
38
+ - Faz: governa 2 superficie(s), 4 task(s) com foco em preparar briefing contextual
39
+ - Publico: webhook:confirmar_contexto_publico, worker:preparar_briefing_contextual
40
+ - Tocar: C:\GitHub\Sema\pacotes\cli\src\drift.ts, C:\GitHub\Sema\pacotes\cli\src\index.ts, C:\GitHub\Sema\pacotes\cli\src\projeto.ts, C:\GitHub\Sema\pacotes\nucleo\src\formatador\index.ts
41
+ - Score: 90 | Confianca: alta | Risco: alto
42
+ - Lacunas: execucao_implicita, sem_impl, sem_vinculos
43
+
44
+ ### sema.produto.linguagem_composta
45
+ - Faz: governa 1 superficie(s), 5 task(s) com foco em regressao composta
46
+ - Publico: storage:regressao_composta
47
+ - Tocar: C:\GitHub\Sema\pacotes\gerador-python\src\index.ts, C:\GitHub\Sema\pacotes\gerador-typescript\src\index.ts, C:\GitHub\Sema\pacotes\nucleo\src\formatador\index.ts, C:\GitHub\Sema\pacotes\nucleo\src\ir\conversor.ts (+1)
48
+ - Score: 90 | Confianca: alta | Risco: alto
49
+ - Lacunas: execucao_implicita, sem_impl, sem_vinculos
@@ -0,0 +1,7 @@
1
+ PROJETO: Sema
2
+ MODULOS: 4
3
+ ENTRADA_IA: llms.txt -> SEMA_BRIEF.micro.txt -> SEMA_INDEX.json -> AGENTS.md
4
+ TOP_MODULOS: app.pedidos, sema.produto.ergonomia_e_dominio, sema.produto.governanca_ia (+1)
5
+ TOP_RISCOS: altera_persistencia, consultar_scorecard_compatibilidade:medio, converter_bloco_composto_para_ir:alto (+15)
6
+ TOP_LACUNAS: execucao_implicita, sem_impl, sem_vinculos
7
+ GERADO_EM: 2026-03-31T16:04:57.600Z
@@ -0,0 +1,501 @@
1
+ {
2
+ "comando": "resumo-projeto",
3
+ "geradoEm": "2026-03-31T16:04:57.600Z",
4
+ "cliVersao": "1.0.0",
5
+ "baseProjeto": "C:\\GitHub\\Sema",
6
+ "totalModulos": 4,
7
+ "entradaCanonica": {
8
+ "descricao": "Entrada canonica do repositorio para IA. O repo nao e human-first; a IA deve começar por esses artefatos antes de abrir codigo cru.",
9
+ "ordemLeitura": [
10
+ "llms.txt",
11
+ "SEMA_BRIEF.md",
12
+ "SEMA_INDEX.json",
13
+ "AGENTS.md",
14
+ "README.md",
15
+ "llms-full.txt"
16
+ ],
17
+ "porCapacidade": {
18
+ "pequena": [
19
+ "llms.txt",
20
+ "SEMA_BRIEF.micro.txt",
21
+ "SEMA_INDEX.json",
22
+ "AGENTS.md"
23
+ ],
24
+ "media": [
25
+ "llms.txt",
26
+ "SEMA_BRIEF.curto.txt",
27
+ "SEMA_INDEX.json",
28
+ "AGENTS.md",
29
+ "README.md"
30
+ ],
31
+ "grande": [
32
+ "llms-full.txt",
33
+ "SEMA_BRIEF.md",
34
+ "SEMA_INDEX.json",
35
+ "AGENTS.md",
36
+ "README.md"
37
+ ]
38
+ },
39
+ "docsSuporte": [
40
+ "docs/AGENT_STARTER.md",
41
+ "docs/integracao-com-ia.md",
42
+ "docs/fluxo-pratico-ia-sema.md",
43
+ "docs/como-ensinar-a-sema-para-ia.md",
44
+ "docs/sintaxe.md",
45
+ "docs/cli.md"
46
+ ],
47
+ "guiaPorCapacidade": {
48
+ "pequena": {
49
+ "descricao": "IA gratuita ou com contexto curto. Leia so o cartao semantico e o briefing minimo.",
50
+ "artefatos": [
51
+ "resumo.micro.txt",
52
+ "briefing.min.json",
53
+ "prompt-curto.txt"
54
+ ],
55
+ "ordemLeitura": [
56
+ "resumo.micro.txt",
57
+ "briefing.min.json",
58
+ "resumo.curto.txt"
59
+ ],
60
+ "evitar": [
61
+ "ast.json",
62
+ "ir.json",
63
+ "diagnosticos.json"
64
+ ]
65
+ },
66
+ "media": {
67
+ "descricao": "IA com contexto medio. Aguenta resumo expandido, briefing minimo e drift.",
68
+ "artefatos": [
69
+ "resumo.curto.txt",
70
+ "briefing.min.json",
71
+ "drift.json",
72
+ "prompt-curto.txt"
73
+ ],
74
+ "ordemLeitura": [
75
+ "resumo.curto.txt",
76
+ "briefing.min.json",
77
+ "drift.json",
78
+ "resumo.md"
79
+ ],
80
+ "evitar": [
81
+ "ast.json"
82
+ ]
83
+ },
84
+ "grande": {
85
+ "descricao": "IA com contexto grande ou tool use. Pode consumir o pacote completo.",
86
+ "artefatos": [
87
+ "README.md",
88
+ "resumo.md",
89
+ "briefing.json",
90
+ "drift.json",
91
+ "ir.json",
92
+ "ast.json"
93
+ ],
94
+ "ordemLeitura": [
95
+ "README.md",
96
+ "resumo.md",
97
+ "briefing.json",
98
+ "drift.json",
99
+ "ir.json",
100
+ "ast.json"
101
+ ],
102
+ "evitar": []
103
+ }
104
+ }
105
+ },
106
+ "guiaPorCapacidade": {
107
+ "pequena": {
108
+ "descricao": "IA gratuita ou com contexto curto. Leia so o cartao semantico e o briefing minimo.",
109
+ "artefatos": [
110
+ "resumo.micro.txt",
111
+ "briefing.min.json",
112
+ "prompt-curto.txt"
113
+ ],
114
+ "ordemLeitura": [
115
+ "resumo.micro.txt",
116
+ "briefing.min.json",
117
+ "resumo.curto.txt"
118
+ ],
119
+ "evitar": [
120
+ "ast.json",
121
+ "ir.json",
122
+ "diagnosticos.json"
123
+ ]
124
+ },
125
+ "media": {
126
+ "descricao": "IA com contexto medio. Aguenta resumo expandido, briefing minimo e drift.",
127
+ "artefatos": [
128
+ "resumo.curto.txt",
129
+ "briefing.min.json",
130
+ "drift.json",
131
+ "prompt-curto.txt"
132
+ ],
133
+ "ordemLeitura": [
134
+ "resumo.curto.txt",
135
+ "briefing.min.json",
136
+ "drift.json",
137
+ "resumo.md"
138
+ ],
139
+ "evitar": [
140
+ "ast.json"
141
+ ]
142
+ },
143
+ "grande": {
144
+ "descricao": "IA com contexto grande ou tool use. Pode consumir o pacote completo.",
145
+ "artefatos": [
146
+ "README.md",
147
+ "resumo.md",
148
+ "briefing.json",
149
+ "drift.json",
150
+ "ir.json",
151
+ "ast.json"
152
+ ],
153
+ "ordemLeitura": [
154
+ "README.md",
155
+ "resumo.md",
156
+ "briefing.json",
157
+ "drift.json",
158
+ "ir.json",
159
+ "ast.json"
160
+ ],
161
+ "evitar": []
162
+ }
163
+ },
164
+ "modulos": [
165
+ {
166
+ "geradoEm": "2026-03-31T16:04:57.600Z",
167
+ "arquivo": "C:\\GitHub\\Sema\\contratos\\pedidos.sema",
168
+ "modulo": "app.pedidos",
169
+ "perfilCompatibilidade": "publico",
170
+ "scoreSemantico": 50,
171
+ "confiancaGeral": "baixa",
172
+ "riscoOperacional": "alto",
173
+ "faz": "governa 1 rota(s), 1 task(s) com foco em criar pedido publico",
174
+ "tarefasPrincipais": [
175
+ "criar_pedido"
176
+ ],
177
+ "entradasChave": [
178
+ "criar_pedido(cliente_id, total)"
179
+ ],
180
+ "saidasChave": [
181
+ "criar_pedido(pedido_id, status)"
182
+ ],
183
+ "superficiesPublicas": [
184
+ "POST /pedidos"
185
+ ],
186
+ "regrasCriticas": [
187
+ "pedido_id existe",
188
+ "status existe",
189
+ "total > 0"
190
+ ],
191
+ "efeitos": [
192
+ "auditoria pedidos",
193
+ "persistencia Pedido criticidade = alta"
194
+ ],
195
+ "erros": [],
196
+ "entidadesAfetadas": [
197
+ "Pedido",
198
+ "pedidos"
199
+ ],
200
+ "arquivosProvaveis": [],
201
+ "simbolosRelacionados": [],
202
+ "riscosPrincipais": [
203
+ "altera_persistencia",
204
+ "criar_pedido:alto",
205
+ "efeito_critico",
206
+ "vinculo_fraco"
207
+ ],
208
+ "lacunas": [
209
+ "execucao_implicita",
210
+ "sem_impl",
211
+ "sem_vinculos"
212
+ ],
213
+ "inferido": [],
214
+ "checksSugeridos": [
215
+ "revisar efeitos operacionais",
216
+ "rodar sema drift --json",
217
+ "rodar sema validar --json",
218
+ "verificar guarantees"
219
+ ],
220
+ "testesMinimos": [
221
+ "sema drift <arquivo> --json",
222
+ "sema validar <arquivo> --json",
223
+ "sema verificar <arquivo-ou-pasta> --json"
224
+ ]
225
+ },
226
+ {
227
+ "geradoEm": "2026-03-31T16:04:57.600Z",
228
+ "arquivo": "C:\\GitHub\\Sema\\contratos\\sema\\ergonomia_e_dominio.sema",
229
+ "modulo": "sema.produto.ergonomia_e_dominio",
230
+ "perfilCompatibilidade": "interno",
231
+ "scoreSemantico": 90,
232
+ "confiancaGeral": "alta",
233
+ "riscoOperacional": "alto",
234
+ "faz": "governa 2 superficie(s), 5 task(s) com foco em scorecard atualizado",
235
+ "tarefasPrincipais": [
236
+ "reduzir_atrito_sintatico_em_contrato_rico",
237
+ "modelar_payload_com_mais_precisao",
238
+ "explicitar_variacao_e_compatibilidade",
239
+ "separar_validacao_regra_e_poscondicao",
240
+ "consultar_scorecard_compatibilidade"
241
+ ],
242
+ "entradasChave": [
243
+ "reduzir_atrito_sintatico_em_contrato_rico(contrato_atual, repeticao_detectada)",
244
+ "modelar_payload_com_mais_precisao(contrato_atual, payload_json_generico, exemplos_payload)",
245
+ "explicitar_variacao_e_compatibilidade(contrato_atual, perfil_atual)",
246
+ "separar_validacao_regra_e_poscondicao(contrato_atual, garantias_confusas)"
247
+ ],
248
+ "saidasChave": [
249
+ "reduzir_atrito_sintatico_em_contrato_rico(leitura_mais_limpa, ambiguidade_controlada, perfil)",
250
+ "modelar_payload_com_mais_precisao(tipo_composto_explicito, cardinalidade_explicita, shape_rico)",
251
+ "explicitar_variacao_e_compatibilidade(versao_explicita, fallback_claro, contrato_publico_distinto)",
252
+ "separar_validacao_regra_e_poscondicao(validacao_de_input_clara, regra_de_negocio_clara, pos_condicao_clara)"
253
+ ],
254
+ "superficiesPublicas": [
255
+ "evento:scorecard_atualizado",
256
+ "policy:compatibilidade_publica"
257
+ ],
258
+ "regrasCriticas": [
259
+ "ambiguidade_controlada existe",
260
+ "cardinalidade_explicita existe",
261
+ "contrato_publico_distinto existe",
262
+ "fallback_claro existe",
263
+ "leitura_mais_limpa existe",
264
+ "nota existe",
265
+ "perfil em [ PUBLICO , INTERNO , EXPERIMENTAL , LEGADO , DEPRECADO ]",
266
+ "pos_condicao_clara existe"
267
+ ],
268
+ "efeitos": [],
269
+ "erros": [],
270
+ "entidadesAfetadas": [
271
+ "PerfilCompatibilidade"
272
+ ],
273
+ "arquivosProvaveis": [
274
+ "C:\\GitHub\\Sema\\pacotes\\cli\\src\\projeto.ts",
275
+ "C:\\GitHub\\Sema\\pacotes\\nucleo\\src\\formatador\\index.ts",
276
+ "C:\\GitHub\\Sema\\pacotes\\nucleo\\src\\ir\\conversor.ts",
277
+ "C:\\GitHub\\Sema\\pacotes\\nucleo\\src\\semantico\\analisador.ts"
278
+ ],
279
+ "simbolosRelacionados": [
280
+ "analisarSemantica",
281
+ "converterParaIr",
282
+ "formatarCodigo",
283
+ "resolverAlvosVerificacao"
284
+ ],
285
+ "riscosPrincipais": [
286
+ "consultar_scorecard_compatibilidade:medio",
287
+ "explicitar_variacao_e_compatibilidade:medio",
288
+ "modelar_payload_com_mais_precisao:alto",
289
+ "reduzir_atrito_sintatico_em_contrato_rico:medio",
290
+ "separar_validacao_regra_e_poscondicao:medio"
291
+ ],
292
+ "lacunas": [
293
+ "execucao_implicita",
294
+ "sem_impl",
295
+ "sem_vinculos"
296
+ ],
297
+ "inferido": [
298
+ "consultar_scorecard_compatibilidade:pacotes/cli/src/projeto.ts",
299
+ "evento:scorecard_atualizado:scorecard_compatibilidade",
300
+ "explicitar_variacao_e_compatibilidade:pacotes/nucleo/src/ir/conversor.ts",
301
+ "modelar_payload_com_mais_precisao:pacotes/nucleo/src/semantico/analisador.ts",
302
+ "policy:compatibilidade_publica:compatibilidade_publica",
303
+ "reduzir_atrito_sintatico_em_contrato_rico:pacotes/nucleo/src/formatador/index.ts"
304
+ ],
305
+ "checksSugeridos": [
306
+ "revisar efeitos operacionais",
307
+ "rodar sema drift --json",
308
+ "rodar sema validar --json",
309
+ "verificar guarantees"
310
+ ],
311
+ "testesMinimos": [
312
+ "sema drift <arquivo> --json",
313
+ "sema validar <arquivo> --json",
314
+ "sema verificar <arquivo-ou-pasta> --json"
315
+ ]
316
+ },
317
+ {
318
+ "geradoEm": "2026-03-31T16:04:57.600Z",
319
+ "arquivo": "C:\\GitHub\\Sema\\contratos\\sema\\governanca_ia.sema",
320
+ "modulo": "sema.produto.governanca_ia",
321
+ "perfilCompatibilidade": "publico",
322
+ "scoreSemantico": 90,
323
+ "confiancaGeral": "alta",
324
+ "riscoOperacional": "alto",
325
+ "faz": "governa 2 superficie(s), 4 task(s) com foco em preparar briefing contextual",
326
+ "tarefasPrincipais": [
327
+ "mapear_projeto_sem_adivinhacao",
328
+ "normalizar_saida_sem_ruido",
329
+ "medir_drift_contra_codigo_vivo",
330
+ "padronizar_nomes_para_leitura_de_ia"
331
+ ],
332
+ "entradasChave": [
333
+ "mapear_projeto_sem_adivinhacao(entrada, explicito)",
334
+ "normalizar_saida_sem_ruido(estrutura_desejada)",
335
+ "medir_drift_contra_codigo_vivo(contrato_alvo, codigo_vivo)",
336
+ "padronizar_nomes_para_leitura_de_ia(contrato_atual, sinonimos_em_excesso)"
337
+ ],
338
+ "saidasChave": [
339
+ "mapear_projeto_sem_adivinhacao(base_resolvida, origens_coerentes, codigo_vivo_detectado)",
340
+ "normalizar_saida_sem_ruido(estrutura_canonica, alias_confuso)",
341
+ "medir_drift_contra_codigo_vivo(impls_resolvidas, rotas_resolvidas, ambiguidades_explicitas)",
342
+ "padronizar_nomes_para_leitura_de_ia(nomes_consistentes, leitura_rapida, casos_especiais_reduzidos)"
343
+ ],
344
+ "superficiesPublicas": [
345
+ "webhook:confirmar_contexto_publico",
346
+ "worker:preparar_briefing_contextual"
347
+ ],
348
+ "regrasCriticas": [
349
+ "alias_confuso existe",
350
+ "ambiguidades_explicitas existe",
351
+ "base_resolvida existe",
352
+ "casos_especiais_reduzidos existe",
353
+ "codigo_vivo_detectado existe",
354
+ "estrutura_canonica existe",
355
+ "impls_resolvidas existe",
356
+ "leitura_rapida existe"
357
+ ],
358
+ "efeitos": [],
359
+ "erros": [
360
+ "simbolo_ambiguo"
361
+ ],
362
+ "entidadesAfetadas": [],
363
+ "arquivosProvaveis": [
364
+ "C:\\GitHub\\Sema\\pacotes\\cli\\src\\drift.ts",
365
+ "C:\\GitHub\\Sema\\pacotes\\cli\\src\\index.ts",
366
+ "C:\\GitHub\\Sema\\pacotes\\cli\\src\\projeto.ts",
367
+ "C:\\GitHub\\Sema\\pacotes\\nucleo\\src\\formatador\\index.ts"
368
+ ],
369
+ "simbolosRelacionados": [
370
+ "analisarDriftLegado",
371
+ "carregarProjeto",
372
+ "comandoContextoIa",
373
+ "formatarCodigo",
374
+ "normalizarEstruturaSaida"
375
+ ],
376
+ "riscosPrincipais": [
377
+ "mapear_projeto_sem_adivinhacao:medio",
378
+ "medir_drift_contra_codigo_vivo:alto",
379
+ "normalizar_saida_sem_ruido:medio",
380
+ "padronizar_nomes_para_leitura_de_ia:medio"
381
+ ],
382
+ "lacunas": [
383
+ "execucao_implicita",
384
+ "sem_impl",
385
+ "sem_vinculos"
386
+ ],
387
+ "inferido": [
388
+ "mapear_projeto_sem_adivinhacao:pacotes/cli/src/projeto.ts",
389
+ "medir_drift_contra_codigo_vivo:pacotes/cli/src/drift.ts",
390
+ "normalizar_saida_sem_ruido:pacotes/cli/src/projeto.ts",
391
+ "padronizar_nomes_para_leitura_de_ia:pacotes/nucleo/src/formatador/index.ts",
392
+ "sema.produto.governanca_ia:pacotes/cli/src/index.ts",
393
+ "webhook:confirmar_contexto_publico:/ interno / contexto-ia"
394
+ ],
395
+ "checksSugeridos": [
396
+ "revisar efeitos operacionais",
397
+ "rodar sema drift --json",
398
+ "rodar sema validar --json",
399
+ "verificar guarantees"
400
+ ],
401
+ "testesMinimos": [
402
+ "sema drift <arquivo> --json",
403
+ "sema validar <arquivo> --json",
404
+ "sema verificar <arquivo-ou-pasta> --json"
405
+ ]
406
+ },
407
+ {
408
+ "geradoEm": "2026-03-31T16:04:57.600Z",
409
+ "arquivo": "C:\\GitHub\\Sema\\contratos\\sema\\linguagem_composta.sema",
410
+ "modulo": "sema.produto.linguagem_composta",
411
+ "perfilCompatibilidade": "interno",
412
+ "scoreSemantico": 90,
413
+ "confiancaGeral": "alta",
414
+ "riscoOperacional": "alto",
415
+ "faz": "governa 1 superficie(s), 5 task(s) com foco em regressao composta",
416
+ "tarefasPrincipais": [
417
+ "interpretar_bloco_nomeado",
418
+ "converter_bloco_composto_para_ir",
419
+ "formatar_bloco_composto",
420
+ "gerar_teste_python_composto",
421
+ "gerar_teste_typescript_composto"
422
+ ],
423
+ "entradasChave": [
424
+ "interpretar_bloco_nomeado(arquivo_semantico, sinais)",
425
+ "converter_bloco_composto_para_ir(arquivo_semantico)",
426
+ "formatar_bloco_composto(arquivo_semantico)",
427
+ "gerar_teste_python_composto(contrato)"
428
+ ],
429
+ "saidasChave": [
430
+ "interpretar_bloco_nomeado(ast_valida, blocos_preservados, status)",
431
+ "converter_bloco_composto_para_ir(ir_coerente, contexto_preservado, status)",
432
+ "formatar_bloco_composto(formato_canonico, bloco_legivel)",
433
+ "gerar_teste_python_composto(dataclass_aninhada, comparacao_tipada)"
434
+ ],
435
+ "superficiesPublicas": [
436
+ "storage:regressao_composta"
437
+ ],
438
+ "regrasCriticas": [
439
+ "asserts_coerentes existe",
440
+ "ast_valida existe",
441
+ "bloco_legivel existe",
442
+ "blocos_preservados existe",
443
+ "comparacao_tipada existe",
444
+ "contexto_preservado existe",
445
+ "dataclass_aninhada existe",
446
+ "formato_canonico existe"
447
+ ],
448
+ "efeitos": [],
449
+ "erros": [],
450
+ "entidadesAfetadas": [
451
+ "SinalTesteComposto",
452
+ "StatusEvolucao"
453
+ ],
454
+ "arquivosProvaveis": [
455
+ "C:\\GitHub\\Sema\\pacotes\\gerador-python\\src\\index.ts",
456
+ "C:\\GitHub\\Sema\\pacotes\\gerador-typescript\\src\\index.ts",
457
+ "C:\\GitHub\\Sema\\pacotes\\nucleo\\src\\formatador\\index.ts",
458
+ "C:\\GitHub\\Sema\\pacotes\\nucleo\\src\\ir\\conversor.ts",
459
+ "C:\\GitHub\\Sema\\pacotes\\nucleo\\src\\parser\\parser.ts"
460
+ ],
461
+ "simbolosRelacionados": [
462
+ "converterParaIr",
463
+ "formatarCodigo",
464
+ "gerarPython",
465
+ "gerarTypeScript",
466
+ "parsear"
467
+ ],
468
+ "riscosPrincipais": [
469
+ "converter_bloco_composto_para_ir:alto",
470
+ "formatar_bloco_composto:medio",
471
+ "gerar_teste_python_composto:medio",
472
+ "gerar_teste_typescript_composto:medio",
473
+ "interpretar_bloco_nomeado:alto"
474
+ ],
475
+ "lacunas": [
476
+ "execucao_implicita",
477
+ "sem_impl",
478
+ "sem_vinculos"
479
+ ],
480
+ "inferido": [
481
+ "converter_bloco_composto_para_ir:pacotes/nucleo/src/ir/conversor.ts",
482
+ "formatar_bloco_composto:pacotes/nucleo/src/formatador/index.ts",
483
+ "gerar_teste_python_composto:pacotes/gerador-python/src/index.ts",
484
+ "gerar_teste_typescript_composto:pacotes/gerador-typescript/src/index.ts",
485
+ "interpretar_bloco_nomeado:pacotes/nucleo/src/parser/parser.ts",
486
+ "sema.produto.linguagem_composta:pacotes/nucleo/src/parser/parser.ts"
487
+ ],
488
+ "checksSugeridos": [
489
+ "revisar efeitos operacionais",
490
+ "rodar sema drift --json",
491
+ "rodar sema validar --json",
492
+ "verificar guarantees"
493
+ ],
494
+ "testesMinimos": [
495
+ "sema drift <arquivo> --json",
496
+ "sema validar <arquivo> --json",
497
+ "sema verificar <arquivo-ou-pasta> --json"
498
+ ]
499
+ }
500
+ ]
501
+ }
package/dist/drift.d.ts CHANGED
@@ -1,5 +1,16 @@
1
1
  import type { NivelConfiancaSemantica, NivelRiscoSemantico } from "@sema/nucleo";
2
2
  import type { ContextoProjetoCarregado } from "./projeto.js";
3
+ type ConsumerFramework = "nextjs-consumer" | "react-vite-consumer" | "angular-consumer" | "flutter-consumer";
4
+ interface RegistroConsumerSurfaceDrift {
5
+ rota: string;
6
+ arquivo: string;
7
+ tipoArquivo: string;
8
+ }
9
+ interface RegistroConsumerBridgeDrift {
10
+ caminho: string;
11
+ arquivo: string;
12
+ simbolo: string;
13
+ }
3
14
  export interface DiagnosticoDrift {
4
15
  tipo: "impl_quebrado" | "task_sem_impl" | "rota_divergente" | "recurso_divergente" | "vinculo_quebrado";
5
16
  modulo: string;
@@ -74,6 +85,10 @@ interface RegistroVinculoDrift {
74
85
  export interface ResultadoDrift {
75
86
  comando: "drift";
76
87
  sucesso: boolean;
88
+ consumerFramework: ConsumerFramework | null;
89
+ appRoutes: string[];
90
+ consumerSurfaces: RegistroConsumerSurfaceDrift[];
91
+ consumerBridges: RegistroConsumerBridgeDrift[];
77
92
  modulos: Array<{
78
93
  caminho: string;
79
94
  modulo: string | null;