@semacode/cli 1.5.11 → 1.5.16
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 +6 -1
- package/dist/index.js +446 -32
- package/package.json +23 -32
- package/semacode-cli-1.3.1.tgz +0 -0
- package/src/angular-consumer-standalone.ts +312 -0
- package/src/cpp-symbols.ts +82 -0
- package/src/docs.ts +535 -0
- package/src/dotnet-http.ts +355 -0
- package/src/drift.ts +4933 -0
- package/src/go-http.ts +118 -0
- package/src/importador.ts +3891 -0
- package/src/index.ts +5641 -0
- package/src/java-http.ts +247 -0
- package/src/lua-symbols.ts +114 -0
- package/src/php-symbols.ts +462 -0
- package/src/projeto.ts +862 -0
- package/src/python-http.ts +258 -0
- package/src/rust-http.ts +125 -0
- package/src/tipos.ts +24 -0
- package/src/typescript-http.ts +1076 -0
- package/tsconfig.json +20 -0
- package/AGENTS.md +0 -272
- package/LICENSE +0 -22
- package/SEMA_BRIEF.curto.txt +0 -9
- package/SEMA_BRIEF.md +0 -63
- package/SEMA_BRIEF.micro.txt +0 -7
- package/SEMA_INDEX.json +0 -799
- package/dist/angular-consumer-standalone.d.ts +0 -6
- package/dist/angular-consumer-standalone.js.map +0 -1
- package/dist/cpp-symbols.d.ts +0 -10
- package/dist/cpp-symbols.js.map +0 -1
- package/dist/docs.d.ts +0 -56
- package/dist/docs.js.map +0 -1
- package/dist/dotnet-http.d.ts +0 -23
- package/dist/dotnet-http.js.map +0 -1
- package/dist/drift.d.ts +0 -225
- package/dist/drift.js.map +0 -1
- package/dist/go-http.d.ts +0 -23
- package/dist/go-http.js.map +0 -1
- package/dist/importador.d.ts +0 -31
- package/dist/importador.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js.map +0 -1
- package/dist/java-http.d.ts +0 -23
- package/dist/java-http.js.map +0 -1
- package/dist/lua-symbols.d.ts +0 -10
- package/dist/lua-symbols.js.map +0 -1
- package/dist/php-symbols.d.ts +0 -24
- package/dist/php-symbols.js.map +0 -1
- package/dist/projeto.d.ts +0 -53
- package/dist/projeto.js.map +0 -1
- package/dist/python-http.d.ts +0 -23
- package/dist/python-http.js.map +0 -1
- package/dist/rust-http.d.ts +0 -23
- package/dist/rust-http.js.map +0 -1
- package/dist/tipos.d.ts +0 -3
- package/dist/tipos.js.map +0 -1
- package/dist/typescript-http.d.ts +0 -35
- package/dist/typescript-http.js.map +0 -1
- package/docs/AGENT_STARTER.md +0 -102
- package/docs/cli.md +0 -110
- package/docs/como-ensinar-a-sema-para-ia.md +0 -149
- package/docs/deploy.md +0 -70
- package/docs/documentacao.md +0 -63
- package/docs/env.md +0 -56
- package/docs/extensao-vscode.md +0 -45
- package/docs/fluxo-pratico-ia-sema.md +0 -177
- package/docs/instalacao-e-primeiro-uso.md +0 -112
- package/docs/integracao-com-ia.md +0 -101
- package/docs/mcp.md +0 -53
- package/docs/pagamento-ponta-a-ponta.md +0 -155
- package/docs/persistencia-vendor-first.md +0 -145
- package/docs/prompt-base-ia-sema.md +0 -104
- package/docs/rollback.md +0 -47
- package/docs/sintaxe.md +0 -244
- package/exemplos/agendamento.sema +0 -106
- package/exemplos/assinatura.sema +0 -136
- package/exemplos/auditoria.sema +0 -88
- package/exemplos/autenticacao.sema +0 -125
- package/exemplos/automacao.sema +0 -107
- package/exemplos/cadastro_usuario.sema +0 -54
- package/exemplos/calculadora.sema +0 -78
- package/exemplos/crud_simples.sema +0 -89
- package/exemplos/estoque.sema +0 -126
- package/exemplos/exportacao.sema +0 -94
- package/exemplos/fila.sema +0 -131
- package/exemplos/integracao_externa.sema +0 -94
- package/exemplos/multi_tenant.sema +0 -140
- package/exemplos/notificacao.sema +0 -98
- package/exemplos/operacao_estrategia.sema +0 -402
- package/exemplos/pagamento.sema +0 -222
- package/exemplos/pagamento_dominio.sema +0 -35
- package/exemplos/pedido.sema +0 -119
- package/exemplos/permissao.sema +0 -121
- package/exemplos/persistencia_vendor_first.sema +0 -86
- package/exemplos/relatorio.sema +0 -93
- package/exemplos/testes_embutidos.sema +0 -45
- package/exemplos/tratamento_erro.sema +0 -157
- package/exemplos/upload_arquivo.sema +0 -93
- package/exemplos/webhook.sema +0 -96
- package/llms-full.txt +0 -34
- package/llms.txt +0 -17
- package/node_modules/@sema/gerador-css/dist/index.d.ts +0 -3
- package/node_modules/@sema/gerador-css/dist/index.js +0 -592
- package/node_modules/@sema/gerador-css/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-css/package.json +0 -7
- package/node_modules/@sema/gerador-dart/dist/index.d.ts +0 -3
- package/node_modules/@sema/gerador-dart/dist/index.js +0 -44
- package/node_modules/@sema/gerador-dart/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-dart/package.json +0 -7
- package/node_modules/@sema/gerador-html/dist/index.d.ts +0 -3
- package/node_modules/@sema/gerador-html/dist/index.js +0 -163
- package/node_modules/@sema/gerador-html/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-html/package.json +0 -7
- package/node_modules/@sema/gerador-javascript/dist/index.d.ts +0 -3
- package/node_modules/@sema/gerador-javascript/dist/index.js +0 -421
- package/node_modules/@sema/gerador-javascript/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-javascript/package.json +0 -7
- package/node_modules/@sema/gerador-lua/dist/index.d.ts +0 -3
- package/node_modules/@sema/gerador-lua/dist/index.js +0 -328
- package/node_modules/@sema/gerador-lua/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-lua/package.json +0 -7
- package/node_modules/@sema/gerador-python/dist/index.d.ts +0 -6
- package/node_modules/@sema/gerador-python/dist/index.js +0 -729
- package/node_modules/@sema/gerador-python/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-python/package.json +0 -7
- package/node_modules/@sema/gerador-typescript/dist/index.d.ts +0 -6
- package/node_modules/@sema/gerador-typescript/dist/index.js +0 -793
- package/node_modules/@sema/gerador-typescript/dist/index.js.map +0 -1
- package/node_modules/@sema/gerador-typescript/package.json +0 -7
- package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +0 -123
- package/node_modules/@sema/nucleo/dist/ast/tipos.js +0 -2
- package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.d.ts +0 -21
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.js +0 -12
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +0 -9
- package/node_modules/@sema/nucleo/dist/formatador/index.js +0 -460
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/index.d.ts +0 -35
- package/node_modules/@sema/nucleo/dist/index.js +0 -96
- package/node_modules/@sema/nucleo/dist/index.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +0 -5
- package/node_modules/@sema/nucleo/dist/ir/conversor.js +0 -883
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +0 -345
- package/node_modules/@sema/nucleo/dist/ir/modelos.js +0 -2
- package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/lexer/lexer.d.ts +0 -7
- package/node_modules/@sema/nucleo/dist/lexer/lexer.js +0 -122
- package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/lexer/tokens.d.ts +0 -8
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js +0 -61
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +0 -9
- package/node_modules/@sema/nucleo/dist/parser/parser.js +0 -771
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.d.ts +0 -39
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +0 -294
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +0 -57
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +0 -1617
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +0 -104
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +0 -445
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.d.ts +0 -91
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.js +0 -258
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +0 -1
- package/node_modules/@sema/nucleo/dist/util/arquivos.d.ts +0 -2
- package/node_modules/@sema/nucleo/dist/util/arquivos.js +0 -25
- package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +0 -1
- package/node_modules/@sema/nucleo/package.json +0 -7
- package/node_modules/@sema/padroes/dist/index.d.ts +0 -25
- package/node_modules/@sema/padroes/dist/index.js +0 -316
- package/node_modules/@sema/padroes/dist/index.js.map +0 -1
- package/node_modules/@sema/padroes/package.json +0 -7
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
# Instalacao e Primeiro Uso
|
|
2
|
-
|
|
3
|
-
Este guia cobre o caminho publico atual da Sema para CLI, MCP e extensao.
|
|
4
|
-
|
|
5
|
-
## Requisitos
|
|
6
|
-
|
|
7
|
-
- Node.js LTS
|
|
8
|
-
- npm funcional
|
|
9
|
-
- Python 3 so se voce quiser rodar testes Python gerados
|
|
10
|
-
|
|
11
|
-
## CLI
|
|
12
|
-
|
|
13
|
-
Instalacao principal:
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npm install -g @semacode/cli
|
|
17
|
-
sema --help
|
|
18
|
-
sema doctor
|
|
19
|
-
sema docs-impacto --intencao "alterar projeto" --json
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Instalacao por release:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
npm install -g https://github.com/gerlanss/Sema/releases/latest/download/sema-cli-latest.tgz
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Instalacao local ao projeto:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
npm install @semacode/cli
|
|
32
|
-
npx sema --help
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## MCP
|
|
36
|
-
|
|
37
|
-
Se voce usa cliente MCP:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
npm install -g @semacode/mcp
|
|
41
|
-
sema-mcp
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Ou sem instalar:
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
npx -y @semacode/mcp
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
As ferramentas MCP incluem `sema_docs_impacto` e `sema_finalizar_mudanca` para obrigar agentes a ler e atualizar docs relacionadas antes de concluir alteracoes.
|
|
51
|
-
|
|
52
|
-
## Instaladores oficiais
|
|
53
|
-
|
|
54
|
-
Linux ou macOS:
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
curl -fsSL https://raw.githubusercontent.com/gerlanss/Sema/main/install-sema.sh | bash
|
|
58
|
-
curl -fsSL https://raw.githubusercontent.com/gerlanss/Sema/main/install-sema.sh | bash -s -- --with-vscode --with-mcp
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Windows PowerShell:
|
|
62
|
-
|
|
63
|
-
```powershell
|
|
64
|
-
Invoke-WebRequest -Uri https://raw.githubusercontent.com/gerlanss/Sema/main/install-sema.ps1 -OutFile install-sema.ps1
|
|
65
|
-
.\install-sema.ps1 -WithVSCode -WithMcp
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
Se quiser uma tag especifica, troque `main` pela versao desejada.
|
|
69
|
-
|
|
70
|
-
## Extensao VS Code
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
curl -L -o sema-language-tools.vsix https://github.com/gerlanss/Sema/releases/latest/download/sema-language-tools-latest.vsix
|
|
74
|
-
code --install-extension ./sema-language-tools.vsix --force
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
Ou baixe a VSIX antes e instale localmente.
|
|
78
|
-
|
|
79
|
-
## Primeiro teste
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
mkdir sema-demo
|
|
83
|
-
cd sema-demo
|
|
84
|
-
sema iniciar
|
|
85
|
-
sema validar contratos/pedidos.sema --json
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## Primeiro fluxo util
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
sema validar contratos/pedidos.sema --json
|
|
92
|
-
sema ir contratos/pedidos.sema --json
|
|
93
|
-
sema formatar contratos/pedidos.sema
|
|
94
|
-
sema verificar contratos --saida ./.tmp/verificacao
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
## Primeiro fluxo IA-first
|
|
98
|
-
|
|
99
|
-
```bash
|
|
100
|
-
sema inspecionar . --json
|
|
101
|
-
sema resumo contratos/pedidos.sema --micro --para onboarding
|
|
102
|
-
sema drift contratos/pedidos.sema --escopo modulo --json
|
|
103
|
-
sema impacto contratos/pedidos.sema --alvo pedido_id --mudanca "trocar pedido_id por pedido_uuid" --json
|
|
104
|
-
sema contexto-ia contratos/pedidos.sema --saida ./.tmp/contexto --json
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## Primeiro fluxo de persistencia vendor-first
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
sema validar contratos/sema/persistencia_vendor_first.sema --json
|
|
111
|
-
sema ir contratos/sema/persistencia_vendor_first.sema --json
|
|
112
|
-
```
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
# Integracao com IA
|
|
2
|
-
|
|
3
|
-
Sema foi feita para IA operar software vivo com menos adivinhacao.
|
|
4
|
-
|
|
5
|
-
## Ordem recomendada
|
|
6
|
-
|
|
7
|
-
1. `sema inspecionar . --json`
|
|
8
|
-
2. `sema resumo <arquivo-ou-pasta> --micro --para onboarding`
|
|
9
|
-
3. `sema drift <arquivo-ou-pasta> --json`
|
|
10
|
-
4. `sema contexto-ia <arquivo.sema> --saida <diretorio> --json`
|
|
11
|
-
|
|
12
|
-
Nao comece cavando codigo bruto quando a ferramenta ja consegue te dar contrato, score, lacuna e superficie viva.
|
|
13
|
-
|
|
14
|
-
## Por capacidade do modelo
|
|
15
|
-
|
|
16
|
-
IA pequena:
|
|
17
|
-
|
|
18
|
-
- `sema resumo --micro`
|
|
19
|
-
- `briefing.min.json`
|
|
20
|
-
- `prompt-curto.txt`
|
|
21
|
-
|
|
22
|
-
IA media:
|
|
23
|
-
|
|
24
|
-
- `sema resumo --curto`
|
|
25
|
-
- `drift.json`
|
|
26
|
-
- `briefing.min.json`
|
|
27
|
-
|
|
28
|
-
IA grande:
|
|
29
|
-
|
|
30
|
-
- `sema contexto-ia`
|
|
31
|
-
- `briefing.json`
|
|
32
|
-
- `ir.json`
|
|
33
|
-
- `ast.json`
|
|
34
|
-
|
|
35
|
-
## MCP
|
|
36
|
-
|
|
37
|
-
Se o agente usa MCP:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
npm install -g @semacode/cli @semacode/mcp
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Depois configure:
|
|
44
|
-
|
|
45
|
-
```json
|
|
46
|
-
{
|
|
47
|
-
"mcpServers": {
|
|
48
|
-
"sema": {
|
|
49
|
-
"command": "npx",
|
|
50
|
-
"args": ["-y", "@semacode/mcp"]
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
Ferramentas mais uteis no fluxo de mudanca:
|
|
57
|
-
|
|
58
|
-
- `sema_drift` para medir coerencia viva
|
|
59
|
-
- `sema_impacto` para dizer o que tocar
|
|
60
|
-
- `sema_renomear_semantico` para guiar troca de nomes sem misturar payload antigo e novo
|
|
61
|
-
- `sema_docs_impacto` para obrigar leitura das docs relacionadas antes de agir
|
|
62
|
-
- `sema_finalizar_mudanca` para bloquear conclusao sem leitura documental comprovada
|
|
63
|
-
|
|
64
|
-
As ferramentas MCP usam a CLI como backend operacional. Portanto, suporte de linguagem como Lua em `use`, `impl`, IR, `drift` e importacao fica disponivel no MCP quando `@semacode/cli` e `@semacode/mcp` estao na mesma linha publica.
|
|
65
|
-
|
|
66
|
-
## Portao documental
|
|
67
|
-
|
|
68
|
-
Antes de editar ou executar operacao sensivel, declare a intencao:
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
Leia todos os itens em `leituraObrigatoria`. Se `docsAusentes` vier preenchido, crie ou complete os documentos antes da acao.
|
|
75
|
-
|
|
76
|
-
Antes de concluir:
|
|
77
|
-
|
|
78
|
-
```bash
|
|
79
|
-
sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Se houver diagnostico de severidade 4+, a IA nao deve finalizar a mudanca.
|
|
83
|
-
|
|
84
|
-
## Regras praticas
|
|
85
|
-
|
|
86
|
-
- trate `.sema` e IR como fonte de verdade semantica
|
|
87
|
-
- trate `drift` como juiz da adocao incremental
|
|
88
|
-
- use `briefing.min.json` antes de abrir dezenas de arquivos
|
|
89
|
-
- nao invente sintaxe fora da gramatica oficial
|
|
90
|
-
- em persistencia, nao assuma que bancos diferentes tem o mesmo contrato operacional
|
|
91
|
-
|
|
92
|
-
## Arquivos uteis no repo
|
|
93
|
-
|
|
94
|
-
- `AGENTS.md`
|
|
95
|
-
- `llms.txt`
|
|
96
|
-
- `llms-full.txt`
|
|
97
|
-
- `SEMA_BRIEF.md`
|
|
98
|
-
- `SEMA_INDEX.json`
|
|
99
|
-
- `docs/persistencia-vendor-first.md`
|
|
100
|
-
- `docs/mcp.md`
|
|
101
|
-
- `docs/documentacao.md`
|
package/docs/mcp.md
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# MCP
|
|
2
|
-
|
|
3
|
-
O MCP da Sema e a porta de entrada para agentes que precisam obedecer contrato, ler contexto certo e fechar mudanca com verificacao rastreavel.
|
|
4
|
-
|
|
5
|
-
## Fluxo obrigatorio para agentes
|
|
6
|
-
|
|
7
|
-
Antes de uma acao operacional, a IA deve declarar a intencao e chamar:
|
|
8
|
-
|
|
9
|
-
```bash
|
|
10
|
-
sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
Via MCP, use `sema_docs_impacto` com a mesma intencao. A resposta contem `leituraObrigatoria` com caminhos, motivos e conteudo dos documentos existentes. Se algum documento obrigatorio estiver ausente, o resultado vem com bloqueio de severidade 4.
|
|
14
|
-
|
|
15
|
-
Antes de concluir, a IA deve comprovar leitura:
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
sema finalizar-mudanca --intencao "fazer deploy" --doc-lida docs/deploy.md --json
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
Via MCP, use `sema_finalizar_mudanca`.
|
|
22
|
-
|
|
23
|
-
## Ferramentas de documentacao
|
|
24
|
-
|
|
25
|
-
- `sema_docs_impacto`: resolve docs obrigatorias por intencao, arquivos alvo e categoria inferida.
|
|
26
|
-
- `sema_finalizar_mudanca`: bloqueia conclusao sem docs lidas ou docs ausentes.
|
|
27
|
-
|
|
28
|
-
## Quando criar docs
|
|
29
|
-
|
|
30
|
-
Se a intencao exige um runbook e ele nao existe, rode `sema_docs_impacto` com `criar_ausentes: true`. Exemplos:
|
|
31
|
-
|
|
32
|
-
- deploy: cria `docs/deploy.md`, `docs/env.md` e `docs/rollback.md`.
|
|
33
|
-
- rota/API: cria `docs/api.md`.
|
|
34
|
-
- auth: cria `docs/auth.md` e `docs/seguranca.md`.
|
|
35
|
-
- banco: cria `docs/database.md`.
|
|
36
|
-
- MCP: cria `docs/mcp.md`.
|
|
37
|
-
- extensao: cria `docs/extensao-vscode.md`.
|
|
38
|
-
|
|
39
|
-
O documento criado e um ponto de partida. A IA ainda deve preencher detalhes reais do projeto antes de executar a acao.
|
|
40
|
-
|
|
41
|
-
## Regra de conclusao
|
|
42
|
-
|
|
43
|
-
Uma mudanca nao deve ser considerada concluida enquanto `sema_finalizar_mudanca` retornar diagnostico de severidade 4 ou maior. Isso inclui:
|
|
44
|
-
|
|
45
|
-
- documento obrigatorio ausente
|
|
46
|
-
- leitura obrigatoria nao comprovada
|
|
47
|
-
- runbook criado mas ainda nao revisado para a operacao real
|
|
48
|
-
|
|
49
|
-
## Relacao com contratos
|
|
50
|
-
|
|
51
|
-
Essas ferramentas nao substituem `sema_resumo`, `sema_inspecionar`, `sema_drift` ou `sema_validar`. Elas adicionam o portao documental: a IA descobre o que ler e o que documentar antes de agir.
|
|
52
|
-
|
|
53
|
-
O MCP acompanha a semantica entregue pela CLI. Quando a CLI aceita uma origem viva, como Lua em `use`, `impl`, IR, `drift` e `sema importar`, a ferramenta MCP correspondente passa a operar esse contrato desde que CLI e MCP estejam na mesma versao.
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
# Pagamento Ponta a Ponta na Sema
|
|
2
|
-
|
|
3
|
-
Este documento descreve o vertical oficial de pagamento da Sema no fluxo publico atual.
|
|
4
|
-
|
|
5
|
-
O objetivo nao e mostrar um exemplo fofo. O objetivo e demonstrar que a linguagem ja consegue modelar um fluxo de negocio real com:
|
|
6
|
-
|
|
7
|
-
- contrato publico
|
|
8
|
-
- regras
|
|
9
|
-
- efeitos operacionais
|
|
10
|
-
- transicoes de estado
|
|
11
|
-
- orquestracao
|
|
12
|
-
- erros publicos
|
|
13
|
-
- testes executaveis
|
|
14
|
-
|
|
15
|
-
## Arquivos de referencia
|
|
16
|
-
|
|
17
|
-
- `exemplos/pagamento_dominio.sema`
|
|
18
|
-
- `exemplos/pagamento.sema`
|
|
19
|
-
|
|
20
|
-
## Como o vertical foi dividido
|
|
21
|
-
|
|
22
|
-
### `exemplos.pagamento.dominio`
|
|
23
|
-
|
|
24
|
-
Centraliza os contratos compartilhados:
|
|
25
|
-
|
|
26
|
-
- `entity Pagamento`
|
|
27
|
-
- `enum StatusPagamento`
|
|
28
|
-
- `state ciclo_pagamento`
|
|
29
|
-
|
|
30
|
-
### `exemplos.pagamento`
|
|
31
|
-
|
|
32
|
-
Centraliza a operacao do vertical:
|
|
33
|
-
|
|
34
|
-
- `task processar_pagamento`
|
|
35
|
-
- `task confirmar_pagamento`
|
|
36
|
-
- `task notificar_falha_pagamento`
|
|
37
|
-
- `task registrar_timeout_pagamento`
|
|
38
|
-
- `flow orquestracao_pagamento`
|
|
39
|
-
- `route processar_pagamento_publico`
|
|
40
|
-
|
|
41
|
-
## Narrativa do caso
|
|
42
|
-
|
|
43
|
-
### Entrada publica
|
|
44
|
-
|
|
45
|
-
A operacao entra por:
|
|
46
|
-
|
|
47
|
-
- `route processar_pagamento_publico`
|
|
48
|
-
|
|
49
|
-
Esse contrato publica:
|
|
50
|
-
|
|
51
|
-
- `pagamento_id`
|
|
52
|
-
- `valor`
|
|
53
|
-
- `token`
|
|
54
|
-
|
|
55
|
-
E expoe:
|
|
56
|
-
|
|
57
|
-
- `pagamento`
|
|
58
|
-
- `status`
|
|
59
|
-
- erros publicos coerentes com a `task`
|
|
60
|
-
|
|
61
|
-
### Task interna
|
|
62
|
-
|
|
63
|
-
A `task processar_pagamento` faz o trabalho central:
|
|
64
|
-
|
|
65
|
-
- valida entrada
|
|
66
|
-
- consulta o gateway
|
|
67
|
-
- persiste o pagamento
|
|
68
|
-
- emite evento
|
|
69
|
-
- notifica comprovante
|
|
70
|
-
- registra auditoria
|
|
71
|
-
- garante consistencia da saida
|
|
72
|
-
|
|
73
|
-
### Estado e transicoes
|
|
74
|
-
|
|
75
|
-
O `state ciclo_pagamento` ancora o contrato de transicao:
|
|
76
|
-
|
|
77
|
-
- `PENDENTE -> AUTORIZADO`
|
|
78
|
-
- `AUTORIZADO -> PROCESSADO`
|
|
79
|
-
- `PENDENTE -> RECUSADO`
|
|
80
|
-
|
|
81
|
-
A `task` explicita quais transicoes ela realmente usa.
|
|
82
|
-
|
|
83
|
-
### Flow de orquestracao
|
|
84
|
-
|
|
85
|
-
O `flow orquestracao_pagamento` demonstra:
|
|
86
|
-
|
|
87
|
-
- passagem de contexto
|
|
88
|
-
- confirmacao em caso de sucesso
|
|
89
|
-
- notificacao em caso de recusa
|
|
90
|
-
- registro de timeout em caso de indisponibilidade
|
|
91
|
-
- ramificacao por erro tipado
|
|
92
|
-
|
|
93
|
-
### Efeitos operacionais
|
|
94
|
-
|
|
95
|
-
O vertical usa as 5 categorias oficiais da Sema:
|
|
96
|
-
|
|
97
|
-
- `persistencia`
|
|
98
|
-
- `consulta`
|
|
99
|
-
- `evento`
|
|
100
|
-
- `notificacao`
|
|
101
|
-
- `auditoria`
|
|
102
|
-
|
|
103
|
-
Tambem usa `criticidade` para deixar claro o peso operacional do efeito.
|
|
104
|
-
|
|
105
|
-
### Falhas reais
|
|
106
|
-
|
|
107
|
-
O vertical cobre explicitamente:
|
|
108
|
-
|
|
109
|
-
- autorizacao negada
|
|
110
|
-
- saldo insuficiente
|
|
111
|
-
- timeout de gateway
|
|
112
|
-
|
|
113
|
-
## Fluxo de trabalho recomendado
|
|
114
|
-
|
|
115
|
-
### 1. Escrever ou ajustar os arquivos `.sema`
|
|
116
|
-
|
|
117
|
-
Use o dominio compartilhado em um modulo e a operacao em outro modulo.
|
|
118
|
-
|
|
119
|
-
### 2. Aplicar o formato canonico
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
sema formatar exemplos
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### 3. Validar semanticamente
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
sema validar exemplos/pagamento.sema
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### 4. Gerar codigo
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
sema compilar exemplos/pagamento.sema --alvo typescript --saida ./.tmp/pagamento-ts
|
|
135
|
-
sema compilar exemplos/pagamento.sema --alvo python --saida ./.tmp/pagamento-py
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
### 5. Verificar o vertical completo
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
sema verificar exemplos/pagamento.sema --json --saida ./.tmp/verificacao-pagamento
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## O que esse vertical prova
|
|
145
|
-
|
|
146
|
-
Se esse vertical passa, a Sema ja consegue demonstrar que:
|
|
147
|
-
|
|
148
|
-
- modela contrato publico
|
|
149
|
-
- modela efeitos operacionais
|
|
150
|
-
- modela falhas reais
|
|
151
|
-
- modulariza dominio com `use`
|
|
152
|
-
- gera artefatos coerentes para TypeScript e Python
|
|
153
|
-
- executa testes gerados sem gambiarra conceitual
|
|
154
|
-
|
|
155
|
-
Esse e o criterio pratico que sustenta o uso publico do vertical de pagamento como referencia para IA e geracao.
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
# Persistencia Vendor-First
|
|
2
|
-
|
|
3
|
-
Sema 1.5.7 trata banco como superficie semantica de primeira classe. Isso significa assumir diferencas reais entre engines e coloca-las no contrato, no semantico, no IR, no drift, no impact map, na renomeacao assistida, no `verificar` e na extensao. Nesta linha, o `drift` tambem materializa persistencia local real em `Preferences`, `localStorage` e `sessionStorage` quando a task esta ancorada no arquivo que usa essas APIs.
|
|
4
|
-
|
|
5
|
-
## Engines publicas
|
|
6
|
-
|
|
7
|
-
- `postgres`
|
|
8
|
-
- `mysql`
|
|
9
|
-
- `sqlite`
|
|
10
|
-
- `mongodb`
|
|
11
|
-
- `redis`
|
|
12
|
-
|
|
13
|
-
## Exemplo PostgreSQL
|
|
14
|
-
|
|
15
|
-
```sema
|
|
16
|
-
database principal_postgres {
|
|
17
|
-
engine: postgres
|
|
18
|
-
schema: public
|
|
19
|
-
consistency: forte
|
|
20
|
-
durability: alta
|
|
21
|
-
transaction_model: mvcc
|
|
22
|
-
query_model: sql
|
|
23
|
-
capabilities {
|
|
24
|
-
joins
|
|
25
|
-
views
|
|
26
|
-
foreign_keys
|
|
27
|
-
}
|
|
28
|
-
table pedidos {
|
|
29
|
-
entity: Pedido
|
|
30
|
-
}
|
|
31
|
-
relationship pedido_cliente {
|
|
32
|
-
from: Pedido
|
|
33
|
-
to: Cliente
|
|
34
|
-
}
|
|
35
|
-
query buscar_pedidos {
|
|
36
|
-
mode: sql
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Exemplo MySQL
|
|
42
|
-
|
|
43
|
-
```sema
|
|
44
|
-
database principal_mysql {
|
|
45
|
-
engine: mysql
|
|
46
|
-
consistency: forte
|
|
47
|
-
durability: alta
|
|
48
|
-
transaction_model: bloqueio
|
|
49
|
-
query_model: sql
|
|
50
|
-
table faturamento {
|
|
51
|
-
table: faturamento
|
|
52
|
-
}
|
|
53
|
-
index faturamento_status {
|
|
54
|
-
table: faturamento
|
|
55
|
-
}
|
|
56
|
-
query buscar_faturas {
|
|
57
|
-
mode: sql
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
## Exemplo SQLite
|
|
63
|
-
|
|
64
|
-
```sema
|
|
65
|
-
database principal_sqlite {
|
|
66
|
-
engine: sqlite
|
|
67
|
-
consistency: snapshot
|
|
68
|
-
durability: media
|
|
69
|
-
transaction_model: single_thread
|
|
70
|
-
query_model: sql
|
|
71
|
-
table cache_local {
|
|
72
|
-
table: cache_local
|
|
73
|
-
}
|
|
74
|
-
retention limpeza_local {
|
|
75
|
-
retention: "7d"
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## Exemplo MongoDB
|
|
81
|
-
|
|
82
|
-
```sema
|
|
83
|
-
database principal_mongodb {
|
|
84
|
-
engine: mongodb
|
|
85
|
-
consistency: eventual
|
|
86
|
-
durability: alta
|
|
87
|
-
transaction_model: documento
|
|
88
|
-
query_model: documento
|
|
89
|
-
collection pedidos {
|
|
90
|
-
collection: pedidos
|
|
91
|
-
}
|
|
92
|
-
document pedido_snapshot {
|
|
93
|
-
entity: PedidoSnapshot
|
|
94
|
-
}
|
|
95
|
-
query pipeline_pedido {
|
|
96
|
-
mode: pipeline
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Exemplo Redis
|
|
102
|
-
|
|
103
|
-
```sema
|
|
104
|
-
database principal_redis {
|
|
105
|
-
engine: redis
|
|
106
|
-
consistency: eventual
|
|
107
|
-
durability: media
|
|
108
|
-
transaction_model: single_thread
|
|
109
|
-
query_model: chave_valor
|
|
110
|
-
keyspace cache_pedidos {
|
|
111
|
-
ttl: "300s"
|
|
112
|
-
}
|
|
113
|
-
stream eventos_pedido {
|
|
114
|
-
surface: fila
|
|
115
|
-
}
|
|
116
|
-
retention expurgo_cache {
|
|
117
|
-
retention: "300s"
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Compatibilidade calculada
|
|
123
|
-
|
|
124
|
-
Cada recurso recebe compatibilidade por engine:
|
|
125
|
-
|
|
126
|
-
- `nativo`
|
|
127
|
-
- `adaptado`
|
|
128
|
-
- `parcial`
|
|
129
|
-
- `invalido`
|
|
130
|
-
|
|
131
|
-
Isso deixa explicito quando o contrato esta pedindo portabilidade falsa, por exemplo:
|
|
132
|
-
|
|
133
|
-
- `table` em `redis`
|
|
134
|
-
- `foreign_keys` em engine sem suporte equivalente
|
|
135
|
-
- transacao multi-documento tratada como universal
|
|
136
|
-
|
|
137
|
-
## Onde isso aparece
|
|
138
|
-
|
|
139
|
-
- parser e AST
|
|
140
|
-
- IR canonica
|
|
141
|
-
- analisador semantico
|
|
142
|
-
- formatador
|
|
143
|
-
- `sema drift`
|
|
144
|
-
- `sema importar`
|
|
145
|
-
- extensao VS Code
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
# Prompt-Base Oficial para IA Trabalhar com Sema
|
|
2
|
-
|
|
3
|
-
Este arquivo serve como prompt-base oficial para qualquer IA que precise ler, escrever, revisar ou transformar arquivos `.sema`.
|
|
4
|
-
|
|
5
|
-
O objetivo nao e fazer a IA "improvisar bonito". O objetivo e fazer a IA operar a linguagem com previsibilidade. A Sema nao foi desenhada para ergonomia humana como prioridade; ela foi desenhada para IA.
|
|
6
|
-
|
|
7
|
-
## Prompt-base
|
|
8
|
-
|
|
9
|
-
Use o texto abaixo como base:
|
|
10
|
-
|
|
11
|
-
```text
|
|
12
|
-
Voce esta trabalhando com Sema, um Protocolo de Governanca de Intencao para IA e backend vivo.
|
|
13
|
-
|
|
14
|
-
Tecnicamente, a Sema funciona como linguagem de intencao orientada a contrato. Operacionalmente, ela existe para governar semantica acima da stack e reduzir ambiguidade para IA, nao para substituir arquitetura, design ou curadoria humana.
|
|
15
|
-
|
|
16
|
-
Trate a Sema como linguagem de especificacao executavel e protocolo de governanca semantica. Nao invente sintaxe, palavras-chave ou blocos fora da gramatica e dos exemplos oficiais.
|
|
17
|
-
|
|
18
|
-
Fontes de verdade, em ordem:
|
|
19
|
-
1. se o projeto expuser `SEMA_CONTEXT.md`, comece por ele
|
|
20
|
-
2. `SEMA_BRIEF.md`
|
|
21
|
-
3. `SEMA_INDEX.json`
|
|
22
|
-
4. README do projeto
|
|
23
|
-
5. gramatica e documentacao de sintaxe da Sema
|
|
24
|
-
6. especificacao semantica da linguagem
|
|
25
|
-
7. exemplos oficiais, com prioridade para o vertical de pagamento
|
|
26
|
-
8. `sema resumo` e `briefing.min.json` quando a IA for pequena
|
|
27
|
-
9. AST, IR e diagnosticos exportados pela CLI em JSON quando a capacidade aguentar
|
|
28
|
-
|
|
29
|
-
Regras de operacao:
|
|
30
|
-
- preserve o significado semantico
|
|
31
|
-
- use o formatador oficial da Sema como fonte unica de estilo
|
|
32
|
-
- use diagnosticos estruturados como contrato de correcao
|
|
33
|
-
- use a IR como fonte de verdade semantica quando houver duvida
|
|
34
|
-
- nao conclua uma alteracao sem validar e verificar o modulo
|
|
35
|
-
- trate `importar` como bootstrap revisavel, nao como contrato final automatico
|
|
36
|
-
- trate `drift` como medicao de verdade contra codigo vivo
|
|
37
|
-
- trate `impl` como ponte entre task e simbolo real
|
|
38
|
-
- nao invente regra de negocio que o contrato e o codigo nao sustentem
|
|
39
|
-
|
|
40
|
-
Antes de editar `.sema`, entenda:
|
|
41
|
-
- o module alvo
|
|
42
|
-
- os contratos de task, route, error, effects, guarantees, state e flow
|
|
43
|
-
- os exemplos oficiais relacionados
|
|
44
|
-
|
|
45
|
-
Depois de editar `.sema`, execute este fluxo:
|
|
46
|
-
1. formatar
|
|
47
|
-
2. validar
|
|
48
|
-
3. diagnosticar, se houver falha
|
|
49
|
-
4. verificar
|
|
50
|
-
|
|
51
|
-
Se houver conflito entre texto livre e IR/diagnosticos, priorize a IR e os diagnosticos da CLI.
|
|
52
|
-
|
|
53
|
-
Se algo nao estiver claro, siga a forma ja usada nos exemplos oficiais. Nao improvise sem base.
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
## Variacao curta
|
|
57
|
-
|
|
58
|
-
Se voce quiser um prompt menor para uso frequente:
|
|
59
|
-
|
|
60
|
-
```text
|
|
61
|
-
Trabalhe com Sema como DSL semantica orientada a contrato. Nao invente sintaxe. Use os exemplos oficiais e a gramatica como referencia de escrita. Use `ir --json` como fonte de verdade semantica, `diagnosticos --json` como fonte de correcao e `sema formatar` como fonte unica de estilo. Antes de encerrar, rode validacao e verificacao.
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
Se voce quiser um prompt ainda mais curto e pronto para colar, use:
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
sema prompt-curto caminho/arquivo.sema --curto --para mudanca
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Variacao para revisao
|
|
71
|
-
|
|
72
|
-
Use esta versao quando a IA for revisar `.sema` em vez de criar:
|
|
73
|
-
|
|
74
|
-
```text
|
|
75
|
-
Revise este modulo Sema como contrato semantico executavel. Procure incoerencias entre input, output, rules, effects, guarantees, state, flow, route e error. Considere a IR e os diagnosticos da CLI como fonte de verdade. Nao critique estilo fora do que o formatador oficial resolveria automaticamente.
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
## Variacao para geracao
|
|
79
|
-
|
|
80
|
-
Use esta versao quando a IA for escrever modulo novo:
|
|
81
|
-
|
|
82
|
-
```text
|
|
83
|
-
Gere um modulo Sema seguindo a gramatica oficial, os exemplos do projeto e o estilo do formatador canonico. Estruture o modulo como contrato semantico executavel, com blocos explicitos para entrada, saida, regras, efeitos, garantias, erros, estado, fluxo e testes quando fizer sentido. Nao use sintaxe fora do repertorio ja suportado pela linguagem.
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## Variacao para correcao guiada por diagnostico
|
|
87
|
-
|
|
88
|
-
Use esta versao quando a IA ja tiver erro concreto para corrigir:
|
|
89
|
-
|
|
90
|
-
```text
|
|
91
|
-
Corrija este modulo Sema a partir dos diagnosticos estruturados da CLI. Preserve a intencao do contrato e altere apenas o necessario para eliminar as falhas. Depois da correcao, aplique o formatador oficial e revalide.
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
## O que sempre anexar junto do prompt
|
|
95
|
-
|
|
96
|
-
Idealmente, acompanhe o prompt com:
|
|
97
|
-
|
|
98
|
-
- o arquivo `.sema` alvo
|
|
99
|
-
- o resultado de `sema ast --json`
|
|
100
|
-
- o resultado de `sema ir --json`
|
|
101
|
-
- o resultado de `sema diagnosticos --json`, se houver erro
|
|
102
|
-
- um exemplo oficial parecido
|
|
103
|
-
|
|
104
|
-
Sem isso, a IA pode ate acertar. Com isso, ela trabalha direito.
|