@semacode/cli 2.3.1 → 3.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 +265 -217
- package/dist/agentContextPack.js +14 -10
- package/dist/agentEntryPoints.d.ts +5 -0
- package/dist/agentEntryPoints.js +567 -557
- package/dist/angular-consumer-standalone.js +1 -1
- package/dist/bin.d.ts +6 -0
- package/dist/bin.js +130 -0
- package/dist/cliArgs.js +4 -4
- package/dist/cliControlError.d.ts +12 -0
- package/dist/cliControlError.js +47 -0
- package/dist/cliGrammar.d.ts +11 -0
- package/dist/cliGrammar.js +551 -0
- package/dist/cliHelp.d.ts +13 -0
- package/dist/cliHelp.js +19 -0
- package/dist/cliHelpTexto.d.ts +3 -0
- package/dist/cliHelpTexto.js +168 -0
- package/dist/cliRuntime.d.ts +2 -0
- package/dist/cliRuntime.js +31 -0
- package/dist/comandos.js +9 -22
- package/dist/contexto.js +5 -5
- package/dist/dev/index.d.ts +1 -0
- package/dist/dev/index.js +51 -9
- package/dist/discovery/catalog.js +3 -3
- package/dist/distribuicao/filesystemGlobal.d.ts +63 -0
- package/dist/distribuicao/filesystemGlobal.js +701 -0
- package/dist/distribuicao/index.d.ts +7 -0
- package/dist/distribuicao/index.js +227 -0
- package/dist/distribuicao/launcherGlobal.d.ts +53 -0
- package/dist/distribuicao/launcherGlobal.js +643 -0
- package/dist/distribuicao/launcherWindows.d.ts +28 -0
- package/dist/distribuicao/launcherWindows.js +326 -0
- package/dist/distribuicao/lockContextGlobal.d.ts +10 -0
- package/dist/distribuicao/lockContextGlobal.js +17 -0
- package/dist/distribuicao/lockGlobal.d.ts +6 -0
- package/dist/distribuicao/lockGlobal.js +520 -0
- package/dist/distribuicao/skillGlobal.d.ts +48 -0
- package/dist/distribuicao/skillGlobal.js +652 -0
- package/dist/distribuicao/skillIntentPolicy.d.ts +21 -0
- package/dist/distribuicao/skillIntentPolicy.js +115 -0
- package/dist/distribuicao/tipos.d.ts +50 -0
- package/dist/distribuicao/tipos.js +10 -0
- package/dist/distribuicao/versaoSemantica.d.ts +3 -0
- package/dist/distribuicao/versaoSemantica.js +62 -0
- package/dist/drift.part01.d.ts +26 -24
- package/dist/drift.part01.js +2 -1
- package/dist/drift.part04.d.ts +12 -3
- package/dist/drift.part04.js +88 -17
- package/dist/drift.part05.d.ts +2 -2
- package/dist/drift.part05.js +8 -6
- package/dist/drift.part06.d.ts +2 -2
- package/dist/drift.part06.js +113 -26
- package/dist/drift.part07.d.ts +11 -11
- package/dist/drift.part07.js +261 -265
- package/dist/drift.part08.d.ts +2 -2
- package/dist/drift.part08.js +35 -26
- package/dist/drift.part11.js +238 -56
- package/dist/drift.part12.d.ts +1 -1
- package/dist/drift.part12.js +193 -21
- package/dist/drift.part13.d.ts +20 -39
- package/dist/drift.part13.js +601 -647
- package/dist/drift.part14.js +21 -7
- package/dist/driftCacheCas.d.ts +43 -0
- package/dist/driftCacheCas.js +351 -0
- package/dist/driftCacheFilesystem.d.ts +64 -0
- package/dist/driftCacheFilesystem.js +313 -0
- package/dist/driftCacheModes.d.ts +38 -0
- package/dist/driftCacheModes.js +147 -0
- package/dist/driftCacheStore.d.ts +80 -0
- package/dist/driftCacheStore.js +603 -0
- package/dist/driftCatalogo.d.ts +2 -28
- package/dist/driftCatalogo.js +143 -284
- package/dist/driftEscopo.d.ts +1 -3
- package/dist/driftEscopo.js +235 -151
- package/dist/driftEscopoReferencias.d.ts +5 -1
- package/dist/driftEscopoReferencias.js +375 -28
- package/dist/driftOrcamento.d.ts +0 -6
- package/dist/driftOrcamento.js +2 -1
- package/dist/execucoesExternas.js +19 -5
- package/dist/geracaoCore.js +4 -6
- package/dist/iaPrompts.d.ts +3 -3
- package/dist/iaPrompts.js +312 -313
- package/dist/index.d.ts +4 -1
- package/dist/index.js +6 -25
- package/dist/index.part01.d.ts +20 -28
- package/dist/index.part01.js +16 -237
- package/dist/index.part02.js +36 -22
- package/dist/index.part03.d.ts +24 -2
- package/dist/index.part03.js +83 -19
- package/dist/index.part04.d.ts +10 -2
- package/dist/index.part04.js +142 -120
- package/dist/index.part05.js +80 -78
- package/dist/index.part06.js +34 -17
- package/dist/index.part07.js +7 -3
- package/dist/index.part08.d.ts +1 -1
- package/dist/index.part08.js +22 -27
- package/dist/initCommand.js +5 -1
- package/dist/initTemplatesBase.js +81 -79
- package/dist/pipelineConteudo/command.d.ts +1 -0
- package/dist/pipelineConteudo/command.js +9 -2
- package/dist/pipelineConteudo/help.d.ts +2 -0
- package/dist/pipelineConteudo/help.js +33 -0
- package/dist/profileAuthorCommand.js +3 -7
- package/dist/profileCommand.js +3 -7
- package/dist/projetoCarregar.js +35 -17
- package/dist/projetoCatalogo.d.ts +1 -0
- package/dist/projetoCatalogo.js +64 -25
- package/dist/projetoOrigens.d.ts +2 -0
- package/dist/projetoOrigens.js +65 -9
- package/dist/projetoTipos.d.ts +1 -0
- package/dist/resultadoCli.d.ts +20 -0
- package/dist/resultadoCli.js +57 -0
- package/dist/saidaCli.d.ts +35 -0
- package/dist/saidaCli.js +118 -0
- package/dist/sistemasInterativos/acceptanceEvidence.d.ts +22 -0
- package/dist/sistemasInterativos/acceptanceEvidence.js +345 -0
- package/dist/sistemasInterativos/engineObservation.d.ts +12 -0
- package/dist/sistemasInterativos/engineObservation.js +438 -0
- package/dist/sistemasInterativos/jobOrchestration.d.ts +2 -0
- package/dist/sistemasInterativos/jobOrchestration.js +204 -0
- package/dist/sistemasInterativos/operationPrimitives.d.ts +21 -0
- package/dist/sistemasInterativos/operationPrimitives.js +194 -0
- package/dist/sistemasInterativos/operations.d.ts +4 -39
- package/dist/sistemasInterativos/operations.js +5 -1164
- package/dist/skillCommand.d.ts +5 -0
- package/dist/skillCommand.js +88 -0
- package/docs/README.md +34 -30
- package/docs/ai-integration.md +25 -12
- package/docs/ai-onboarding.md +37 -18
- package/docs/ai-workflow.md +9 -7
- package/docs/cli.md +125 -7
- package/docs/commands.md +41 -20
- package/docs/deploy.md +21 -8
- package/docs/descoberta-capacidades.md +106 -106
- package/docs/documentation.md +49 -39
- package/docs/drift-cache.md +108 -0
- package/docs/getting-started.md +43 -18
- package/docs/pipeline-conteudo.md +246 -246
- package/docs/profiles.md +54 -54
- package/docs/repositories.md +19 -2
- package/docs/rollback.md +15 -8
- package/docs/security.md +25 -3
- package/docs/sistemas-interativos.md +379 -374
- package/docs/testing.md +139 -40
- package/exemplos/pipeline-conteudo/README.md +44 -44
- package/exemplos/pipeline-conteudo/alvos.json +23 -23
- package/exemplos/pipeline-conteudo/definicao.json +136 -136
- package/exemplos/profile_simulation.sema +211 -211
- package/exemplos/sistemas-interativos/README.md +100 -100
- package/exemplos/sistemas-interativos/advanced/acceptance-context-evaluate-valid.json +5 -5
- package/exemplos/sistemas-interativos/advanced/acceptance-lock-valid.json +16 -16
- package/exemplos/sistemas-interativos/advanced/asset-provenance-valid.json +32 -32
- package/exemplos/sistemas-interativos/advanced/autonomy-repair-valid.json +93 -93
- package/exemplos/sistemas-interativos/advanced/control-run-definition-valid.json +78 -78
- package/exemplos/sistemas-interativos/advanced/control-run-valid.json +27 -27
- package/exemplos/sistemas-interativos/advanced/distributed-workers-valid.json +79 -79
- package/exemplos/sistemas-interativos/advanced/editor-state-valid.json +42 -42
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-after-valid.json +32 -32
- package/exemplos/sistemas-interativos/advanced/engine-snapshot-before-valid.json +23 -23
- package/exemplos/sistemas-interativos/advanced/job-orchestration-valid.json +39 -39
- package/exemplos/sistemas-interativos/advanced/multimodal-evidence-valid.json +46 -46
- package/exemplos/sistemas-interativos/advanced/multiplayer-authority-valid.json +39 -39
- package/exemplos/sistemas-interativos/advanced/playtest-fuzz-valid.json +37 -37
- package/exemplos/sistemas-interativos/advanced/portability-valid.json +104 -104
- package/exemplos/sistemas-interativos/advanced/temporal-evidence-valid.json +27 -27
- package/exemplos/sistemas-interativos/advanced/temporal-valid.json +118 -118
- package/exemplos/sistemas-interativos/experience-ir-valid.json +459 -459
- package/exemplos/sistemas-interativos/game-2d.json +83 -83
- package/exemplos/sistemas-interativos/game-3d-human.json +81 -81
- package/exemplos/sistemas-interativos/game-pixel-16-bit.json +97 -97
- package/exemplos/sistemas-interativos/game-pixel-8-bit.json +94 -94
- package/exemplos/sistemas-interativos/game-xr-human.json +80 -80
- package/exemplos/sistemas-interativos/hybrid-2-5d.json +108 -108
- package/exemplos/sistemas-interativos/protocol-mutating-rollback-valid.json +75 -75
- package/exemplos/sistemas-interativos/protocol-read-only-valid.json +58 -58
- package/exemplos/sistemas-interativos/simulation-2d-controlled.json +97 -97
- package/exemplos/sistemas-interativos/simulation-3d-calibrated-autonomous.json +141 -141
- package/exemplos/sistemas-interativos/simulation-headless-autonomous-batch.json +112 -112
- package/exemplos/sistemas-interativos/simulation-pixel-16-bit.json +103 -103
- package/exemplos/sistemas-interativos/simulation-text-controlled.json +95 -95
- package/node_modules/@sema/gerador-cpp/package.json +1 -1
- package/node_modules/@sema/gerador-dotnet/package.json +1 -1
- package/node_modules/@sema/gerador-lua/dist/index.js +51 -51
- package/node_modules/@sema/gerador-php/dist/index.js +113 -113
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1 -0
- package/package.json +9 -4
- package/scripts/postinstall.mjs +148 -0
- package/skills/sema/SKILL.md +199 -0
- package/skills/sema/agents/openai.yaml +4 -0
- package/dist/driftCache.d.ts +0 -49
- package/dist/driftCache.js +0 -311
- package/dist/driftCacheIncremental.d.ts +0 -98
- package/dist/driftCacheIncremental.js +0 -596
- package/dist/driftCatalogoPersistente.d.ts +0 -8
- package/dist/driftCatalogoPersistente.js +0 -77
- package/node_modules/@sema/gerador-cpp/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-css/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-dotnet/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-php/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-python/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part01.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part02.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/dist/index.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/melhorador.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/snippets.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.declaracoes.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.modulo.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part03.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part04.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part05.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part06.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part07.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.part08.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part01.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.part02.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/orcamentoSemantico.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
- package/node_modules/@sema/padroes/dist/index.js.map +0 -1
package/dist/agentEntryPoints.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// SEMA-GOVERNED: sema.produto.governanca_ia.contexto.entrypoints, sema.produto.escrita_segura_workspace
|
|
2
|
-
// Descrição: sincroniza o
|
|
1
|
+
// SEMA-GOVERNED: sema.produto.governanca_ia.contexto.entrypoints, sema.produto.escrita_segura_workspace, sema.produto.governanca_ia.drift.cache.modos
|
|
2
|
+
// Descrição: sincroniza o protocolo Codex, incluindo a distinção entre contexto contratual e evidência fresh de drift.
|
|
3
3
|
import { readFile, rm, rmdir, stat } from 'node:fs/promises';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import { escreverArquivoWorkspaceSeguro, validarDestinosEscritaWorkspace, } from './workspaceWrite.js';
|
|
@@ -140,163 +140,166 @@ export function renderizarSemaBoot(agentContextPack) {
|
|
|
140
140
|
const politicaTimeout = agentContextPack.politicaTimeoutResumo;
|
|
141
141
|
const politicaDesign = agentContextPack.politicaDesignVisual;
|
|
142
142
|
const politicaPlataforma = agentContextPack.politicaPlataforma;
|
|
143
|
-
return `# SEMA_BOOT
|
|
144
|
-
|
|
145
|
-
Você está em um projeto governado por Sema. O contrato semântico vem antes de qualquer ação.
|
|
146
|
-
|
|
147
|
-
## Primeira ação
|
|
148
|
-
|
|
149
|
-
1. Confirme \`AGENTS.md\` na raiz e rode \`sema --version
|
|
150
|
-
2. Use a CLI local diretamente para ler o workspace: \`sema resumo\`, \`sema docs-impacto\`, \`sema inspecionar\`, \`sema drift\` e \`sema impacto\`.
|
|
151
|
-
3. Se não estiver claro qual profile, workflow, pipeline, gerador ou adapter usar, rode \`sema descobrir recomendar --intencao "<objetivo>" --json\`; não execute automaticamente uma recomendação ambígua.
|
|
152
|
-
4. Não use fonte externa de workspace para substituir a CLI local quando ela estiver operacional.
|
|
153
|
-
5. Este boot é para workspace local em disco; se não houver workspace local, pare bloqueado em vez de inventar caminho.
|
|
154
|
-
6. Antes de criar módulo, rota, task ou contrato, inspecione o contrato \`.sema\` aplicável.
|
|
155
|
-
7. Antes de editar código existente, rode drift e impacto pela CLI local.
|
|
156
|
-
8. Antes de criar ou corrigir \`.sema\`, use os exemplos oficiais na CLI local.
|
|
157
|
-
9. Se qualquer etapa falhar, pare e diga que está bloqueado.
|
|
158
|
-
|
|
159
|
-
Não substitua esse fluxo por leitura manual de \`AGENTS.md\`, \`README.md\`, busca local, inferência pelo nome do projeto, bom senso ou ferramenta não citada aqui.
|
|
160
|
-
|
|
161
|
-
## Políticas da plataforma
|
|
162
|
-
|
|
163
|
-
${politicaPlataforma.regra}
|
|
164
|
-
|
|
165
|
-
- Escopo: ${politicaPlataforma.escopoGovernanca}
|
|
166
|
-
- Se houver alerta externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
167
|
-
- IA fraca: ${politicaPlataforma.porCapacidade.fraca}
|
|
168
|
-
- IA média: ${politicaPlataforma.porCapacidade.media}
|
|
169
|
-
- IA forte: ${politicaPlataforma.porCapacidade.forte}
|
|
170
|
-
|
|
171
|
-
## Capacidade do agente
|
|
172
|
-
|
|
173
|
-
- Fraca: leia \`${ARQUIVO_SEMA_SMALL_MODEL}\`, \`SEMA_BRIEF.micro.txt\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\` e só suba contexto se necessário.
|
|
174
|
-
- Média: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\` e a doc indicada pelo Sema.
|
|
175
|
-
- Forte: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, \`AGENTS.md\` e rode os gates completos.
|
|
176
|
-
|
|
177
|
-
## Código governado
|
|
178
|
-
|
|
179
|
-
${politicaCodigo.regra}
|
|
180
|
-
|
|
181
|
-
- Marcador: \`${politicaCodigo.marcador}\`.
|
|
182
|
-
- Orçamento de código: arquivo governado acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO} linhas gera diagnóstico; acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} bloqueia conclusão, geração e snapshot. Documentação Markdown não entra nesse limite de código.
|
|
183
|
-
- Orçamento de contrato .sema: até ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} linhas é saudável; ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA + 1}-${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} é diagnóstico; acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} bloqueia criação, edição, drift, finalização, geração e snapshot.
|
|
184
|
-
- Divida .sema por domínio/capacidade, nunca parte_1/parte_2. Um mesmo arquivo de código pode ter vários contratos governando via vinculos; preserve essa rastreabilidade no Sema Código.
|
|
185
|
-
- Payload inline: acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres em \`arquivos_codigo.conteudo\` ou \`conteudo\` não é timeout; divida por responsabilidade ou use anexo/caminho de servidor autorizado.
|
|
186
|
-
- Validação inline com score alto não substitui cabeçalho no arquivo físico: ela prova o payload enviado, não prepara a próxima IA que vai abrir o arquivo depois.
|
|
187
|
-
- Divisão correta é por responsabilidade real. Exemplo web: \`index.html\` para estrutura, \`styles/*.css\` para estilos, \`js/state.js\`, \`js/calc.js\`, \`js/render/*.js\` para comportamento, e \`data/*.json\` para dados.
|
|
188
|
-
- Proibido fatiar arquivo em \`index_p1.html\`, \`index_p2.html\` ou similares sem fronteira semântica só para passar no limite.
|
|
189
|
-
- IA fraca: ${politicaCodigo.porCapacidade.fraca}
|
|
190
|
-
- IA média: ${politicaCodigo.porCapacidade.media}
|
|
191
|
-
- IA forte: ${politicaCodigo.porCapacidade.forte}
|
|
192
|
-
|
|
193
|
-
## Sinal, evidência e ritual
|
|
194
|
-
|
|
195
|
-
Score composto, \`achados[]\` e \`decisaoAgente\` são sinais para guiar a próxima ação. Abaixo de 80 bloqueia; alvo evolui 0.5 ponto até 100; nada disso basta sozinho.
|
|
196
|
-
|
|
197
|
-
- Fraca: se o score passou, confira se cada achado tem evidência concreta; se não souber provar, pare.
|
|
198
|
-
- Média: conecte regra, arquivo, contrato e evidência antes de concluir aderência.
|
|
199
|
-
- Forte: não transforme regex, palavra-chave ou score 100 em ritual vazio; valide substância, risco e comportamento.
|
|
200
|
-
-
|
|
201
|
-
-
|
|
202
|
-
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
-
|
|
212
|
-
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
-
|
|
222
|
-
-
|
|
223
|
-
- ${politicaTimeout.
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
143
|
+
return `# SEMA_BOOT
|
|
144
|
+
|
|
145
|
+
Você está em um projeto governado por Sema. O contrato semântico vem antes de qualquer ação.
|
|
146
|
+
|
|
147
|
+
## Primeira ação
|
|
148
|
+
|
|
149
|
+
1. Confirme \`AGENTS.md\` na raiz e rode \`sema --version\`. Se o shell não localizar o comando, use \`$HOME/.sema/bin/sema\` no macOS/Linux; no Windows, PowerShell usa \`sema.ps1\` no PATH, cmd.exe usa \`sema.cmd\`, e o fallback absoluto é \`& "$env:SystemRoot\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -File "$HOME\\.sema\\bin\\sema-managed.ps1" --version\`. Só então declare a CLI indisponível.
|
|
150
|
+
2. Use a CLI local diretamente para ler o workspace: \`sema resumo --drift none\`, \`sema docs-impacto\`, \`sema inspecionar --drift none\`, \`sema drift --cache fresh\` e \`sema impacto\`. Na 3.0.0, \`sema --version\` continua texto SemVer exato; com \`--json\`, help e falhas de controle usam \`sema.cli.control/v1\`, enquanto comandos sintaticamente válidos usam o envelope exato de oito campos \`sema.cli.result/v1\`, com o resultado aninhado em \`payload\` e \`ok\` separado do veredito de domínio desse payload.
|
|
151
|
+
3. Se não estiver claro qual profile, workflow, pipeline, gerador ou adapter usar, rode \`sema descobrir recomendar --intencao "<objetivo>" --json\`; não execute automaticamente uma recomendação ambígua.
|
|
152
|
+
4. Não use fonte externa de workspace para substituir a CLI local quando ela estiver operacional.
|
|
153
|
+
5. Este boot é para workspace local em disco; se não houver workspace local, pare bloqueado em vez de inventar caminho.
|
|
154
|
+
6. Antes de criar módulo, rota, task ou contrato, inspecione o contrato \`.sema\` aplicável.
|
|
155
|
+
7. Antes de editar código existente, rode \`sema drift --cache fresh\` e impacto pela CLI local.
|
|
156
|
+
8. Antes de criar ou corrigir \`.sema\`, use os exemplos oficiais na CLI local.
|
|
157
|
+
9. Se qualquer etapa falhar, pare e diga que está bloqueado.
|
|
158
|
+
|
|
159
|
+
Não substitua esse fluxo por leitura manual de \`AGENTS.md\`, \`README.md\`, busca local, inferência pelo nome do projeto, bom senso ou ferramenta não citada aqui.
|
|
160
|
+
|
|
161
|
+
## Políticas da plataforma
|
|
162
|
+
|
|
163
|
+
${politicaPlataforma.regra}
|
|
164
|
+
|
|
165
|
+
- Escopo: ${politicaPlataforma.escopoGovernanca}
|
|
166
|
+
- Se houver alerta externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
167
|
+
- IA fraca: ${politicaPlataforma.porCapacidade.fraca}
|
|
168
|
+
- IA média: ${politicaPlataforma.porCapacidade.media}
|
|
169
|
+
- IA forte: ${politicaPlataforma.porCapacidade.forte}
|
|
170
|
+
|
|
171
|
+
## Capacidade do agente
|
|
172
|
+
|
|
173
|
+
- Fraca: leia \`${ARQUIVO_SEMA_SMALL_MODEL}\`, \`SEMA_BRIEF.micro.txt\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\` e só suba contexto se necessário.
|
|
174
|
+
- Média: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\` e a doc indicada pelo Sema.
|
|
175
|
+
- Forte: leia este boot, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, \`AGENTS.md\` e rode os gates completos.
|
|
176
|
+
|
|
177
|
+
## Código governado
|
|
178
|
+
|
|
179
|
+
${politicaCodigo.regra}
|
|
180
|
+
|
|
181
|
+
- Marcador: \`${politicaCodigo.marcador}\`.
|
|
182
|
+
- Orçamento de código: arquivo governado acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO} linhas gera diagnóstico; acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} bloqueia conclusão, geração e snapshot. Documentação Markdown não entra nesse limite de código.
|
|
183
|
+
- Orçamento de contrato .sema: até ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} linhas é saudável; ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA + 1}-${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} é diagnóstico; acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} bloqueia criação, edição, drift, finalização, geração e snapshot.
|
|
184
|
+
- Divida .sema por domínio/capacidade, nunca parte_1/parte_2. Um mesmo arquivo de código pode ter vários contratos governando via vinculos; preserve essa rastreabilidade no Sema Código.
|
|
185
|
+
- Payload inline: acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres em \`arquivos_codigo.conteudo\` ou \`conteudo\` não é timeout; divida por responsabilidade ou use anexo/caminho de servidor autorizado.
|
|
186
|
+
- Validação inline com score alto não substitui cabeçalho no arquivo físico: ela prova o payload enviado, não prepara a próxima IA que vai abrir o arquivo depois.
|
|
187
|
+
- Divisão correta é por responsabilidade real. Exemplo web: \`index.html\` para estrutura, \`styles/*.css\` para estilos, \`js/state.js\`, \`js/calc.js\`, \`js/render/*.js\` para comportamento, e \`data/*.json\` para dados.
|
|
188
|
+
- Proibido fatiar arquivo em \`index_p1.html\`, \`index_p2.html\` ou similares sem fronteira semântica só para passar no limite.
|
|
189
|
+
- IA fraca: ${politicaCodigo.porCapacidade.fraca}
|
|
190
|
+
- IA média: ${politicaCodigo.porCapacidade.media}
|
|
191
|
+
- IA forte: ${politicaCodigo.porCapacidade.forte}
|
|
192
|
+
|
|
193
|
+
## Sinal, evidência e ritual
|
|
194
|
+
|
|
195
|
+
Score composto, \`achados[]\` e \`decisaoAgente\` são sinais para guiar a próxima ação. Abaixo de 80 bloqueia; alvo evolui 0.5 ponto até 100; nada disso basta sozinho.
|
|
196
|
+
|
|
197
|
+
- Fraca: se o score passou, confira se cada achado tem evidência concreta; se não souber provar, pare.
|
|
198
|
+
- Média: conecte regra, arquivo, contrato e evidência antes de concluir aderência.
|
|
199
|
+
- Forte: não transforme regex, palavra-chave ou score 100 em ritual vazio; valide substância, risco e comportamento.
|
|
200
|
+
- Consultas honestas: \`resumo\` e \`inspecionar\` usam \`--drift none\` por padrão; score, confiança, implementação, rotas e superfícies não observadas ficam nulos/não avaliados.
|
|
201
|
+
- Se uma consulta executar drift explicitamente, \`payload.analiseDrift.sucesso\` expõe o resultado e uma falha solicitada retorna exit code diferente de zero.
|
|
202
|
+
- Cache: \`sema drift\` usa \`fresh\` por padrão. \`--cache none\` ainda executa sem persistência; \`cache\` acelera extrações validadas, mas não é prova final.
|
|
203
|
+
- Fechamento governado: se o \`payload\` de \`sema drift --cache fresh --json\` retornar \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou \`impls_quebrados\`, não diga que passou limpo. Corrija e rode drift de novo.
|
|
204
|
+
- Experiência governada: se a tarefa cria ou altera site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal, prove acabamento moderno, contextual e não genérico. Em UI estreita (ex. 390px), \`document.documentElement.scrollWidth <= document.documentElement.clientWidth\` precisa ser verdadeiro.
|
|
205
|
+
- Caminho fora do workspace local aberto pelo usuário não substitui a pasta local.
|
|
206
|
+
|
|
207
|
+
## Acabamento visual e terminal
|
|
208
|
+
|
|
209
|
+
${politicaDesign.regra}
|
|
210
|
+
|
|
211
|
+
- Aplicar quando: ${politicaDesign.aplicarQuando}
|
|
212
|
+
- IA fraca: ${politicaDesign.porCapacidade.fraca}
|
|
213
|
+
- IA média: ${politicaDesign.porCapacidade.media}
|
|
214
|
+
- IA forte: ${politicaDesign.porCapacidade.forte}
|
|
215
|
+
- Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
|
|
216
|
+
|
|
217
|
+
## Timeout e retry
|
|
218
|
+
|
|
219
|
+
${politicaTimeout.regra}
|
|
220
|
+
|
|
221
|
+
- Timeout inicial recomendado para projeto inteiro: ${politicaTimeout.timeoutInicialSegundos}s.
|
|
222
|
+
- Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
223
|
+
- IA fraca: ${politicaTimeout.porCapacidade.fraca}
|
|
224
|
+
- IA média: ${politicaTimeout.porCapacidade.media}
|
|
225
|
+
- IA forte: ${politicaTimeout.porCapacidade.forte}
|
|
226
|
+
- ${politicaTimeout.ateQuandoTentar}
|
|
227
|
+
|
|
228
|
+
## Idioma humano
|
|
229
|
+
|
|
230
|
+
${politica.regra}
|
|
231
|
+
|
|
232
|
+
- Use o idioma falado pelo usuário.
|
|
233
|
+
- Em PT-BR, escreva com acentos, cedilha e pontuação normal.
|
|
234
|
+
- Use vocabulário Sema canônico para conceitos de produto: pontuação, desvio semântico, trava, pré-checagem, ambiente de execução e perfil.
|
|
235
|
+
- Não traduza comandos, rotas, nomes de arquivos, endpoints, variáveis, pacotes, marcas, símbolos de código nem palavras-chave da DSL.
|
|
236
|
+
|
|
237
|
+
## Falha fechada
|
|
238
|
+
|
|
239
|
+
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
237
240
|
`;
|
|
238
241
|
}
|
|
239
242
|
export function renderizarSemaSmallModel(agentContextPack) {
|
|
240
243
|
const politicaTimeout = agentContextPack.politicaTimeoutResumo;
|
|
241
244
|
const politicaDesign = agentContextPack.politicaDesignVisual;
|
|
242
245
|
const politicaPlataforma = agentContextPack.politicaPlataforma;
|
|
243
|
-
return `# SEMA_SMALL_MODEL
|
|
244
|
-
|
|
245
|
-
Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use ou tendência a ignorar instruções longas.
|
|
246
|
-
|
|
247
|
-
1. Não edite nada antes de chamar Sema.
|
|
248
|
-
2. Em workspace local, rode \`sema --version\`; se falhar,
|
|
249
|
-
3. Sema não contorna políticas da plataforma: ele governa contrato, escopo, drift, evidência e qualidade.
|
|
250
|
-
4. Se aparecer alerta de política: pare, explique de forma neutra e não tente burlar filtro.
|
|
251
|
-
5. Se não houver workspace local em disco: pare bloqueado e peça o fluxo apropriado; não invente leitura por caminho.
|
|
252
|
-
6. Se for escrever \`.sema\`: leia \`exemplos/\`; se a pasta estiver ausente, rode \`sema instalar-exemplos --json\` antes.
|
|
253
|
-
7. Se não houver contrato ou vínculo semântico do arquivo: inspecione o arquivo, crie ou edite o contrato aplicável e vincule antes do código.
|
|
254
|
-
8. Se não conseguir chamar Sema: pare e declare bloqueio.
|
|
255
|
-
9. Responda no idioma do usuário. Em PT-BR, use vocabulário Sema: pontuação, desvio semântico, pré-checagem, ambiente de execução e perfil; preserve comandos, endpoints e identificadores.
|
|
256
|
-
10. Se abrir código com \`${agentContextPack.politicaCodigoGovernado.marcador}\`: volte ao contrato, chame Sema e só então edite.
|
|
257
|
-
11. Score 100, achados atendidos ou validação inline são sinais; confira evidência real no contrato e no código.
|
|
258
|
-
12. Validação inline não dispensa cabeçalho \`${agentContextPack.politicaCodigoGovernado.marcador}\` no arquivo físico.
|
|
259
|
-
13. Não crie código governado acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} linhas nem contrato .sema acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}; acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO} em código ou ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} em .sema, planeje divisão por responsabilidade.
|
|
260
|
-
14. Divida por função real: HTML, CSS, estado, cálculo, renderização, dados. Não faça \`index_p1.html\` e \`index_p2.html\` sem sentido.
|
|
261
|
-
15. Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres não é lentidão: divida por responsabilidade; não aumente timeout para tentar passar limite de transporte.
|
|
262
|
-
16. Se aparecer caminho que não pertence ao workspace local aberto pelo usuário, pare e confirme a fonte antes de agir.
|
|
263
|
-
17. Se Sema estourar por timeout local: aumente o timeout e tente de novo. Não trate isso como falha do Sema.
|
|
264
|
-
18.
|
|
265
|
-
19. Se a tarefa tiver site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal: aplique acabamento moderno, contextual, responsivo/ergonômico, com hierarquia clara, estados e evidência. Em UI, valide mobile/desktop e prove \`scrollWidth <= clientWidth\` em viewport estreito como 390px.
|
|
266
|
-
20. Não substitua o contexto Sema por AGENTS.md, README.md, busca local, inferência por nome ou bom senso.
|
|
267
|
-
|
|
268
|
-
Ordem curta:
|
|
269
|
-
|
|
270
|
-
- \`${ARQUIVO_SEMA_BOOT}\`
|
|
271
|
-
- \`SEMA_BRIEF.micro.txt\`
|
|
272
|
-
- \`${ARQUIVO_AGENT_CONTEXT_PACK}\`
|
|
273
|
-
- \`SEMA_INDEX.json\`
|
|
274
|
-
- \`AGENTS.md\`
|
|
275
|
-
|
|
276
|
-
Políticas da plataforma:
|
|
277
|
-
|
|
278
|
-
- ${politicaPlataforma.regra}
|
|
279
|
-
- IA fraca: ${politicaPlataforma.porCapacidade.fraca}
|
|
280
|
-
- Se houver bloqueio externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
281
|
-
|
|
282
|
-
Timeout:
|
|
283
|
-
|
|
284
|
-
- Timeout local do agente não é falha do Sema.
|
|
285
|
-
- Projeto inteiro: comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais.
|
|
286
|
-
- Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
287
|
-
- Se o projeto inteiro for lento, escopar para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
|
|
288
|
-
- ${politicaTimeout.ateQuandoTentar}
|
|
289
|
-
|
|
290
|
-
Acabamento visual e terminal:
|
|
291
|
-
|
|
292
|
-
- ${politicaDesign.regra}
|
|
293
|
-
- IA fraca: ${politicaDesign.porCapacidade.fraca}
|
|
294
|
-
- Evidência mínima: ${politicaDesign.evidencias.fraca.join(", ")}.
|
|
295
|
-
- Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
|
|
296
|
-
|
|
297
|
-
Fail-closed:
|
|
298
|
-
|
|
299
|
-
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
246
|
+
return `# SEMA_SMALL_MODEL
|
|
247
|
+
|
|
248
|
+
Leia isto primeiro se você tem pouco contexto, pouca memória, pouco tool use ou tendência a ignorar instruções longas.
|
|
249
|
+
|
|
250
|
+
1. Não edite nada antes de chamar Sema.
|
|
251
|
+
2. Em workspace local, rode \`sema --version\`; se o shell falhar, use \`$HOME/.sema/bin/sema\` no macOS/Linux. No Windows, PowerShell usa \`sema.ps1\` no PATH e cmd.exe usa \`sema.cmd\`; o fallback absoluto é \`& "$env:SystemRoot\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -File "$HOME\\.sema\\bin\\sema-managed.ps1" --version\`. Só então pare e peça instalação ou reparo.
|
|
252
|
+
3. Sema não contorna políticas da plataforma: ele governa contrato, escopo, drift, evidência e qualidade.
|
|
253
|
+
4. Se aparecer alerta de política: pare, explique de forma neutra e não tente burlar filtro.
|
|
254
|
+
5. Se não houver workspace local em disco: pare bloqueado e peça o fluxo apropriado; não invente leitura por caminho.
|
|
255
|
+
6. Se for escrever \`.sema\`: leia \`exemplos/\`; se a pasta estiver ausente, rode \`sema instalar-exemplos --json\` antes.
|
|
256
|
+
7. Se não houver contrato ou vínculo semântico do arquivo: inspecione o arquivo, crie ou edite o contrato aplicável e vincule antes do código.
|
|
257
|
+
8. Se não conseguir chamar Sema: pare e declare bloqueio.
|
|
258
|
+
9. Responda no idioma do usuário. Em PT-BR, use vocabulário Sema: pontuação, desvio semântico, pré-checagem, ambiente de execução e perfil; preserve comandos, endpoints e identificadores.
|
|
259
|
+
10. Se abrir código com \`${agentContextPack.politicaCodigoGovernado.marcador}\`: volte ao contrato, chame Sema e só então edite.
|
|
260
|
+
11. Score 100, achados atendidos ou validação inline são sinais; confira evidência real no contrato e no código.
|
|
261
|
+
12. Validação inline não dispensa cabeçalho \`${agentContextPack.politicaCodigoGovernado.marcador}\` no arquivo físico.
|
|
262
|
+
13. Não crie código governado acima de ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO} linhas nem contrato .sema acima de ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}; acima de ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO} em código ou ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} em .sema, planeje divisão por responsabilidade.
|
|
263
|
+
14. Divida por função real: HTML, CSS, estado, cálculo, renderização, dados. Não faça \`index_p1.html\` e \`index_p2.html\` sem sentido.
|
|
264
|
+
15. Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres não é lentidão: divida por responsabilidade; não aumente timeout para tentar passar limite de transporte.
|
|
265
|
+
16. Se aparecer caminho que não pertence ao workspace local aberto pelo usuário, pare e confirme a fonte antes de agir.
|
|
266
|
+
17. Se Sema estourar por timeout local: aumente o timeout e tente de novo. Não trate isso como falha do Sema.
|
|
267
|
+
18. Para fechamento, rode \`sema drift --cache fresh --json\`; cache persistente só acelera navegação e não é prova final. Se o \`payload\` retornar \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\` ou \`impls_quebrados\`, não conclua. Na 3.0.0, não procure campos de domínio no topo do envelope \`sema.cli.result/v1\` nem use \`ok\` como substituto do veredito do payload.
|
|
268
|
+
19. Se a tarefa tiver site, sistema, app, UI, painel, jogo, CLI/TUI ou terminal: aplique acabamento moderno, contextual, responsivo/ergonômico, com hierarquia clara, estados e evidência. Em UI, valide mobile/desktop e prove \`scrollWidth <= clientWidth\` em viewport estreito como 390px.
|
|
269
|
+
20. Não substitua o contexto Sema por AGENTS.md, README.md, busca local, inferência por nome ou bom senso.
|
|
270
|
+
|
|
271
|
+
Ordem curta:
|
|
272
|
+
|
|
273
|
+
- \`${ARQUIVO_SEMA_BOOT}\`
|
|
274
|
+
- \`SEMA_BRIEF.micro.txt\`
|
|
275
|
+
- \`${ARQUIVO_AGENT_CONTEXT_PACK}\`
|
|
276
|
+
- \`SEMA_INDEX.json\`
|
|
277
|
+
- \`AGENTS.md\`
|
|
278
|
+
|
|
279
|
+
Políticas da plataforma:
|
|
280
|
+
|
|
281
|
+
- ${politicaPlataforma.regra}
|
|
282
|
+
- IA fraca: ${politicaPlataforma.porCapacidade.fraca}
|
|
283
|
+
- Se houver bloqueio externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
284
|
+
|
|
285
|
+
Timeout:
|
|
286
|
+
|
|
287
|
+
- Timeout local do agente não é falha do Sema.
|
|
288
|
+
- Projeto inteiro: comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais.
|
|
289
|
+
- Escalonamento: ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
290
|
+
- Se o projeto inteiro for lento, escopar para \`sema resumo <arquivo.sema> --micro --para mudanca --drift none\`.
|
|
291
|
+
- ${politicaTimeout.ateQuandoTentar}
|
|
292
|
+
|
|
293
|
+
Acabamento visual e terminal:
|
|
294
|
+
|
|
295
|
+
- ${politicaDesign.regra}
|
|
296
|
+
- IA fraca: ${politicaDesign.porCapacidade.fraca}
|
|
297
|
+
- Evidência mínima: ${politicaDesign.evidencias.fraca.join(", ")}.
|
|
298
|
+
- Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
|
|
299
|
+
|
|
300
|
+
Fail-closed:
|
|
301
|
+
|
|
302
|
+
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
300
303
|
`;
|
|
301
304
|
}
|
|
302
305
|
export function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
|
|
@@ -315,18 +318,22 @@ export function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
|
|
|
315
318
|
"",
|
|
316
319
|
"## Before AGENTS.md Exists",
|
|
317
320
|
"",
|
|
318
|
-
"The official Sema skill is the
|
|
319
|
-
"
|
|
321
|
+
"The official Sema skill is the first-contact bootstrap for a project that does",
|
|
322
|
+
"not have Sema yet. A global CLI install bundles and synchronizes it:",
|
|
320
323
|
"",
|
|
321
324
|
"```bash",
|
|
322
|
-
"
|
|
323
|
-
"
|
|
325
|
+
"npm install -g @semacode/cli",
|
|
326
|
+
"sema skill status --json",
|
|
324
327
|
"```",
|
|
325
328
|
"",
|
|
326
|
-
"The
|
|
327
|
-
"
|
|
329
|
+
"The package creates an absolute launcher under `~/.sema/bin`, synchronizes the",
|
|
330
|
+
"canonical skill under `~/.agents/skills/sema`, and mirrors Claude only when",
|
|
331
|
+
"detected. Informational requests stay read-only; before implementation the skill asks",
|
|
332
|
+
"for explicit project-adoption authorization, then generates `AGENTS.md` and delegates",
|
|
333
|
+
"ongoing governance. Installing or updating the global CLI authorizes distribution only.",
|
|
334
|
+
"Already-open tasks may need a reload. The distribution contains no",
|
|
328
335
|
"MCP server, remote workspace bridge, login, license, billing, token, credit,",
|
|
329
|
-
"panel, or authorization gate.",
|
|
336
|
+
"panel, or runtime authorization gate.",
|
|
330
337
|
"",
|
|
331
338
|
`Supported capacity labels: ${supportedCapacities}.`,
|
|
332
339
|
"",
|
|
@@ -336,10 +343,11 @@ export function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
|
|
|
336
343
|
"",
|
|
337
344
|
"```bash",
|
|
338
345
|
"sema --version",
|
|
339
|
-
"sema resumo",
|
|
346
|
+
"sema resumo --drift none",
|
|
340
347
|
"```",
|
|
341
348
|
"",
|
|
342
|
-
"
|
|
349
|
+
"If the shell cannot resolve `sema`, use `~/.sema/bin/sema` on macOS/Linux. On Windows, PowerShell uses `sema.ps1` from PATH and cmd.exe uses `sema.cmd`; use `& \"$env:SystemRoot\\System32\\WindowsPowerShell\\v1.0\\powershell.exe\" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -File \"$HOME\\.sema\\bin\\sema-managed.ps1\" --version` as the absolute fallback",
|
|
350
|
+
"before declaring the CLI unavailable. A successful version check is enough. Local",
|
|
343
351
|
"commands require no login, activation key, license check, token, credits, billing",
|
|
344
352
|
"service, control panel, or external authorization request.",
|
|
345
353
|
"",
|
|
@@ -347,13 +355,15 @@ export function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
|
|
|
347
355
|
"",
|
|
348
356
|
"```bash",
|
|
349
357
|
"sema docs-impacto --intencao \"describe the change\" --json",
|
|
350
|
-
"sema inspecionar contratos/example.sema --json",
|
|
351
|
-
"sema drift contratos/example.sema --escopo modulo --json",
|
|
358
|
+
"sema inspecionar contratos/example.sema --drift none --json",
|
|
359
|
+
"sema drift contratos/example.sema --escopo modulo --cache fresh --json",
|
|
352
360
|
"sema impacto contratos/example.sema --alvo app.example --mudanca \"describe the change\" --json",
|
|
353
361
|
"```",
|
|
354
362
|
"",
|
|
355
363
|
"Read every document listed by `docs-impacto` before changing code, contracts,",
|
|
356
364
|
"operational docs, generated artifacts, workflows, profiles, or release material.",
|
|
365
|
+
"A cache hit is acceleration, not evidence: closing requires `--cache fresh`,",
|
|
366
|
+
"while contract-only queries keep unobserved implementation fields null inside the command payload.",
|
|
357
367
|
"",
|
|
358
368
|
"## Codex Context Tiers",
|
|
359
369
|
"",
|
|
@@ -377,6 +387,12 @@ export function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
|
|
|
377
387
|
"points back to the applicable contract. The marker is not a substitute for",
|
|
378
388
|
"validation, drift, impact, or finalization gates.",
|
|
379
389
|
"",
|
|
390
|
+
"Generated Lua tests preserve the contract's failure shape. A case whose only",
|
|
391
|
+
"expectation is `sucesso: falso` may terminate without an output, while a case",
|
|
392
|
+
"that also declares observable output fields must return a structured failure",
|
|
393
|
+
"result. The generator keeps these paths distinct instead of forcing every",
|
|
394
|
+
"failure into one representation.",
|
|
395
|
+
"",
|
|
380
396
|
`Governed code above ${LIMITE_AVISO_LINHAS_CODIGO_GOVERNADO} lines requires a`,
|
|
381
397
|
`split plan. Governed code above ${LIMITE_BLOQUEIO_LINHAS_CODIGO_GOVERNADO}`,
|
|
382
398
|
"lines blocks closure. Markdown documentation is not counted as governed code",
|
|
@@ -411,7 +427,7 @@ export function renderizarDocumentoAgentesPorCapacidade(agentContextPack) {
|
|
|
411
427
|
"",
|
|
412
428
|
"Sema governs contract, scope, drift, evidence, and quality. It does not bypass",
|
|
413
429
|
"platform policies, terms of use, permissions, security controls, or laws.",
|
|
414
|
-
].join("\n");
|
|
430
|
+
].join("\n") + "\n";
|
|
415
431
|
}
|
|
416
432
|
function renderizarInstrucaoCodexSema(agentContextPack) {
|
|
417
433
|
const capacidade = "media";
|
|
@@ -419,418 +435,407 @@ function renderizarInstrucaoCodexSema(agentContextPack) {
|
|
|
419
435
|
const politicaTimeout = agentContextPack.politicaTimeoutResumo;
|
|
420
436
|
const politicaDesign = agentContextPack.politicaDesignVisual;
|
|
421
437
|
const politicaPlataforma = agentContextPack.politicaPlataforma;
|
|
422
|
-
return `# Sema para Codex
|
|
423
|
-
|
|
424
|
-
Este workspace é governado por Sema. Antes de qualquer ação em código, contrato, documentação operacional, workflow, profile ou deploy:
|
|
425
|
-
|
|
426
|
-
1. Leia \`${ARQUIVO_SEMA_BOOT}\`.
|
|
427
|
-
2. Rode \`sema --version\`; se falhar, pare e peça
|
|
428
|
-
3. Use diretamente a CLI local: \`sema resumo\`, \`sema docs-impacto\`, \`sema inspecionar\`, \`sema drift\` e \`sema impacto\`.
|
|
429
|
-
4. Quando a capacidade correta não estiver clara, use \`sema descobrir recomendar --intencao "<objetivo>" --json\`; não autoexecute resultado ambíguo.
|
|
430
|
-
5. Não use fonte externa de workspace para substituir a CLI local quando ela estiver operacional.
|
|
431
|
-
6. Chame docs-impacto com a intenção declarada antes de agir.
|
|
432
|
-
7. Chame inspecionar no contrato \`.sema\` aplicável.
|
|
433
|
-
8. Antes de editar código existente, rode drift e impacto.
|
|
434
|
-
9. Antes de criar ou editar \`.sema\`, use exemplos oficiais.
|
|
435
|
-
10. Ao concluir mudança de contrato, rode validar.
|
|
436
|
-
11. Antes de finalizar, use finalizar-mudanca com as docs lidas.
|
|
437
|
-
|
|
438
|
-
É 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.
|
|
439
|
-
|
|
440
|
-
Entrypoint oficial do Codex: \`${agentContextPack.entrypointCodex}\`.
|
|
441
|
-
Capacidade padrão do Codex: ${capacidade}.
|
|
442
|
-
Ordem de leitura: ${guia.join(" -> ")}.
|
|
443
|
-
|
|
444
|
-
Políticas da plataforma:
|
|
445
|
-
- ${politicaPlataforma.regra}
|
|
446
|
-
- Capacidade ${capacidade}: ${politicaPlataforma.porCapacidade[capacidade]}
|
|
447
|
-
- Se houver alerta externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
448
|
-
|
|
449
|
-
Falha fechada:
|
|
450
|
-
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
451
|
-
|
|
452
|
-
Timeout:
|
|
453
|
-
- Timeout local do agente não é falha do Sema.
|
|
454
|
-
- Se uma chamada Sema estourar, aumente o timeout e tente de novo antes de declarar bloqueio.
|
|
455
|
-
- Para projeto inteiro, comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais; se for lento, escale ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
456
|
-
- Se possível, reduza escopo para \`sema resumo <arquivo.sema> --micro --para mudanca\`.
|
|
457
|
-
|
|
458
|
-
Código governado:
|
|
459
|
-
- Mantenha o marcador \`${agentContextPack.politicaCodigoGovernado.marcador}\` em código gerado ou governado.
|
|
460
|
-
- Ao encontrar esse marcador, volte ao contrato .sema aplicável e chame Sema antes de editar.
|
|
461
|
-
- Comentário de código é lembrete curto; não substitui drift, docs-impacto nem finalizar-mudanca.
|
|
462
|
-
- Validação inline prova o payload enviado; não dispensa o marcador no arquivo físico sincronizado.
|
|
463
|
-
- Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres não deve virar retry de timeout: modularize por responsabilidade ou use anexo/caminho de servidor autorizado.
|
|
464
|
-
- 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.
|
|
465
|
-
|
|
466
|
-
Sinal e evidência:
|
|
467
|
-
- 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.
|
|
468
|
-
- Palavra-chave ou regex passando não prova governança se contrato, código e comportamento não batem.
|
|
469
|
-
- \`
|
|
470
|
-
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
-
|
|
475
|
-
-
|
|
476
|
-
-
|
|
477
|
-
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
-
|
|
482
|
-
-
|
|
483
|
-
-
|
|
438
|
+
return `# Sema para Codex
|
|
439
|
+
|
|
440
|
+
Este workspace é governado por Sema. Antes de qualquer ação em código, contrato, documentação operacional, workflow, profile ou deploy:
|
|
441
|
+
|
|
442
|
+
1. Leia \`${ARQUIVO_SEMA_BOOT}\`.
|
|
443
|
+
2. Rode \`sema --version\`; se o shell falhar, use \`$HOME/.sema/bin/sema\` no macOS/Linux. No Windows, PowerShell usa \`sema.ps1\` no PATH e cmd.exe usa \`sema.cmd\`; use \`& "$env:SystemRoot\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -File "$HOME\\.sema\\bin\\sema-managed.ps1" --version\` como fallback absoluto. Só então pare e peça instalação ou reparo.
|
|
444
|
+
3. Use diretamente a CLI local: \`sema resumo --drift none\`, \`sema docs-impacto\`, \`sema inspecionar --drift none\`, \`sema drift --cache fresh\` e \`sema impacto\`. Na 3.0.0, \`sema --version\` continua texto SemVer exato; com \`--json\`, help e falhas de controle usam \`sema.cli.control/v1\`, enquanto comandos sintaticamente válidos usam o envelope exato de oito campos \`sema.cli.result/v1\`, com resultado em \`payload\` e \`ok\` distinto do veredito de domínio do payload.
|
|
445
|
+
4. Quando a capacidade correta não estiver clara, use \`sema descobrir recomendar --intencao "<objetivo>" --json\`; não autoexecute resultado ambíguo.
|
|
446
|
+
5. Não use fonte externa de workspace para substituir a CLI local quando ela estiver operacional.
|
|
447
|
+
6. Chame docs-impacto com a intenção declarada antes de agir.
|
|
448
|
+
7. Chame inspecionar no contrato \`.sema\` aplicável.
|
|
449
|
+
8. Antes de editar código existente, rode \`sema drift --cache fresh\` e impacto.
|
|
450
|
+
9. Antes de criar ou editar \`.sema\`, use exemplos oficiais.
|
|
451
|
+
10. Ao concluir mudança de contrato, rode validar.
|
|
452
|
+
11. Antes de finalizar, use finalizar-mudanca com as docs lidas.
|
|
453
|
+
|
|
454
|
+
É 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.
|
|
455
|
+
|
|
456
|
+
Entrypoint oficial do Codex: \`${agentContextPack.entrypointCodex}\`.
|
|
457
|
+
Capacidade padrão do Codex: ${capacidade}.
|
|
458
|
+
Ordem de leitura: ${guia.join(" -> ")}.
|
|
459
|
+
|
|
460
|
+
Políticas da plataforma:
|
|
461
|
+
- ${politicaPlataforma.regra}
|
|
462
|
+
- Capacidade ${capacidade}: ${politicaPlataforma.porCapacidade[capacidade]}
|
|
463
|
+
- Se houver alerta externo: ${politicaPlataforma.quandoHouverBloqueio}
|
|
464
|
+
|
|
465
|
+
Falha fechada:
|
|
466
|
+
${agentContextPack.failClosed.map((regra) => `- ${regra}`).join("\n")}
|
|
467
|
+
|
|
468
|
+
Timeout:
|
|
469
|
+
- Timeout local do agente não é falha do Sema.
|
|
470
|
+
- Se uma chamada Sema estourar, aumente o timeout e tente de novo antes de declarar bloqueio.
|
|
471
|
+
- Para projeto inteiro, comece com ${politicaTimeout.timeoutInicialSegundos}s ou mais; se for lento, escale ${politicaTimeout.escalonamentoSegundos.map((segundos) => `${segundos}s`).join(" -> ")}.
|
|
472
|
+
- Se possível, reduza escopo para \`sema resumo <arquivo.sema> --micro --para mudanca --drift none\`.
|
|
473
|
+
|
|
474
|
+
Código governado:
|
|
475
|
+
- Mantenha o marcador \`${agentContextPack.politicaCodigoGovernado.marcador}\` em código gerado ou governado.
|
|
476
|
+
- Ao encontrar esse marcador, volte ao contrato .sema aplicável e chame Sema antes de editar.
|
|
477
|
+
- Comentário de código é lembrete curto; não substitui drift, docs-impacto nem finalizar-mudanca.
|
|
478
|
+
- Validação inline prova o payload enviado; não dispensa o marcador no arquivo físico sincronizado.
|
|
479
|
+
- Payload inline acima de ${LIMITE_CARACTERES_PAYLOAD_INLINE} caracteres não deve virar retry de timeout: modularize por responsabilidade ou use anexo/caminho de servidor autorizado.
|
|
480
|
+
- 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.
|
|
481
|
+
|
|
482
|
+
Sinal e evidência:
|
|
483
|
+
- 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.
|
|
484
|
+
- Palavra-chave ou regex passando não prova governança se contrato, código e comportamento não batem.
|
|
485
|
+
- \`resumo\` e \`inspecionar\` usam \`--drift none\` por padrão; campos derivados nulos significam não avaliados, nunca zero.
|
|
486
|
+
- \`sema drift --cache fresh --json\` com \`payload.sucesso:false\`, \`payload.vinculos_quebrados\`, \`payload.rotas_divergentes\` ou \`payload.impls_quebrados\` bloqueia fechamento. Cache persistente é aceleração, não prova final.
|
|
487
|
+
- Caminho fora do workspace local aberto pelo usuário não substitui a pasta local.
|
|
488
|
+
|
|
489
|
+
Acabamento visual e terminal:
|
|
490
|
+
- 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.
|
|
491
|
+
- Capacidade ${capacidade}: ${politicaDesign.porCapacidade[capacidade]}
|
|
492
|
+
- Evidências: ${politicaDesign.evidencias[capacidade].join(", ")}.
|
|
493
|
+
- 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.
|
|
494
|
+
- Proibido: ${politicaDesign.proibicoes.slice(0, 5).join(", ")}.
|
|
495
|
+
|
|
496
|
+
Idioma:
|
|
497
|
+
- Responda no idioma do usuário.
|
|
498
|
+
- Em PT-BR, use vocabulário Sema canônico, acentos, cedilha, pontuação e símbolos normais.
|
|
499
|
+
- A DSL \`.sema\` pode ser ASCII; texto humano não precisa ser.
|
|
500
|
+
- Não traduza comandos, rotas, arquivos, endpoints, variáveis, pacotes, marcas, símbolos de código nem palavras-chave da DSL.
|
|
484
501
|
`;
|
|
485
502
|
}
|
|
486
503
|
function renderizarDocSintaxeSemaLocal(_agentContextPack) {
|
|
487
|
-
return `# Sema Syntax for Codex
|
|
488
|
-
|
|
489
|
-
Use this file as a compact reference before creating or fixing \`.sema\` contracts.
|
|
490
|
-
|
|
491
|
-
## Golden Rule
|
|
492
|
-
|
|
493
|
-
Contract comes before code. Before writing \`.sema\`, read the local examples in \`exemplos/\`.
|
|
494
|
-
|
|
495
|
-
## Minimal Example
|
|
496
|
-
|
|
497
|
-
\`\`\`sema
|
|
498
|
-
module app.example {
|
|
499
|
-
entity Item {
|
|
500
|
-
fields {
|
|
501
|
-
id: Id
|
|
502
|
-
name: Texto
|
|
503
|
-
active: Booleano
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
task create_item {
|
|
508
|
-
input {
|
|
509
|
-
name: Texto required
|
|
510
|
-
}
|
|
511
|
-
output {
|
|
512
|
-
item: Item
|
|
513
|
-
}
|
|
514
|
-
rules {
|
|
515
|
-
name deve_ser preenchido
|
|
516
|
-
}
|
|
517
|
-
effects {
|
|
518
|
-
persistencia Item
|
|
519
|
-
auditoria item_created
|
|
520
|
-
}
|
|
521
|
-
guarantees {
|
|
522
|
-
item existe
|
|
523
|
-
}
|
|
524
|
-
tests {
|
|
525
|
-
caso "creates valid item" {
|
|
526
|
-
given { name: "Item" }
|
|
527
|
-
expect { sucesso: verdadeiro }
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
}
|
|
532
|
-
\`\`\`
|
|
533
|
-
|
|
534
|
-
## Common Blocks
|
|
535
|
-
|
|
536
|
-
- \`docs\`: module summary and notes.
|
|
537
|
-
- \`entity\`: domain model.
|
|
538
|
-
- \`task\`: governed operation.
|
|
539
|
-
- \`input\` and \`output\`: input and output contracts.
|
|
540
|
-
- \`rules\`: validations and business rules.
|
|
541
|
-
- \`effects\`: persistence, reads, events, audit, and external calls.
|
|
542
|
-
- \`guarantees\`: what the task must provide after success.
|
|
543
|
-
- \`error\`: named errors and messages.
|
|
544
|
-
- \`tests\`: minimal behavior examples.
|
|
545
|
-
- \`route\`: public surface linked to a task.
|
|
546
|
-
- \`impl\` and \`vinculos\`: links between the contract and real code.
|
|
547
|
-
|
|
548
|
-
## Canonical \`use\` and \`impl\` Origins
|
|
549
|
-
|
|
550
|
-
Use these origins before inventing a new one:
|
|
551
|
-
|
|
552
|
-
- \`ts\` ou \`typescript\`
|
|
553
|
-
- \`js\` ou \`javascript\`
|
|
554
|
-
- \`py\` ou \`python\`
|
|
555
|
-
- \`dart\`
|
|
556
|
-
- \`lua\`
|
|
557
|
-
- \`cs\` ou \`dotnet\`
|
|
558
|
-
- \`java\`
|
|
559
|
-
- \`go\`
|
|
560
|
-
- \`rust\`
|
|
561
|
-
- \`cpp\`
|
|
562
|
-
|
|
563
|
-
Examples:
|
|
564
|
-
|
|
565
|
-
\`\`\`sema
|
|
566
|
-
use javascript app.web.expenses
|
|
567
|
-
|
|
568
|
-
impl {
|
|
569
|
-
js: src.app.saveExpense
|
|
570
|
-
}
|
|
571
|
-
\`\`\`
|
|
572
|
-
|
|
573
|
-
\`sema compilar --alvo javascript\` defines a generation target. \`impl { js: ... }\` defines the live-code origin linked to the contract. They are different layers and both are valid.
|
|
574
|
-
|
|
575
|
-
## Small Canonical Lists
|
|
576
|
-
|
|
577
|
-
- \`effects\`: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
|
|
578
|
-
- \`audit.motivo\`: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
|
|
579
|
-
|
|
580
|
-
## Contract Size
|
|
581
|
-
|
|
582
|
-
- up to ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} lines: healthy
|
|
583
|
-
- ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA + 1}-${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} lines: diagnostic warning, plan a split
|
|
584
|
-
- above ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}: blocks creation, edits, drift, finalization, generation, and snapshots
|
|
585
|
-
- split by real domain/capability, such as \`expenses_entry.sema\`, \`expenses_totals.sema\`, \`expenses_persistence.sema\`
|
|
586
|
-
- never use \`parte_1\`, \`parte_2\`, \`part_3\`, or equivalent names
|
|
587
|
-
- do not remove \`guarantees\`, \`tests\`, \`authz\`, \`dados\`, or \`vinculos\` just to fit under the limit
|
|
588
|
-
- multiple \`.sema\` contracts may govern the same code file through \`vinculos\`; this is expected
|
|
589
|
-
|
|
590
|
-
## JavaScript Is Supported
|
|
591
|
-
|
|
592
|
-
The CLI supports JavaScript generation:
|
|
593
|
-
|
|
594
|
-
\`\`\`bash
|
|
595
|
-
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
596
|
-
\`\`\`
|
|
597
|
-
|
|
598
|
-
The project can also generate TypeScript, Python, PHP, Dart, Lua, HTML, CSS, C#/.NET (\`dotnet\`), and C++ (\`cpp\`) when those targets are enabled in \`sema.config.json\`.
|
|
599
|
-
|
|
600
|
-
## Support Files
|
|
601
|
-
|
|
602
|
-
- \`AGENTS.md\`: official Codex repository rules, loaded automatically.
|
|
603
|
-
- \`${ARQUIVO_SEMA_BOOT}\`: first Sema read for Codex.
|
|
604
|
-
- \`${ARQUIVO_SEMA_SMALL_MODEL}\`: compact guidance for a small context budget.
|
|
605
|
-
- \`${ARQUIVO_AGENT_CONTEXT_PACK}\`: structured Codex context pack.
|
|
606
|
-
- \`SEMA_INDEX.json\`: project index.
|
|
607
|
-
- \`docs/commands.md\`: command catalog, gates, and \`--saida\` rule.
|
|
608
|
-
- \`exemplos/\`: official DSL examples.
|
|
609
|
-
|
|
610
|
-
If Codex does not know which shape to use, it must open \`exemplos/calculadora.sema\`, \`exemplos/crud_simples.sema\`, \`exemplos/pagamento.sema\`, or \`exemplos/tratamento_erro.sema\` before inventing syntax.
|
|
611
|
-
|
|
612
|
-
Platform policy: Sema governs project contracts, scope, drift, evidence, and quality. It never bypasses platform policies, permissions, security controls, terms, or laws.
|
|
504
|
+
return `# Sema Syntax for Codex
|
|
505
|
+
|
|
506
|
+
Use this file as a compact reference before creating or fixing \`.sema\` contracts.
|
|
507
|
+
|
|
508
|
+
## Golden Rule
|
|
509
|
+
|
|
510
|
+
Contract comes before code. Before writing \`.sema\`, read the local examples in \`exemplos/\`.
|
|
511
|
+
|
|
512
|
+
## Minimal Example
|
|
513
|
+
|
|
514
|
+
\`\`\`sema
|
|
515
|
+
module app.example {
|
|
516
|
+
entity Item {
|
|
517
|
+
fields {
|
|
518
|
+
id: Id
|
|
519
|
+
name: Texto
|
|
520
|
+
active: Booleano
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
|
|
524
|
+
task create_item {
|
|
525
|
+
input {
|
|
526
|
+
name: Texto required
|
|
527
|
+
}
|
|
528
|
+
output {
|
|
529
|
+
item: Item
|
|
530
|
+
}
|
|
531
|
+
rules {
|
|
532
|
+
name deve_ser preenchido
|
|
533
|
+
}
|
|
534
|
+
effects {
|
|
535
|
+
persistencia Item
|
|
536
|
+
auditoria item_created
|
|
537
|
+
}
|
|
538
|
+
guarantees {
|
|
539
|
+
item existe
|
|
540
|
+
}
|
|
541
|
+
tests {
|
|
542
|
+
caso "creates valid item" {
|
|
543
|
+
given { name: "Item" }
|
|
544
|
+
expect { sucesso: verdadeiro }
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
\`\`\`
|
|
550
|
+
|
|
551
|
+
## Common Blocks
|
|
552
|
+
|
|
553
|
+
- \`docs\`: module summary and notes.
|
|
554
|
+
- \`entity\`: domain model.
|
|
555
|
+
- \`task\`: governed operation.
|
|
556
|
+
- \`input\` and \`output\`: input and output contracts.
|
|
557
|
+
- \`rules\`: validations and business rules.
|
|
558
|
+
- \`effects\`: persistence, reads, events, audit, and external calls.
|
|
559
|
+
- \`guarantees\`: what the task must provide after success.
|
|
560
|
+
- \`error\`: named errors and messages.
|
|
561
|
+
- \`tests\`: minimal behavior examples.
|
|
562
|
+
- \`route\`: public surface linked to a task.
|
|
563
|
+
- \`impl\` and \`vinculos\`: links between the contract and real code.
|
|
564
|
+
|
|
565
|
+
## Canonical \`use\` and \`impl\` Origins
|
|
566
|
+
|
|
567
|
+
Use these origins before inventing a new one:
|
|
568
|
+
|
|
569
|
+
- \`ts\` ou \`typescript\`
|
|
570
|
+
- \`js\` ou \`javascript\`
|
|
571
|
+
- \`py\` ou \`python\`
|
|
572
|
+
- \`dart\`
|
|
573
|
+
- \`lua\`
|
|
574
|
+
- \`cs\` ou \`dotnet\`
|
|
575
|
+
- \`java\`
|
|
576
|
+
- \`go\`
|
|
577
|
+
- \`rust\`
|
|
578
|
+
- \`cpp\`
|
|
579
|
+
|
|
580
|
+
Examples:
|
|
581
|
+
|
|
582
|
+
\`\`\`sema
|
|
583
|
+
use javascript app.web.expenses
|
|
584
|
+
|
|
585
|
+
impl {
|
|
586
|
+
js: src.app.saveExpense
|
|
587
|
+
}
|
|
588
|
+
\`\`\`
|
|
589
|
+
|
|
590
|
+
\`sema compilar --alvo javascript\` defines a generation target. \`impl { js: ... }\` defines the live-code origin linked to the contract. They are different layers and both are valid.
|
|
591
|
+
|
|
592
|
+
## Small Canonical Lists
|
|
593
|
+
|
|
594
|
+
- \`effects\`: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
|
|
595
|
+
- \`audit.motivo\`: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
|
|
596
|
+
|
|
597
|
+
## Contract Size
|
|
598
|
+
|
|
599
|
+
- up to ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} lines: healthy
|
|
600
|
+
- ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA + 1}-${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA} lines: diagnostic warning, plan a split
|
|
601
|
+
- above ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}: blocks creation, edits, drift, finalization, generation, and snapshots
|
|
602
|
+
- split by real domain/capability, such as \`expenses_entry.sema\`, \`expenses_totals.sema\`, \`expenses_persistence.sema\`
|
|
603
|
+
- never use \`parte_1\`, \`parte_2\`, \`part_3\`, or equivalent names
|
|
604
|
+
- do not remove \`guarantees\`, \`tests\`, \`authz\`, \`dados\`, or \`vinculos\` just to fit under the limit
|
|
605
|
+
- multiple \`.sema\` contracts may govern the same code file through \`vinculos\`; this is expected
|
|
606
|
+
|
|
607
|
+
## JavaScript Is Supported
|
|
608
|
+
|
|
609
|
+
The CLI supports JavaScript generation:
|
|
610
|
+
|
|
611
|
+
\`\`\`bash
|
|
612
|
+
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
613
|
+
\`\`\`
|
|
614
|
+
|
|
615
|
+
The project can also generate TypeScript, Python, PHP, Dart, Lua, HTML, CSS, C#/.NET (\`dotnet\`), and C++ (\`cpp\`) when those targets are enabled in \`sema.config.json\`.
|
|
616
|
+
|
|
617
|
+
## Support Files
|
|
618
|
+
|
|
619
|
+
- \`AGENTS.md\`: official Codex repository rules, loaded automatically.
|
|
620
|
+
- \`${ARQUIVO_SEMA_BOOT}\`: first Sema read for Codex.
|
|
621
|
+
- \`${ARQUIVO_SEMA_SMALL_MODEL}\`: compact guidance for a small context budget.
|
|
622
|
+
- \`${ARQUIVO_AGENT_CONTEXT_PACK}\`: structured Codex context pack.
|
|
623
|
+
- \`SEMA_INDEX.json\`: project index.
|
|
624
|
+
- \`docs/commands.md\`: command catalog, gates, and \`--saida\` rule.
|
|
625
|
+
- \`exemplos/\`: official DSL examples.
|
|
626
|
+
|
|
627
|
+
If Codex does not know which shape to use, it must open \`exemplos/calculadora.sema\`, \`exemplos/crud_simples.sema\`, \`exemplos/pagamento.sema\`, or \`exemplos/tratamento_erro.sema\` before inventing syntax.
|
|
628
|
+
|
|
629
|
+
Platform policy: Sema governs project contracts, scope, drift, evidence, and quality. It never bypasses platform policies, permissions, security controls, terms, or laws.
|
|
613
630
|
`;
|
|
614
631
|
}
|
|
615
632
|
function renderizarDocFluxoPraticoSemaLocal(_agentContextPack) {
|
|
616
|
-
return `# Practical Codex + Sema Workflow
|
|
617
|
-
|
|
618
|
-
This is the minimum workflow for Codex in a local workspace.
|
|
619
|
-
|
|
620
|
-
1. Read \`${ARQUIVO_SEMA_BOOT}\`.
|
|
621
|
-
2. Run \`sema --version\`.
|
|
622
|
-
3. Run \`sema resumo
|
|
623
|
-
4. Run \`sema docs-impacto --intencao "<change>" --json\`.
|
|
624
|
-
5. Read every required document returned by the command.
|
|
625
|
-
6. Read \`docs/commands.md\` before selecting a command or interpreting \`--saida\`.
|
|
626
|
-
7. If the right capability is unclear, run \`sema descobrir recomendar --intencao "<goal>" --json\`; do not auto-run ambiguous recommendations.
|
|
627
|
-
8. Use \`exemplos/\` and \`docs/syntax.md\` before creating or editing a contract.
|
|
628
|
-
9. Run \`sema drift\` and \`sema impacto\` before editing existing code.
|
|
629
|
-
10. Run \`sema formatar\` and \`sema validar\` after changing a \`.sema\` contract.
|
|
630
|
-
11. Run \`sema finalizar-mudanca\` with the documents read before closure.
|
|
631
|
-
|
|
632
|
-
Contract edit rule: \`.sema\` has its own size budget. Above ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} lines, plan a split by domain/capability; above ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}, do not create or edit before splitting. Do not use parte_1/parte_2 and do not force a 1:1 contract-to-file relationship; several contracts can govern the same file through \`vinculos\`.
|
|
633
|
-
|
|
634
|
-
Closing rule: \`sema drift --json\` must return \`sucesso:true\`. If it reports \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
\`\`\`
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
- If
|
|
663
|
-
-
|
|
633
|
+
return `# Practical Codex + Sema Workflow
|
|
634
|
+
|
|
635
|
+
This is the minimum workflow for Codex in a local workspace.
|
|
636
|
+
|
|
637
|
+
1. Read \`${ARQUIVO_SEMA_BOOT}\`.
|
|
638
|
+
2. Run \`sema --version\`. If the shell cannot find it, use \`$HOME/.sema/bin/sema\` on macOS/Linux. On Windows, PowerShell resolves \`sema.ps1\` from PATH and cmd.exe resolves \`sema.cmd\`; use \`& "$env:SystemRoot\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -File "$HOME\\.sema\\bin\\sema-managed.ps1" --version\` as the absolute fallback. Only then declare the CLI unavailable.
|
|
639
|
+
3. Run \`sema resumo --drift none\` for contract-only orientation; request \`--drift cache\` or \`--drift fresh\` only when code evidence is needed.
|
|
640
|
+
4. Run \`sema docs-impacto --intencao "<change>" --json\`.
|
|
641
|
+
5. Read every required document returned by the command.
|
|
642
|
+
6. Read \`docs/commands.md\` before selecting a command or interpreting \`--saida\`.
|
|
643
|
+
7. If the right capability is unclear, run \`sema descobrir recomendar --intencao "<goal>" --json\`; do not auto-run ambiguous recommendations.
|
|
644
|
+
8. Use \`exemplos/\` and \`docs/syntax.md\` before creating or editing a contract.
|
|
645
|
+
9. Run \`sema drift --cache fresh\` and \`sema impacto\` before editing existing code.
|
|
646
|
+
10. Run \`sema formatar\` and \`sema validar\` after changing a \`.sema\` contract.
|
|
647
|
+
11. Run \`sema finalizar-mudanca\` with the documents read before closure.
|
|
648
|
+
|
|
649
|
+
Contract edit rule: \`.sema\` has its own size budget. Above ${LIMITE_AVISO_LINHAS_CONTRATO_SEMA} lines, plan a split by domain/capability; above ${LIMITE_BLOQUEIO_LINHAS_CONTRATO_SEMA}, do not create or edit before splitting. Do not use parte_1/parte_2 and do not force a 1:1 contract-to-file relationship; several contracts can govern the same file through \`vinculos\`.
|
|
650
|
+
|
|
651
|
+
Closing rule: the \`payload\` of \`sema drift --cache fresh --json\` must return \`sucesso:true\`. If it reports \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or \`impls_quebrados\`, the task is still blocked. Passing unit tests or a cache hit do not replace fresh green drift. In 3.0.0, \`ok\` describes the CLI result path and never replaces a command-specific domain verdict.
|
|
652
|
+
|
|
653
|
+
Focused drift rule: file and module scopes plan their physical file set before cataloging. They never fall back to a whole-project walk when no safe anchor exists. All indexers and semantic-budget checks reuse the same in-memory source read; a global walk is reserved for explicit \`--escopo projeto\`. Code discovery is deferred until that plan exists, homonymous candidates fail as ambiguous, and configured contract origins or code roots resolving outside the workspace are rejected before enumeration. \`inspecionar\`, \`impacto\`, and \`renomear-semantico\` preserve the same directed boundary. Missing local dependencies make coverage partial and block success.
|
|
654
|
+
|
|
655
|
+
Cache rule: a closure gate should use \`sema drift <contrato> --escopo modulo --cache fresh --json\`. \`--cache none\` executes the same analysis without persistent-cache I/O, while \`--cache cache\` may reuse only extraction data whose schema, workspace identity, Git HEAD, plan, configuration, contracts, member paths, and strong content digests all match. Cache objects are stored in the operating system's user-cache directory, never below the workspace. A hit is acceleration, not evidence: final links, diagnostics, score, and success are always recalculated. Corruption or an unavailable cache degrades to an in-memory calculation.
|
|
656
|
+
|
|
657
|
+
Query honesty rule: \`resumo\` and \`inspecionar\` default to \`--drift none\`. When analysis is skipped, score, confidence, implementation, routes, and other unobserved code claims inside the command payload must be \`null\` or explicitly marked not evaluated; zero is not a substitute for absent evidence.
|
|
658
|
+
|
|
659
|
+
UI rule: if the task involves an interface, minimum evidence includes desktop and mobile. On a narrow viewport such as 390px, \`document.documentElement.scrollWidth <= document.documentElement.clientWidth\` must pass; horizontal scroll blocks closure.
|
|
660
|
+
|
|
661
|
+
## Codex Context Capacity
|
|
662
|
+
|
|
663
|
+
- Small context: \`${ARQUIVO_SEMA_SMALL_MODEL}\`, \`SEMA_BRIEF.micro.txt\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_INDEX.json\`.
|
|
664
|
+
- Medium context: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.curto.txt\`, \`SEMA_INDEX.json\`, \`AGENTS.md\`.
|
|
665
|
+
- Large context: \`${ARQUIVO_SEMA_BOOT}\`, \`${ARQUIVO_AGENT_CONTEXT_PACK}\`, \`SEMA_BRIEF.md\`, \`SEMA_INDEX.json\`, AST, IR, drift, and impact.
|
|
666
|
+
|
|
667
|
+
## When to Generate Code
|
|
668
|
+
|
|
669
|
+
If the delivery includes code derived from a contract, run \`sema compilar\`.
|
|
670
|
+
|
|
671
|
+
\`\`\`bash
|
|
672
|
+
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
673
|
+
\`\`\`
|
|
674
|
+
|
|
675
|
+
Replace \`javascript\` with \`typescript\`, \`python\`, \`php\`, \`dart\`, \`lua\`, \`html\`, \`css\`, \`dotnet\`, or \`cpp\` when appropriate.
|
|
676
|
+
|
|
677
|
+
## Fail Closed
|
|
678
|
+
|
|
679
|
+
- If the local CLI is unavailable, stop before editing governed code or contracts and ask for \`@semacode/cli\` installation.
|
|
680
|
+
- If the applicable contract or semantic link is missing, create or repair it before code.
|
|
681
|
+
- If validation or drift reports failure, broken links, divergent routes, or broken implementations, fix the evidence and run the gate again.
|
|
682
|
+
- A local timeout is not authorization to skip Sema; retry with a larger timeout or a narrower scope.
|
|
664
683
|
`;
|
|
665
684
|
}
|
|
666
685
|
function renderizarDocComandosSemaLocal(agentContextPack) {
|
|
667
|
-
return `# Sema Command Catalog
|
|
668
|
-
|
|
669
|
-
Use this file when Codex does not know which command to run. A Sema command is an operational gate; do not replace it with a Markdown report.
|
|
670
|
-
|
|
671
|
-
## Minimum Local Flow
|
|
672
|
-
|
|
673
|
-
\`\`\`bash
|
|
686
|
+
return `# Sema Command Catalog
|
|
687
|
+
|
|
688
|
+
Use this file when Codex does not know which command to run. A Sema command is an operational gate; do not replace it with a Markdown report.
|
|
689
|
+
|
|
690
|
+
## Minimum Local Flow
|
|
691
|
+
|
|
692
|
+
\`\`\`bash
|
|
674
693
|
sema --version
|
|
675
|
-
sema resumo
|
|
694
|
+
sema resumo --drift none
|
|
676
695
|
sema docs-impacto --intencao "<acao>" --json
|
|
677
696
|
\`\`\`
|
|
678
697
|
|
|
698
|
+
If \`sema\` is absent from \`PATH\`, use \`$HOME/.sema/bin/sema\` on macOS/Linux. On Windows, PowerShell resolves \`sema.ps1\` from PATH, cmd.exe resolves \`sema.cmd\`, and the absolute fallback is \`& "$env:SystemRoot\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -File "$HOME\\.sema\\bin\\sema-managed.ps1" --version\`. \`sema skill sync --json\` repairs launcher and skill without touching the workspace or plugin caches.
|
|
699
|
+
|
|
679
700
|
Then read every required doc returned by \`docs-impacto\`.
|
|
680
701
|
|
|
681
|
-
##
|
|
682
|
-
|
|
683
|
-
- \`sema iniciar --template <template> [--force]\`: creates a new Sema project and preserves existing files by default; \`--force\` is the only explicit overwrite path.
|
|
684
|
-
- \`sema validar <arquivo-ou-pasta> --json\`: validates \`.sema\` contracts.
|
|
685
|
-
- \`sema diagnosticos <arquivo.sema> --json\`: details errors and warnings.
|
|
686
|
-
- \`sema formatar <arquivo-ou-pasta>\`: formats contracts.
|
|
687
|
-
- \`sema inspecionar <arquivo-ou-pasta> --json\`: shows modules, tasks, routes, entities, links, and expected files.
|
|
688
|
-
- \`sema ast <arquivo.sema> --json\`: shows AST for syntax debugging.
|
|
689
|
-
- \`sema ir <arquivo.sema> --json\`: shows the IR used by gates and generators.
|
|
690
|
-
- \`sema descobrir catalogo --json\`: lists governance flows, profiles, specialized workflows, pipelines, generators, capability tokens, and adapters from their canonical registries.
|
|
691
|
-
- \`sema descobrir recomendar --intencao "<goal>" --json\`: ranks compatible capabilities deterministically without executing the selected command.
|
|
692
|
-
- \`sema descobrir explicar <id> --json\`: explains inputs, boundaries, reasons, and the command template for one capability.
|
|
693
|
-
- \`sema pipeline listar|descrever <id> --json\` and \`sema capabilities --json\`: compact projections of the same discovery catalog.
|
|
694
|
-
|
|
695
|
-
## Change and Closure
|
|
696
|
-
|
|
697
|
-
- \`sema docs-impacto --intencao "<acao>" --json\`: discovers required docs and documentary blockers.
|
|
698
|
-
- \`sema inspecionar <arquivo-ou-pasta> [--drift none|cache|fresh] [--com-drift] --json\`: inspects contracts; the default is contract-only \`none\` and leaves code scores absent.
|
|
699
|
-
- \`sema resumo <arquivo-ou-pasta> --micro [--drift none|cache|fresh] --json\`: produces a small contract summary; the default is contract-only \`none\` and explicitly says implementation was not verified.
|
|
700
|
-
- \`sema drift <arquivo-ou-pasta> --escopo modulo [--cache auto|refresh|off] --json\`: compares contract and implementation after planning the physical scope.
|
|
701
|
-
- \`sema impacto <arquivo-ou-pasta> --alvo <token> --mudanca "<descricao>" --json\`: maps impact before changing behavior.
|
|
702
|
-
- \`sema verificar <arquivo-ou-pasta> --json\`: runs aggregated final verification.
|
|
703
|
-
- \`sema finalizar-mudanca --intencao "<acao>" --doc-lida <arquivo> --json\`: proves documentation reading before closure.
|
|
704
|
-
|
|
705
|
-
Honest closure: treat drift JSON as the source of truth. \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or broken impls mean the change is not complete yet. Do not report "clean drift" without green JSON.
|
|
706
|
-
|
|
707
|
-
Focused drift does not fall back to a global scan when it cannot prove a safe file anchor. With \`--cache auto\`, unchanged catalog snapshots, file metadata/content, dependency extraction, and semantic groups are reused only after schema, digest, identity, runtime-shape, and filesystem validation. The JSON fields \`escopo_aplicado.catalogo\`, \`escopo_aplicado.cache.incremental\`, and \`escopo_aplicado.cache.fasesMs\` expose visits, reads, hits, misses, extractions, writes, and phase timing.
|
|
702
|
+
## Public JSON output
|
|
708
703
|
|
|
709
|
-
|
|
704
|
+
\`sema --version\` stays plain exact SemVer text. With \`--json\`, help and command-control failures use exactly one six-field \`sema.cli.control/v1\` document on stdout with empty stderr. Every syntactically valid command uses exactly one eight-field \`sema.cli.result/v1\` document containing only \`schemaVersion\`, \`ok\`, \`kind\`, \`command\`, \`code\`, \`message\`, \`exitCode\`, and \`payload\`. The command-specific result is nested under \`payload\`, never \`data\`; envelope \`ok\` does not replace domain fields inside that payload. Valid structured domain failures use \`DOMAIN_ERROR\`, while uncaught runtime exceptions remain redacted \`FATAL_ERROR\` control failures.
|
|
710
705
|
|
|
711
|
-
|
|
712
|
-
- \`sema testar <arquivo.sema> --alvo <alvo> --saida <diretorio-temporario>\`: generates and runs local tests when the target supports it.
|
|
713
|
-
- \`sema importar <fonte> <diretorio> --saida <diretorio> --json\`: imports a legacy project into initial contracts.
|
|
714
|
-
- \`sema renomear-semantico <arquivo-ou-pasta> --de <nome> --para <nome> --json\`: helps rename symbols semantically.
|
|
706
|
+
## Global Distribution
|
|
715
707
|
|
|
716
|
-
|
|
708
|
+
- \`sema skill status --json\`: diagnoses the managed launcher and bundled skill without writing.
|
|
709
|
+
- \`sema skill sync --json\`: repairs only Sema-managed launcher and skill destinations; it never writes into the workspace or plugin caches.
|
|
717
710
|
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
-
|
|
725
|
-
-
|
|
726
|
-
-
|
|
727
|
-
|
|
728
|
-
\`sema
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
711
|
+
## Contract and Discovery
|
|
712
|
+
|
|
713
|
+
- \`sema iniciar --template <template> [--force]\`: creates a new Sema project and preserves existing files by default; \`--force\` is the only explicit overwrite path.
|
|
714
|
+
- \`sema validar <arquivo-ou-pasta> --json\`: validates \`.sema\` contracts.
|
|
715
|
+
- \`sema diagnosticos <arquivo.sema> --json\`: details errors and warnings.
|
|
716
|
+
- \`sema formatar <arquivo-ou-pasta>\`: formats contracts.
|
|
717
|
+
- \`sema inspecionar <arquivo-ou-pasta> [--drift <none|cache|fresh>] --json\`: shows the contract surface; drift is skipped by default.
|
|
718
|
+
- \`sema ast <arquivo.sema> --json\`: shows AST for syntax debugging.
|
|
719
|
+
- \`sema ir <arquivo.sema> --json\`: shows the IR used by gates and generators.
|
|
720
|
+
- \`sema descobrir catalogo --json\`: lists governance flows, profiles, specialized workflows, pipelines, generators, capability tokens, and adapters from their canonical registries.
|
|
721
|
+
- \`sema descobrir recomendar --intencao "<goal>" --json\`: ranks compatible capabilities deterministically without executing the selected command.
|
|
722
|
+
- \`sema descobrir explicar <id> --json\`: explains inputs, boundaries, reasons, and the command template for one capability.
|
|
723
|
+
- \`sema pipeline listar|descrever <id> --json\` and \`sema capabilities --json\`: compact projections of the same discovery catalog.
|
|
724
|
+
|
|
725
|
+
## Change and Closure
|
|
726
|
+
|
|
727
|
+
- \`sema docs-impacto --intencao "<acao>" --json\`: discovers required docs and documentary blockers.
|
|
728
|
+
- \`sema drift <arquivo-ou-pasta> --escopo modulo [--cache <none|cache|fresh>] --json\`: plans a safe physical scope, then compares contract and implementation without a global fallback.
|
|
729
|
+
- \`sema impacto <arquivo-ou-pasta> --alvo <token> --mudanca "<descricao>" --json\`: maps impact before changing behavior.
|
|
730
|
+
- \`sema verificar <arquivo-ou-pasta> --json\`: runs aggregated final verification.
|
|
731
|
+
- \`sema finalizar-mudanca --intencao "<acao>" --doc-lida <arquivo> --json\`: proves documentation reading before closure.
|
|
732
|
+
|
|
733
|
+
Honest closure: unwrap drift JSON and treat its command payload as the source of truth. \`payload.sucesso:false\`, non-empty \`payload.vinculos_quebrados\`, non-empty \`payload.rotas_divergentes\`, or non-empty \`payload.impls_quebrados\` mean the change is not complete yet. Do not report "clean drift" without a green payload.
|
|
734
|
+
|
|
735
|
+
Focused drift exposes its planned, declared, inferred, and missing files plus catalog visit/read metrics in \`escopo_aplicado\`. File and module scopes fail closed without a safe anchor, with homonymous implementation candidates, or with missing local dependencies; only \`--escopo projeto\` may walk every configured code root. Logical roots such as \`src\` are probed deterministically without a discovery walk. Configured contract origins and code roots are confined before enumeration, and \`inspecionar\`, \`impacto\`, and \`renomear-semantico\` reuse the same directed boundary without reopening arbitrary external paths.
|
|
736
|
+
|
|
737
|
+
Drift analysis and cache modes are explicit:
|
|
738
|
+
|
|
739
|
+
- \`sema drift\` defaults to \`--cache fresh\`. \`none\` still executes drift but performs zero persistent-cache I/O; \`cache\` reuses a fully validated extraction hit and publishes misses; \`fresh\` ignores hits, recalculates, and publishes the new extraction.
|
|
740
|
+
- \`sema resumo\` and \`sema inspecionar\` default to \`--drift none\`. In that mode their payload does not execute drift and returns \`null\` for score, confidence, implementation, routes, or other code evidence that was not observed. Use \`--drift cache\` or \`--drift fresh\` when that evidence is required. \`--com-drift\` remains a temporary alias for \`--drift fresh\`.
|
|
741
|
+
- When a query explicitly runs drift, \`payload.analiseDrift.sucesso\` exposes the result and a failed requested analysis returns a nonzero exit code.
|
|
742
|
+
- The value aliases \`off\`, \`auto\`, and \`refresh\` normalize to \`none\`, \`cache\`, and \`fresh\` for one compatibility release and emit a structured deprecation warning. Wrong flags, repeated flags, conflicts, and invalid values fail instead of falling back silently.
|
|
743
|
+
- Persistent cache objects live outside the workspace under the operating system's user-cache directory. Workspace identity is hashed; public JSON and events expose only an opaque key and \`$SEMA_CACHE/...\` paths. Corruption or cache unavailability becomes a miss and never changes the drift result. Only validated extraction data is reused; links, diagnostics, scores, and the final success decision are recalculated.
|
|
744
|
+
|
|
745
|
+
A cache hit is acceleration, not final evidence; closure still requires fresh drift.
|
|
746
|
+
|
|
747
|
+
## Sema Code
|
|
748
|
+
|
|
749
|
+
- \`sema compilar <arquivo-ou-pasta> --alvo <typescript|python|php|dart|lua|javascript|html|css|dotnet|cpp> --saida <diretorio>\`: generates starter/support artifacts from the contract.
|
|
750
|
+
- \`sema testar <arquivo.sema> --alvo <alvo> --saida <diretorio-temporario>\`: generates and runs local tests when the target supports it.
|
|
751
|
+
- \`sema importar <fonte> <diretorio> --saida <diretorio> --json\`: imports a legacy project into initial contracts.
|
|
752
|
+
- \`sema renomear-semantico <arquivo-ou-pasta> --de <nome> --para <nome> --json\`: helps rename symbols semantically.
|
|
753
|
+
|
|
754
|
+
Rule for \`--saida\`: the folder passed to \`sema compilar --saida\` is generated output. It is not the final delivery by itself. The final delivery is the target files/links declared by the contract. If the contract asks for \`index.html\`, \`css/styles.css\`, and \`js/app.js\`, creating only \`saida/expense_control.ts\` does not complete the task.
|
|
755
|
+
|
|
756
|
+
Sema Code traceability rule: generated artifacts must point back to the source module/contract and preserve that the same final file may be governed by several \`.sema\` contracts through \`vinculos\`. Do not force a 1:1 contract-file relationship and do not treat \`saida/\` as the final project.
|
|
757
|
+
|
|
758
|
+
Ready UI rule: if the task generates an app, site, dashboard, form, or static HTML, run desktop/mobile visual validation when the surface allows it. On narrow mobile (for example 390px), \`scrollWidth <= clientWidth\` must pass; a layout that stacks but overflows horizontally is not responsive.
|
|
759
|
+
|
|
760
|
+
## Canonical Syntax Lists
|
|
761
|
+
|
|
762
|
+
- Origins for \`use\` and \`impl\`: \`ts/typescript\`, \`js/javascript\`, \`py/python\`, \`dart\`, \`lua\`, \`cs/dotnet\`, \`java\`, \`go\`, \`rust\`, \`cpp\`.
|
|
763
|
+
- Frequent \`effects\` categories: \`persistencia\`, \`consulta\`, \`evento\`, \`auditoria\`, \`db.write\`, \`queue.publish\`, \`fs.write\`, \`network.egress\`, \`secret.read\`, \`shell.exec\`.
|
|
764
|
+
- Accepted \`audit.motivo\` values: \`obrigatorio\`, \`opcional\`, \`dispensado\`.
|
|
765
|
+
|
|
766
|
+
\`sema compilar --alvo javascript\` is a generation target. \`impl { js: ... }\` is the live-code origin. Do not swap one for the other.
|
|
767
|
+
|
|
768
|
+
## Codex and Context
|
|
769
|
+
|
|
770
|
+
- \`sema ajuda-ia\`: short guidance for Codex.
|
|
771
|
+
- \`sema starter-ia\`: operational starter.
|
|
734
772
|
- \`sema contexto-ia <arquivo.sema> --saida <dir> --json\`: AI context package.
|
|
735
|
-
- \`sema
|
|
736
|
-
- \`sema
|
|
737
|
-
- \`sema
|
|
738
|
-
- \`sema exemplos
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
- \`sema
|
|
744
|
-
- \`sema profile
|
|
745
|
-
- \`sema
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
- \`sema conteudo
|
|
753
|
-
- \`sema conteudo
|
|
754
|
-
- \`sema conteudo
|
|
755
|
-
- \`sema conteudo
|
|
756
|
-
- \`sema conteudo
|
|
757
|
-
- \`sema conteudo
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
- \`sema interativo
|
|
770
|
-
- \`sema interativo
|
|
771
|
-
- \`sema interativo
|
|
772
|
-
- \`sema interativo
|
|
773
|
-
- \`sema interativo
|
|
774
|
-
- \`sema interativo
|
|
775
|
-
- \`sema interativo validar-
|
|
776
|
-
-
|
|
777
|
-
-
|
|
778
|
-
-
|
|
779
|
-
-
|
|
780
|
-
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
- Do not
|
|
793
|
-
- Do not
|
|
794
|
-
- Do not
|
|
795
|
-
- Do not
|
|
796
|
-
- Do not
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
function renderizarAgentStarterLocal(_agentContextPack) {
|
|
802
|
-
return `# Codex Starter
|
|
803
|
-
|
|
804
|
-
Codex is operating in a Sema-governed project.
|
|
805
|
-
|
|
806
|
-
Read in this order:
|
|
807
|
-
|
|
808
|
-
1. \`${ARQUIVO_SEMA_BOOT}\`
|
|
809
|
-
2. \`${ARQUIVO_AGENT_CONTEXT_PACK}\`
|
|
810
|
-
3. \`SEMA_INDEX.json\`
|
|
811
|
-
4. \`AGENTS.md\`
|
|
812
|
-
5. \`docs/commands.md\`
|
|
813
|
-
6. \`docs/syntax.md\`
|
|
814
|
-
7. \`exemplos/\`
|
|
815
|
-
|
|
816
|
-
Basic commands:
|
|
817
|
-
|
|
818
|
-
\`\`\`bash
|
|
819
|
-
sema --version
|
|
820
|
-
sema resumo
|
|
821
|
-
sema docs-impacto --intencao "<acao>" --json
|
|
822
|
-
sema validar contratos/orders.sema --json
|
|
823
|
-
sema drift contratos/orders.sema --escopo modulo --json
|
|
824
|
-
sema compilar contratos/orders.sema --alvo javascript --saida ./generated/javascript
|
|
825
|
-
\`\`\`
|
|
826
|
-
|
|
827
|
-
Do not replace these gates with local search, guessing from a filename, or random contract reading outside the project.
|
|
828
|
-
|
|
829
|
-
Closure is not an opinion: \`sema drift --json\` must be green. \`sucesso:false\`, \`vinculos_quebrados\`, \`rotas_divergentes\`, or broken impls block closure.
|
|
830
|
-
|
|
831
|
-
Ready UI requires proof: desktop/mobile and a narrow viewport without horizontal overflow (\`scrollWidth <= clientWidth\`).
|
|
832
|
-
|
|
833
|
-
Keep \`SEMA-GOVERNED\` markers and follow the applicable contract before editing governed code.
|
|
773
|
+
- \`sema resumo <arquivo-ou-pasta> [--drift <none|cache|fresh>] --json\`: compact context; drift is not executed unless requested.
|
|
774
|
+
- \`sema prompt-curto <arquivo-ou-pasta> --json\`: compact prompt.
|
|
775
|
+
- \`sema sync-codex --json\`: synchronizes the official Codex entrypoint and local support docs.
|
|
776
|
+
- \`sema instalar-exemplos --json\`: installs official examples in the workspace.
|
|
777
|
+
- \`sema exemplos-prompt-ia\`: shows prompt examples, not \`.sema\` examples.
|
|
778
|
+
|
|
779
|
+
## Profiles and Author
|
|
780
|
+
|
|
781
|
+
- \`sema author iniciar|validar|briefing|revisar-cliches|validar-narrativa|validar-proibicoes\`: governs authorial writing.
|
|
782
|
+
- \`sema profile validar <software|workflow|ops|game|simulation|legal|research|redacao|propostas|conversas> <arquivo> --json\`: validates an artifact by profile.
|
|
783
|
+
- \`sema profile capabilities --json\`: lists profiles/capabilities.
|
|
784
|
+
- \`sema rule-packs --profile <profile> --json\`: lists rule packs.
|
|
785
|
+
|
|
786
|
+
\`author\` is a specialized \`sema author\` workflow, not a \`profile validar\` alias. Discovery exposes that distinction explicitly.
|
|
787
|
+
|
|
788
|
+
## AI-native Content Pipeline
|
|
789
|
+
|
|
790
|
+
- \`sema conteudo capabilities --json\`: lists generic producer, evaluator, and adapter capabilities without fixing a platform.
|
|
791
|
+
- \`sema conteudo validar <definition.json> --json\`: validates the content DAG, gates, and open adapters.
|
|
792
|
+
- \`sema conteudo planejar <definition.json> --alvos-arquivo <targets.json> --json\`: creates a declarative multi-target plan for an external runner.
|
|
793
|
+
- \`sema conteudo validar-envelope --envelope-arquivo <envelope.json> --confianca-arquivo <trust.json> --trust-root-digest <sha256:...> --revocation-digest <sha256:...> --payload-type <type> --json\`: verifies Ed25519 identity, authorization, freshness, scope, and the separately pinned trust root and current revocation overlay.
|
|
794
|
+
- \`sema conteudo registrar <ledger.ndjson> --envelope-arquivo <envelope.json> --politica-arquivo <policy-envelope.json> --confianca-arquivo <trust.json> --trust-root-digest <sha256:...> --revocation-digest <sha256:...> --ledger-id <id> --expected-head <sha256:...> --json\`: appends a verified envelope under the signed run policy to the local replay ledger at an externally retained head.
|
|
795
|
+
- \`sema conteudo status <definition.json> --politica-arquivo <policy-envelope.json> --confianca-arquivo <trust.json> --trust-root-digest <sha256:...> --revocation-digest <sha256:...> --ledger-arquivo <ledger.ndjson> --expected-head <sha256:...> --json\`: verifies the signed policy and its \`targetSetDigest\`, then derives verdicts, operational conditions, completion, and next actions from canonical events.
|
|
796
|
+
- \`sema conteudo projetar <definition.json> --politica-arquivo <policy-envelope.json> --confianca-arquivo <trust.json> --trust-root-digest <sha256:...> --revocation-digest <sha256:...> --ledger-arquivo <ledger.ndjson> --expected-head <sha256:...> --saida <manifest.json> --json\`: regenerates a non-authoritative manifest bound to the ledger head.
|
|
797
|
+
|
|
798
|
+
The content command is an AI-native, multi-channel, multi-format control plane. It never runs producers, evaluators, creative tools, or publication adapters; those belong to an external runner. It has no native human-review transition. A signed policy binds \`runId\`, definition, ledger, trust root, gates, complete target set, and the full \`issuedAt\`/\`expiresAt\` authorization window; no event may be recorded outside it. Stages select \`adapterPolicy\` as \`NONE\`, \`CONSTRAINTS\`, or \`CONFIRMATION\`; definition v1 accepts one output per stage. Constraint results must come from independent signed observations, including independently observed media type, not artifact metadata or executor claims. Target metadata is an exact scalar allowlist from \`requiredMetadata + optionalMetadata\`; \`accountScope\` is a credential-free \`account:<alias>\` reference, and artifact metadata is prohibited in v1. Deterministic evidence and AI opinions have separate quorum fields. Evidence requires an exact \`content.evidence.attest:<evidenceType>\` capability; adapter evidence requires \`content.adapter.attest:<adapterId>@<version>:<evidenceType>\` plus signed adapter binding.
|
|
799
|
+
|
|
800
|
+
Verdicts such as \`APROVADO\`, \`REPROVADO\`, and \`INCONCLUSIVO\` remain separate from operational conditions such as \`AGUARDANDO_EVENTO_EXTERNO\` and \`FERRAMENTA_INDISPONIVEL\`. A generated manifest is only a projection and cannot alter canonical state.
|
|
801
|
+
|
|
802
|
+
Local NDJSON plus a hash chain is portable evidence for replay, not a strong append-only trust boundary. Retain \`expectedHead\`, the canonical trust-root digest, and the current revocation digest externally, or use protected storage for high assurance. The trust-root pin identifies the authority snapshot independently from the revocation overlay. A workspace-local trust file additionally requires \`--development-local-trust\`; the flag does not disable digest pinning. Append freshness uses the platform clock rather than caller-provided \`recordedAt\`, and an authority in the current revocation overlay cannot sign an accepted policy.
|
|
803
|
+
|
|
804
|
+
## AI-native Interactive Systems
|
|
805
|
+
|
|
806
|
+
- \`sema interativo capabilities --json\`: lists the canonical interactive capability vocabulary.
|
|
807
|
+
- \`sema interativo schema --json\`: exposes the stable read-only definition schema, enum matrix, constraints, extension-command and data-schema shapes, plus canonical example paths for AI clients.
|
|
808
|
+
- \`sema interativo pipelines --json\`: lists reusable game, simulation, and hybrid pipelines.
|
|
809
|
+
- \`sema interativo adapters [--spatial-model <NON_SPATIAL|TWO_D|TWO_POINT_FIVE_D|THREE_D>] [--render-mode <HEADLESS|TEXT|VISUAL|XR>] --json\`: lists compatible external adapter descriptors.
|
|
810
|
+
- \`sema interativo validar <definition.json> --json\`: validates independent kind, spatial model, render mode, visual profile, fidelity, control, time, world, budget, pipeline, and acceptance axes.
|
|
811
|
+
- \`sema interativo planejar <definition.json> --json\`: expands compatible stages and required evidence without running an engine.
|
|
812
|
+
- \`sema interativo validar-evidencias|status <definition.json> [--plano-arquivo <plan.json>] --bundle-arquivo <bundle.json> --json\`: validates a portable evidence bundle or derives non-authoritative status; \`--evidencias-arquivo\` is an alias and an omitted plan is recomputed deterministically.
|
|
813
|
+
- \`sema interativo validar-protocolo <adapter-run.json> --json\`: checks DETECT/PROBE/SNAPSHOT/PLAN/APPLY/VALIDATE/EVIDENCE/ROLLBACK ordering and stable target binding.
|
|
814
|
+
- Experience IR: \`validar-ir\`, \`indexar-ir\`, \`consultar-ir --semantic-id <id>\`, \`chunk-ir --semantic-id <id> [--raso]\`, and \`descrever-ir\`.
|
|
815
|
+
- Operational state: \`validar-engine-snapshot\`, \`diff-engine-snapshots\`, \`validar-asset-provenance\`, \`validar-editor-state\`, \`planejar-jobs\`, \`validar-acceptance\`, \`operar-acceptance --operation <VALIDATE|EVALUATE|INVALIDATE> --context-file <file>\`, and \`validar-multimodal\`.
|
|
816
|
+
- Temporal, autonomy, and testing: \`validar-temporal\`, \`validar-evidencia-temporal --bundle-arquivo <file>\`, \`validar-autonomia\`, \`validar-playtest-fuzz\`, and \`validar-multiplayer\`.
|
|
817
|
+
- Portability and workers: \`analisar-portabilidade\` and \`validar-workers\`.
|
|
818
|
+
- \`sema interativo validar-control-run <control-run.json> --definition-arquivo <definition.json> --plano-arquivo <plan.json> --contrato-arquivo <validation-contract.json> --entrada-arquivo <input.json> [--entrada-auxiliar-arquivo <supporting-input.json>] --evidencia-arquivo <evidence.json> --resultado-arquivo <result.json> --json\`: binds one advanced validation to its complete local digest chain instead of trusting a standalone result.
|
|
819
|
+
|
|
820
|
+
The control-run command recomputes the canonical plan and selected pure validator, then verifies the definition, pipeline descriptor, validation contract, schema-declared inputs, evidence, and result digests. Prefix advanced items with \`sema interativo\` and pass the documented JSON file as the positional argument; an agent does not have to infer the validator or payload shape from a filename or visual style. The machine-readable schema publishes command maps, input/output schema links, required top-level fields, \`outputTargets\` path segments from the payload root, at least one real output shape per command, and official fixtures for all 20 advanced commands. Validation-result shapes describe \`payload.resultado\`; projected IR values use \`indice\`, \`entry\`, \`chunk\`, or \`descriptor\`; operation projections such as \`engineDiff\` and \`jobOrchestrationPlan\` live under \`payload.resultado.value\`; the job plan's ordered \`queue\` is the assignment list and exposes kind, priority, adapter, dependencies, locks, budgets, heartbeat, checkpoint, and recovery data.
|
|
821
|
+
|
|
822
|
+
Spatial model and render mode are orthogonal: \`THREE_D + HEADLESS\` is valid, while XR requires \`THREE_D\`. \`PIXEL_8_BIT\` and \`PIXEL_16_BIT\` are independent visual profiles available to games and simulations. Every command above rejects unknown, duplicate, missing-value, or invalid-enum arguments, remains local, read-only, and non-authoritative, and leaves engine/editor execution, authorization, mutation, rollback, migration, rendering, playtest, and worker scheduling to external runners. Full local coverage is \`STRUCTURALLY_COMPLETE\`, never authoritative completion, and a local evidence bundle is never presented as authoritative trust.
|
|
823
|
+
|
|
824
|
+
## Operational
|
|
825
|
+
|
|
826
|
+
- \`sema doctor\`: diagnoses local installation.
|
|
827
|
+
|
|
828
|
+
## Forbidden
|
|
829
|
+
|
|
830
|
+
- Do not use an external workspace source to inspect a local workspace when \`sema --version\` or the managed launcher works.
|
|
831
|
+
- Do not search the entire disk for \`.sema\` syntax; use \`exemplos/\`, \`docs/syntax.md\`, and this catalog.
|
|
832
|
+
- Do not stop after \`sema compilar\` if the contract target files still do not exist.
|
|
833
|
+
- Do not replace \`sema compilar\` with \`sema testar\` when the contract requires generated code.
|
|
834
|
+
- Do not create a Markdown report to pretend a gate ran.
|
|
835
|
+
- Do not say drift passed when the unwrapped \`sema drift --cache fresh --json\` payload returned \`sucesso:false\`, a non-empty \`vinculos_quebrados\`, \`rotas_divergentes\`, or \`impls_quebrados\` list.
|
|
836
|
+
- Do not declare a UI responsive without mobile/desktop proof; horizontal scroll at 390px blocks closure.
|
|
837
|
+
|
|
838
|
+
Governed code policy: keep the \`SEMA-GOVERNED\` marker, split large code by real responsibility, preserve contract links, and never treat a generated output directory as the final delivery.
|
|
834
839
|
`;
|
|
835
840
|
}
|
|
836
841
|
export async function sincronizarEntrypointCodex(baseProjeto, agentContextPack) {
|
|
@@ -870,10 +875,15 @@ export async function sincronizarEntrypointCodex(baseProjeto, agentContextPack)
|
|
|
870
875
|
codexNativo: true,
|
|
871
876
|
cliLocalSemAutorizacao: true,
|
|
872
877
|
skillBootstrapCodexDocumentada: true,
|
|
878
|
+
launcherGlobalFallbackDocumentado: true,
|
|
879
|
+
cliIndisponivelSomenteAposFallback: true,
|
|
880
|
+
skillGlobalDelegaAgentsMd: true,
|
|
873
881
|
idiomaHumanoPreservado: true,
|
|
874
882
|
retryTimeoutProgressivo: true,
|
|
875
883
|
politicaPlataformaExplicita: true,
|
|
876
884
|
politicaSinalVsRitualExplicita: true,
|
|
885
|
+
politicaModosDriftExplicita: true,
|
|
886
|
+
docsComandos: true,
|
|
877
887
|
divisaoPorResponsabilidadeExplicita: true,
|
|
878
888
|
contextoLocalSemEspelho: true,
|
|
879
889
|
destinosEntrypointPrevalidados: true,
|