@semacode/cli 1.5.46 → 1.5.48
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 +81 -324
- package/AGENT_CONTEXT_PACK.json +79 -37
- package/SEMA_BRIEF.curto.txt +8 -8
- package/SEMA_BRIEF.md +133 -112
- package/SEMA_BRIEF.micro.txt +6 -6
- package/SEMA_INDEX.json +978 -517
- package/dist/agentContext.d.ts +1 -1
- package/dist/agentContextPack.js +76 -35
- package/dist/agentContextPack.js.map +1 -1
- package/dist/agentContextTipos.d.ts +1 -1
- package/dist/agentContextTipos.js +1 -0
- package/dist/agentContextTipos.js.map +1 -1
- package/dist/agentEntryPoints.js +359 -42
- package/dist/agentEntryPoints.js.map +1 -1
- package/dist/drift.part01.d.ts +1 -1
- package/dist/drift.part04.d.ts +1 -1
- package/dist/drift.part04.js +2 -2
- package/dist/drift.part04.js.map +1 -1
- package/dist/drift.part05.d.ts +3 -3
- package/dist/drift.part05.js +8 -8
- package/dist/drift.part05.js.map +1 -1
- package/dist/drift.part06.js +15 -8
- package/dist/drift.part06.js.map +1 -1
- package/dist/drift.part09.js +11 -7
- package/dist/drift.part09.js.map +1 -1
- package/dist/driftOrcamento.d.ts +11 -1
- package/dist/driftOrcamento.js +48 -18
- package/dist/driftOrcamento.js.map +1 -1
- package/dist/index.part02.js +4 -2
- package/dist/index.part02.js.map +1 -1
- package/dist/index.part04.js +3 -3
- package/dist/index.part04.js.map +1 -1
- package/dist/initCommand.js +20 -0
- package/dist/initCommand.js.map +1 -1
- package/dist/initTemplatesBase.js +50 -2
- package/dist/initTemplatesBase.js.map +1 -1
- package/dist/profileArtefatoValidadores.js +42 -0
- package/dist/profileArtefatoValidadores.js.map +1 -1
- package/dist/profileI18nCatalogo.js +2 -0
- package/dist/profileI18nCatalogo.js.map +1 -1
- package/dist/projetoConfig.js +7 -0
- package/dist/projetoConfig.js.map +1 -1
- package/dist/projetoLegado.js +10 -3
- package/dist/projetoLegado.js.map +1 -1
- package/dist/runnerValidacaoRemotaWorkspace.js +4 -1
- package/dist/runnerValidacaoRemotaWorkspace.js.map +1 -1
- package/dist/tipos.d.ts +1 -1
- package/docs/AGENT_STARTER.md +49 -13
- package/docs/agentes-por-capacidade.md +26 -22
- package/docs/cli.md +3 -0
- package/docs/comandos.md +807 -0
- package/docs/env.md +2 -2
- package/docs/extensao-vscode.md +1 -1
- package/docs/fluxo-pratico-ia-sema.md +63 -0
- package/docs/sintaxe.md +178 -6
- package/node_modules/@sema/gerador-css/dist/index.part01.js +1 -0
- package/node_modules/@sema/gerador-css/dist/index.part01.js.map +1 -1
- package/node_modules/@sema/gerador-css/package.json +1 -1
- package/node_modules/@sema/gerador-dart/dist/index.js +1 -0
- package/node_modules/@sema/gerador-dart/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-dart/package.json +1 -1
- package/node_modules/@sema/gerador-html/dist/index.js +1 -0
- package/node_modules/@sema/gerador-html/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-html/package.json +1 -1
- package/node_modules/@sema/gerador-javascript/dist/index.js +1 -0
- package/node_modules/@sema/gerador-javascript/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-javascript/package.json +1 -1
- package/node_modules/@sema/gerador-lua/dist/index.js +1 -0
- package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -1
- package/node_modules/@sema/gerador-lua/package.json +1 -1
- package/node_modules/@sema/gerador-python/dist/index.part02.js +1 -0
- package/node_modules/@sema/gerador-python/dist/index.part02.js.map +1 -1
- package/node_modules/@sema/gerador-python/package.json +1 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js +1 -0
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +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/ir/conversor.part01.js +4 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.d.ts +1 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +3 -3
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js +3 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.d.ts +2 -2
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js +4 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +1 -1
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.d.ts +2 -2
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js +11 -5
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.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 +10 -10
package/AGENTS.md
CHANGED
|
@@ -1,324 +1,81 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
-
|
|
78
|
-
-
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
## Quando o projeto nao tem .sema
|
|
84
|
-
|
|
85
|
-
Pergunte ao usuario se deseja semantizar o projeto e sugira: sema iniciar
|
|
86
|
-
|
|
87
|
-
## Exemplos de arquivos .sema (referencia de formato)
|
|
88
|
-
|
|
89
|
-
### 1. Task simples com testes
|
|
90
|
-
```
|
|
91
|
-
module exemplos.calculadora {
|
|
92
|
-
task somar {
|
|
93
|
-
input {
|
|
94
|
-
a: Numero required
|
|
95
|
-
b: Numero required
|
|
96
|
-
}
|
|
97
|
-
output {
|
|
98
|
-
resultado: Numero
|
|
99
|
-
}
|
|
100
|
-
rules {
|
|
101
|
-
a deve_ser numero_valido
|
|
102
|
-
b deve_ser numero_valido
|
|
103
|
-
}
|
|
104
|
-
effects {
|
|
105
|
-
auditoria operacao soma
|
|
106
|
-
}
|
|
107
|
-
guarantees {
|
|
108
|
-
resultado existe
|
|
109
|
-
}
|
|
110
|
-
error {
|
|
111
|
-
entrada_invalida: "Os valores precisam ser numericos."
|
|
112
|
-
}
|
|
113
|
-
tests {
|
|
114
|
-
caso "soma basica" {
|
|
115
|
-
given { a: 2 b: 3 }
|
|
116
|
-
expect { sucesso: verdadeiro }
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### 2. Entity + CRUD com route
|
|
124
|
-
```
|
|
125
|
-
module exemplos.crud.simples {
|
|
126
|
-
entity Produto {
|
|
127
|
-
fields {
|
|
128
|
-
id: Id
|
|
129
|
-
nome: Texto
|
|
130
|
-
preco: Decimal
|
|
131
|
-
ativo: Booleano
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
task criar_produto {
|
|
136
|
-
input {
|
|
137
|
-
nome: Texto required
|
|
138
|
-
preco: Decimal required
|
|
139
|
-
}
|
|
140
|
-
output {
|
|
141
|
-
produto: Produto
|
|
142
|
-
}
|
|
143
|
-
rules {
|
|
144
|
-
nome deve_ser preenchido
|
|
145
|
-
preco deve_ser positivo
|
|
146
|
-
}
|
|
147
|
-
effects {
|
|
148
|
-
persistencia Produto
|
|
149
|
-
auditoria produto_criado
|
|
150
|
-
}
|
|
151
|
-
guarantees {
|
|
152
|
-
produto existe
|
|
153
|
-
}
|
|
154
|
-
tests {
|
|
155
|
-
caso "cria produto" {
|
|
156
|
-
given { nome: "Caneca" preco: 39.9 }
|
|
157
|
-
expect { sucesso: verdadeiro }
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
route produtos {
|
|
163
|
-
metodo: POST
|
|
164
|
-
caminho: /produtos
|
|
165
|
-
task: criar_produto
|
|
166
|
-
finalidade: cadastro_produto
|
|
167
|
-
input { nome: Texto preco: Decimal }
|
|
168
|
-
output { produto: Produto }
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### 3. Cadastro com validacoes e unicidade
|
|
174
|
-
```
|
|
175
|
-
module exemplos.cadastro.usuario {
|
|
176
|
-
entity Usuario {
|
|
177
|
-
fields {
|
|
178
|
-
id: Id
|
|
179
|
-
nome: Texto
|
|
180
|
-
email: Email
|
|
181
|
-
ativo: Booleano
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
task criar_usuario {
|
|
186
|
-
input {
|
|
187
|
-
nome: Texto required
|
|
188
|
-
email: Email required
|
|
189
|
-
}
|
|
190
|
-
output {
|
|
191
|
-
usuario: Usuario
|
|
192
|
-
}
|
|
193
|
-
rules {
|
|
194
|
-
nome deve_ser preenchido
|
|
195
|
-
email deve_ser email_valido
|
|
196
|
-
email deve_ser unico em Usuario.email
|
|
197
|
-
}
|
|
198
|
-
effects {
|
|
199
|
-
persistencia Usuario
|
|
200
|
-
evento usuario_criado
|
|
201
|
-
auditoria cadastro_usuario
|
|
202
|
-
}
|
|
203
|
-
guarantees {
|
|
204
|
-
usuario existe
|
|
205
|
-
persistencia concluida
|
|
206
|
-
}
|
|
207
|
-
error {
|
|
208
|
-
email_duplicado: "Ja existe usuario com este email."
|
|
209
|
-
entrada_invalida: "Os dados informados nao atendem as regras."
|
|
210
|
-
}
|
|
211
|
-
tests {
|
|
212
|
-
caso "cria usuario valido" {
|
|
213
|
-
given { nome: "Ana" email: "ana@empresa.com" }
|
|
214
|
-
expect { sucesso: verdadeiro }
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
### 4. Pagamento com state e flow
|
|
222
|
-
```
|
|
223
|
-
module exemplos.pagamento {
|
|
224
|
-
task processar_pagamento {
|
|
225
|
-
input {
|
|
226
|
-
pagamento_id: Id required
|
|
227
|
-
valor: Decimal required
|
|
228
|
-
token: Texto required
|
|
229
|
-
}
|
|
230
|
-
output {
|
|
231
|
-
pagamento: Pagamento
|
|
232
|
-
status: StatusPagamento
|
|
233
|
-
}
|
|
234
|
-
rules {
|
|
235
|
-
valor > 0
|
|
236
|
-
token deve_ser valido
|
|
237
|
-
}
|
|
238
|
-
effects {
|
|
239
|
-
consulta gateway_pagamento criticidade = alta
|
|
240
|
-
persistencia Pagamento criticidade = alta
|
|
241
|
-
evento pagamento_autorizado criticidade = media
|
|
242
|
-
auditoria pagamento criticidade = alta
|
|
243
|
-
}
|
|
244
|
-
state ciclo_pagamento {
|
|
245
|
-
transitions {
|
|
246
|
-
PENDENTE -> AUTORIZADO
|
|
247
|
-
AUTORIZADO -> PROCESSADO
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
guarantees {
|
|
251
|
-
pagamento existe
|
|
252
|
-
status em [AUTORIZADO, PROCESSADO]
|
|
253
|
-
}
|
|
254
|
-
error {
|
|
255
|
-
autorizacao_negada: "Recusado pelo gateway."
|
|
256
|
-
timeout_gateway: "Gateway nao respondeu."
|
|
257
|
-
}
|
|
258
|
-
tests {
|
|
259
|
-
caso "pagamento autorizado" {
|
|
260
|
-
given { pagamento_id: "pag_1" valor: 199.9 token: "tok_ok" }
|
|
261
|
-
expect { sucesso: verdadeiro }
|
|
262
|
-
}
|
|
263
|
-
caso "pagamento recusado" {
|
|
264
|
-
given { pagamento_id: "pag_err" valor: 10 token: "tok_recusado" }
|
|
265
|
-
expect { sucesso: falso }
|
|
266
|
-
error { tipo: "autorizacao_negada" }
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
flow orquestracao_pagamento {
|
|
272
|
-
pagamento_id: Id
|
|
273
|
-
valor: Decimal
|
|
274
|
-
token: Texto
|
|
275
|
-
etapa autorizar usa processar_pagamento com pagamento_id = pagamento_id, valor = valor, token = token em_sucesso confirmar em_erro registrar_falha
|
|
276
|
-
etapa confirmar usa confirmar_pagamento com pagamento_id = pagamento_id depende_de autorizar
|
|
277
|
-
etapa registrar_falha usa registrar_timeout_pagamento com pagamento_id = pagamento_id depende_de autorizar
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
### 5. Tratamento de erro com flow ramificado
|
|
283
|
-
```
|
|
284
|
-
module exemplos.tratamento.erro {
|
|
285
|
-
task executar_operacao_sensivel {
|
|
286
|
-
input {
|
|
287
|
-
chave: Texto required
|
|
288
|
-
}
|
|
289
|
-
output {
|
|
290
|
-
protocolo: Id
|
|
291
|
-
}
|
|
292
|
-
rules {
|
|
293
|
-
chave deve_ser preenchida
|
|
294
|
-
}
|
|
295
|
-
effects {
|
|
296
|
-
consulta cofre
|
|
297
|
-
auditoria falha_operacao_sensivel
|
|
298
|
-
}
|
|
299
|
-
guarantees {
|
|
300
|
-
protocolo existe
|
|
301
|
-
}
|
|
302
|
-
error {
|
|
303
|
-
acesso_negado: "A chave nao tem permissao."
|
|
304
|
-
recurso_indisponivel: "Servico temporariamente indisponivel."
|
|
305
|
-
}
|
|
306
|
-
tests {
|
|
307
|
-
caso "falha por acesso negado" {
|
|
308
|
-
given { chave: "sem_permissao" }
|
|
309
|
-
expect { sucesso: falso }
|
|
310
|
-
error { tipo: "acesso_negado" }
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
flow resposta_segura {
|
|
316
|
-
chave: Texto
|
|
317
|
-
etapa tentar usa executar_operacao_sensivel com chave = chave em_sucesso concluir em_erro registrar_falha por_erro acesso_negado = tratar_acesso_negado, recurso_indisponivel = agendar_retentativa
|
|
318
|
-
etapa tratar_acesso_negado usa responder_acesso_negado com chave = chave depende_de tentar
|
|
319
|
-
etapa agendar_retentativa usa responder_retentativa com chave = chave depende_de tentar
|
|
320
|
-
etapa registrar_falha usa registrar_auditoria_falha com chave = chave depende_de tentar
|
|
321
|
-
etapa concluir usa registrar_sucesso com protocolo = tentar.protocolo depende_de tentar
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
```
|
|
1
|
+
<!-- sema:agent-entrypoint:start -->
|
|
2
|
+
# Sema para agente
|
|
3
|
+
|
|
4
|
+
Este workspace é governado por Sema. Antes de qualquer ação em código, contrato, documentação operacional, workflow, profile ou deploy:
|
|
5
|
+
|
|
6
|
+
1. Leia `SEMA_BOOT.md`.
|
|
7
|
+
2. Em IDE local, rode `sema --version`; se falhar, pare. A IA não acessa o painel Sema: peça ao humano para instalar a CLI pelo painel. Depois rode `sema preflight resumo --json`; se `decisao` não for `use_cli_local`, pare.
|
|
8
|
+
3. Use CLI local: `sema resumo`, `sema docs-impacto`, `sema inspecionar`, `sema drift` e `sema impacto`.
|
|
9
|
+
4. Não use rota remota, sincronização externa ou leitura por espelho para substituir a CLI local quando a CLI estiver operacional.
|
|
10
|
+
5. Chame docs-impacto com a intenção declarada antes de agir.
|
|
11
|
+
6. Chame inspecionar no contrato `.sema` aplicável.
|
|
12
|
+
7. Antes de editar código existente, rode drift e impacto.
|
|
13
|
+
8. Antes de criar ou editar `.sema`, use exemplos oficiais.
|
|
14
|
+
9. Ao concluir mudança de contrato, rode validar.
|
|
15
|
+
10. Antes de finalizar, use finalizar-mudanca com as docs lidas.
|
|
16
|
+
|
|
17
|
+
É proibido substituir esse fluxo por leitura manual de `AGENTS.md`, `README.md`, busca local por arquivos, inferência pelo nome do projeto, bom senso ou ferramenta não citada nesta lista.
|
|
18
|
+
|
|
19
|
+
Capacidade padrão deste cliente: media.
|
|
20
|
+
Ordem de leitura: SEMA_BOOT.md -> agent-context-pack.json -> resumo.curto.txt -> briefing.min.json -> drift.json -> resumo.md.
|
|
21
|
+
|
|
22
|
+
Políticas da plataforma:
|
|
23
|
+
- O Sema governa contrato, escopo, drift, evidência e qualidade do projeto. Ele não pede, não autoriza e não contorna políticas da plataforma, termos de uso, permissões, segurança ou leis.
|
|
24
|
+
- Capacidade media: Separe bloqueio da plataforma de erro do Sema. Reformule em linguagem neutra quando permitido e mantenha os gates; não tente contornar filtro.
|
|
25
|
+
- Se houver alerta externo: Se um cliente, modelo ou classificador bloquear a mensagem, trate como bloqueio externo ou falso positivo possível: explique de forma neutra, preserve a intenção legítima de governança e não tente burlar filtros.
|
|
26
|
+
|
|
27
|
+
Falha fechada:
|
|
28
|
+
- Se não conseguir chamar Sema, pare e declare bloqueio em vez de editar código ou contrato.
|
|
29
|
+
- Se não houver contrato aplicável ou vínculo semântico do arquivo, inspecione o arquivo, descubra ou crie o .sema aplicável e vincule antes do código.
|
|
30
|
+
- Em IDE local, rode sema --version; se falhar, pare. A IA não acessa o painel Sema: peça ao humano para instalar a CLI pelo painel. Depois rode sema preflight <comando> --json; só continue com use_cli_local; não use rota remota, sincronização externa ou leitura por espelho para workspace local.
|
|
31
|
+
- Se não houver workspace local em disco, pare bloqueado e peça o fluxo apropriado; não invente caminho nem substitua a CLI local por ferramenta paralela.
|
|
32
|
+
- Se arquivos_codigo.conteudo ou conteudo inline passar de 262144 caracteres, não aumente timeout para forçar: divida por responsabilidade ou use anexo/caminho de servidor autorizado.
|
|
33
|
+
- Se for criar ou corrigir .sema, use sema_exemplos antes de escrever sintaxe.
|
|
34
|
+
- Se a resposta humana estiver em PT-BR, use vocabulário Sema canônico e preserve acentos mesmo que a DSL use ASCII.
|
|
35
|
+
- Se um arquivo de código tiver SEMA-GOVERNED, consulte Sema e o contrato aplicável antes de editar.
|
|
36
|
+
- Se codigo governado passar de 1000 linhas, planeje divisao; se passar de 2000, pare e divida antes de concluir. Documentacao Markdown nao entra nesse limite de codigo.
|
|
37
|
+
- Se contrato .sema passar de 300 linhas, planeje split por dominio/capacidade; acima de 500, criacao e edicao ficam bloqueadas. Nao use parte_1/parte_2 e nao remova guarantees, tests ou vinculos so para caber.
|
|
38
|
+
- Um mesmo arquivo de codigo pode ser governado por varios contratos .sema via vinculos; Sema Codigo deve preservar essa rastreabilidade.
|
|
39
|
+
- Se score, achados ou decisaoAgente parecerem bons, trate como sinal de triagem e confira evidência concreta no contrato e no código.
|
|
40
|
+
- Se validar artefato inline com 100/100, ainda preserve cabeçalho SEMA-GOVERNED no arquivo físico sincronizado.
|
|
41
|
+
- Se `sema drift` retornar sucesso:false, `vinculos_quebrados`, `rotas_divergentes` ou impls quebradas, a mudanca nao pode ser declarada concluida; corrija contrato/codigo e rode drift de novo.
|
|
42
|
+
- Se a tarefa tiver site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal, nao conclua sem acabamento moderno, contextual e evidenciado; em UI mobile estreita (ex. 390px), `document.documentElement.scrollWidth <= document.documentElement.clientWidth` precisa ser verdadeiro.
|
|
43
|
+
- Se texto visivel PT-BR perder acento ou cedilha em termos como descricao, lancamentos, saude ou alimentacao, trate como defeito bloqueante quando houver i18n/idioma declarado.
|
|
44
|
+
- Se aparecer caminho de servidor como /srv/sema/projetos, trate como espelho governado, não como pasta local do usuário.
|
|
45
|
+
- Se uma chamada Sema estourar por timeout local, aumente o timeout e tente de novo; timeout do agente não libera ação sem Sema.
|
|
46
|
+
- Se a plataforma bloquear ou alertar política, trate como bloqueio externo ou falso positivo possível; explique sem tentar contornar filtro.
|
|
47
|
+
- Se a tarefa tiver experiência de uso e você não conseguir garantir padrão moderno, contextual e não genérico, pare e peça revisão em vez de entregar coisa engessada.
|
|
48
|
+
|
|
49
|
+
Timeout:
|
|
50
|
+
- Timeout local do agente não é falha do Sema.
|
|
51
|
+
- Se uma chamada Sema estourar, aumente o timeout e tente de novo antes de declarar bloqueio.
|
|
52
|
+
- Para projeto inteiro, comece com 120s ou mais; se for lento, escale 120s -> 300s -> 600s.
|
|
53
|
+
- Se possível, reduza escopo para `sema resumo <arquivo.sema> --micro --para mudanca`.
|
|
54
|
+
|
|
55
|
+
Código governado:
|
|
56
|
+
- Mantenha o marcador `SEMA-GOVERNED` em código gerado ou governado.
|
|
57
|
+
- Ao encontrar esse marcador, volte ao contrato .sema aplicável e chame Sema antes de editar.
|
|
58
|
+
- Comentário de código é lembrete curto; não substitui drift, docs-impacto nem finalizar-mudanca.
|
|
59
|
+
- Validação inline prova o payload enviado; não dispensa o marcador no arquivo físico sincronizado.
|
|
60
|
+
- Payload inline acima de 262144 caracteres não deve virar retry de timeout: modularize por responsabilidade ou use anexo/caminho de servidor autorizado.
|
|
61
|
+
- Se um arquivo crescer, divida por responsabilidade real. Em web: `index.html`, `styles/*.css`, `js/state.js`, `js/calc.js`, `js/render/*.js`, `data/*.json`. Não fatie em p1/p2 sem fronteira semântica.
|
|
62
|
+
|
|
63
|
+
Sinal e evidência:
|
|
64
|
+
- Score composto, `achados[]` e `decisaoAgente` orientam a ação; abaixo de 80 bloqueia, alvo evolui 0.5 ponto até 100, e nada substitui evidência concreta.
|
|
65
|
+
- Palavra-chave ou regex passando não prova governança se contrato, código e comportamento não batem.
|
|
66
|
+
- `sema drift --json` com `sucesso:false`, `vinculos_quebrados`, `rotas_divergentes` ou impls quebradas bloqueia fechamento. Não diga "drift limpo" até rodar de novo e ficar verde.
|
|
67
|
+
- Caminho de servidor ou espelho governado do Sema não é pasta local do usuário.
|
|
68
|
+
|
|
69
|
+
Acabamento visual e terminal:
|
|
70
|
+
- Se houver site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal, acabamento moderno, contextual e não genérico é requisito governado, não enfeite.
|
|
71
|
+
- Capacidade media: Defina intenção de experiência antes de codar: público, domínio, workflow real, densidade, tokens, componentes, tecnologia/biblioteca/efeitos adequados, estados, responsividade e anti-2010. O domínio manda na solução: agro, finanças, saúde, game e e-commerce não podem compartilhar a mesma casca. Rode ou peça screenshot/browser check quando houver UI e smoke check quando for terminal.
|
|
72
|
+
- Evidências: registrar tokens e componentes usados, registrar bibliotecas, APIs ou efeitos escolhidos e por que combinam com o pedido, validar desktop e mobile, testar viewport estreito como 390px sem scroll horizontal, corrigir texto sobreposto, rodar smoke check de CLI/TUI quando aplicável.
|
|
73
|
+
- Responsividade/ergonomia real: valide desktop/mobile e, em viewport estreito como 390px, confirme `document.documentElement.scrollWidth <= document.documentElement.clientWidth`; em terminal/CLI/TUI, rode smoke check de saída, erro e ajuda quando aplicável.
|
|
74
|
+
- Proibido: interface_generica_2010, formularios_sem_hierarquia_visual, cards_cinzas_sem_identidade, layout_sem_responsividade_real, texto_estourando_ou_sobreposto.
|
|
75
|
+
|
|
76
|
+
Idioma:
|
|
77
|
+
- Responda no idioma do usuário.
|
|
78
|
+
- Em PT-BR, use vocabulário Sema canônico, acentos, cedilha, pontuação e símbolos normais.
|
|
79
|
+
- A DSL `.sema` pode ser ASCII; texto humano não precisa ser.
|
|
80
|
+
- Não traduza comandos, rotas, arquivos, endpoints, variáveis, pacotes, marcas, símbolos de código nem palavras-chave da DSL.
|
|
81
|
+
<!-- sema:agent-entrypoint:end -->
|