@semacode/cli 1.5.16 → 1.5.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +272 -0
- package/LICENSE +22 -0
- package/README.md +104 -112
- package/SEMA_BRIEF.curto.txt +9 -0
- package/SEMA_BRIEF.md +63 -0
- package/SEMA_BRIEF.micro.txt +7 -0
- package/SEMA_INDEX.json +783 -0
- package/dist/angular-consumer-standalone.d.ts +6 -0
- package/dist/angular-consumer-standalone.js.map +1 -0
- package/dist/cpp-symbols.d.ts +10 -0
- package/dist/cpp-symbols.js.map +1 -0
- package/dist/docs.d.ts +56 -0
- package/dist/docs.js.map +1 -0
- package/dist/dotnet-http.d.ts +23 -0
- package/dist/dotnet-http.js.map +1 -0
- package/dist/drift.d.ts +225 -0
- package/dist/drift.js +5 -111
- package/dist/drift.js.map +1 -0
- package/dist/go-http.d.ts +23 -0
- package/dist/go-http.js.map +1 -0
- package/dist/importador.d.ts +31 -0
- package/dist/importador.js +1 -200
- package/dist/importador.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +59 -479
- package/dist/index.js.map +1 -0
- package/dist/java-http.d.ts +23 -0
- package/dist/java-http.js.map +1 -0
- package/dist/lua-symbols.d.ts +10 -0
- package/dist/lua-symbols.js.map +1 -0
- package/dist/php-symbols.d.ts +24 -0
- package/dist/php-symbols.js.map +1 -0
- package/dist/projeto.d.ts +53 -0
- package/dist/projeto.js +0 -20
- package/dist/projeto.js.map +1 -0
- package/dist/python-http.d.ts +23 -0
- package/dist/python-http.js.map +1 -0
- package/dist/rust-http.d.ts +23 -0
- package/dist/rust-http.js.map +1 -0
- package/dist/tipos.d.ts +3 -0
- package/dist/tipos.js.map +1 -0
- package/dist/typescript-http.d.ts +35 -0
- package/dist/typescript-http.js.map +1 -0
- package/docs/AGENT_STARTER.md +103 -0
- package/docs/cli.md +106 -0
- package/docs/como-ensinar-a-sema-para-ia.md +149 -0
- package/docs/deploy.md +70 -0
- package/docs/documentacao.md +63 -0
- package/docs/env.md +56 -0
- package/docs/extensao-vscode.md +45 -0
- package/docs/fluxo-pratico-ia-sema.md +181 -0
- package/docs/instalacao-e-primeiro-uso.md +112 -0
- package/docs/integracao-com-ia.md +103 -0
- package/docs/mcp.md +51 -0
- package/docs/pagamento-ponta-a-ponta.md +165 -0
- package/docs/persistencia-vendor-first.md +145 -0
- package/docs/prompt-base-ia-sema.md +105 -0
- package/docs/rollback.md +47 -0
- package/docs/sintaxe.md +212 -0
- package/exemplos/agendamento.sema +105 -0
- package/exemplos/assinatura.sema +133 -0
- package/exemplos/auditoria.sema +89 -0
- package/exemplos/autenticacao.sema +125 -0
- package/exemplos/automacao.sema +107 -0
- package/exemplos/cadastro_usuario.sema +54 -0
- package/exemplos/calculadora.sema +78 -0
- package/exemplos/crud_simples.sema +89 -0
- package/exemplos/estoque.sema +127 -0
- package/exemplos/exportacao.sema +94 -0
- package/exemplos/fila.sema +130 -0
- package/exemplos/integracao_externa.sema +94 -0
- package/exemplos/multi_tenant.sema +140 -0
- package/exemplos/notificacao.sema +149 -0
- package/exemplos/operacao_estrategia.sema +633 -0
- package/exemplos/pagamento.sema +434 -0
- package/exemplos/pagamento_dominio.sema +35 -0
- package/exemplos/pedido.sema +255 -0
- package/exemplos/permissao.sema +121 -0
- package/exemplos/persistencia_vendor_first.sema +86 -0
- package/exemplos/relatorio.sema +93 -0
- package/exemplos/replica_analitica_erp.sema +160 -0
- package/exemplos/testes_embutidos.sema +45 -0
- package/exemplos/tratamento_erro.sema +157 -0
- package/exemplos/upload_arquivo.sema +93 -0
- package/exemplos/webhook.sema +94 -0
- package/llms-full.txt +34 -0
- package/llms.txt +17 -0
- package/node_modules/@sema/gerador-css/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-css/dist/index.js +592 -0
- package/node_modules/@sema/gerador-css/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-css/package.json +7 -0
- package/node_modules/@sema/gerador-dart/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-dart/dist/index.js +44 -0
- package/node_modules/@sema/gerador-dart/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-dart/package.json +7 -0
- package/node_modules/@sema/gerador-html/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-html/dist/index.js +163 -0
- package/node_modules/@sema/gerador-html/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-html/package.json +7 -0
- package/node_modules/@sema/gerador-javascript/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-javascript/dist/index.js +421 -0
- package/node_modules/@sema/gerador-javascript/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-javascript/package.json +7 -0
- package/node_modules/@sema/gerador-lua/dist/index.d.ts +3 -0
- package/node_modules/@sema/gerador-lua/dist/index.js +328 -0
- package/node_modules/@sema/gerador-lua/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-lua/package.json +7 -0
- package/node_modules/@sema/gerador-python/dist/index.d.ts +6 -0
- package/node_modules/@sema/gerador-python/dist/index.js +729 -0
- package/node_modules/@sema/gerador-python/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-python/package.json +7 -0
- package/node_modules/@sema/gerador-typescript/dist/index.d.ts +6 -0
- package/node_modules/@sema/gerador-typescript/dist/index.js +793 -0
- package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -0
- package/node_modules/@sema/gerador-typescript/package.json +7 -0
- package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +123 -0
- package/node_modules/@sema/nucleo/dist/ast/tipos.js +2 -0
- package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.d.ts +21 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.js +12 -0
- package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +9 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.js +460 -0
- package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/index.d.ts +35 -0
- package/node_modules/@sema/nucleo/dist/index.js +96 -0
- package/node_modules/@sema/nucleo/dist/index.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +5 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.js +877 -0
- package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +345 -0
- package/node_modules/@sema/nucleo/dist/ir/modelos.js +2 -0
- package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/lexer/lexer.d.ts +7 -0
- package/node_modules/@sema/nucleo/dist/lexer/lexer.js +122 -0
- package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/lexer/tokens.d.ts +8 -0
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js +61 -0
- package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +9 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.js +767 -0
- package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.d.ts +39 -0
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js +294 -0
- package/node_modules/@sema/nucleo/dist/persistencia/contratos.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +59 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js +1681 -0
- package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +106 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +475 -0
- package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.d.ts +91 -0
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.js +258 -0
- package/node_modules/@sema/nucleo/dist/semantico/seguranca.js.map +1 -0
- package/node_modules/@sema/nucleo/dist/util/arquivos.d.ts +2 -0
- package/node_modules/@sema/nucleo/dist/util/arquivos.js +25 -0
- package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +1 -0
- package/node_modules/@sema/nucleo/package.json +7 -0
- package/node_modules/@sema/padroes/dist/index.d.ts +25 -0
- package/node_modules/@sema/padroes/dist/index.js +316 -0
- package/node_modules/@sema/padroes/dist/index.js.map +1 -0
- package/node_modules/@sema/padroes/package.json +7 -0
- package/package.json +32 -23
- package/semacode-cli-1.3.1.tgz +0 -0
- package/src/angular-consumer-standalone.ts +0 -312
- package/src/cpp-symbols.ts +0 -82
- package/src/docs.ts +0 -535
- package/src/dotnet-http.ts +0 -355
- package/src/drift.ts +0 -4933
- package/src/go-http.ts +0 -118
- package/src/importador.ts +0 -3891
- package/src/index.ts +0 -5641
- package/src/java-http.ts +0 -247
- package/src/lua-symbols.ts +0 -114
- package/src/php-symbols.ts +0 -462
- package/src/projeto.ts +0 -862
- package/src/python-http.ts +0 -258
- package/src/rust-http.ts +0 -125
- package/src/tipos.ts +0 -24
- package/src/typescript-http.ts +0 -1076
- package/tsconfig.json +0 -20
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Governanca de Documentacao
|
|
2
|
+
|
|
3
|
+
A Sema trata documentacao como parte da mudanca, nao como pos-escrito simpatico para alguem lembrar depois.
|
|
4
|
+
|
|
5
|
+
## Regra principal
|
|
6
|
+
|
|
7
|
+
Toda IA deve resolver documentacao obrigatoria antes de editar contrato, codigo, configuracao ou executar operacoes como deploy.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
sema docs-impacto --intencao "criar rota de pagamento" --arquivo contratos/pagamento.sema --json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Se o comando apontar docs ausentes, crie ou preencha essas docs antes da acao. Para criar runbooks base:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
sema docs-impacto --intencao "fazer deploy" --criar-ausentes --json
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Leitura obrigatoria
|
|
20
|
+
|
|
21
|
+
O resultado de `docs-impacto` traz:
|
|
22
|
+
|
|
23
|
+
- `leituraObrigatoria`: docs, readmes e contratos que devem ser lidos.
|
|
24
|
+
- `docsAusentes`: docs que bloqueiam a acao.
|
|
25
|
+
- `docsCriadas`: docs criadas automaticamente quando autorizado.
|
|
26
|
+
- `bloqueios`: diagnosticos de severidade 4.
|
|
27
|
+
|
|
28
|
+
O conteudo dos documentos existentes vem na resposta para que o agente realmente leia o material antes de agir.
|
|
29
|
+
|
|
30
|
+
## Finalizacao
|
|
31
|
+
|
|
32
|
+
Antes de responder que terminou, a IA deve chamar:
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
sema finalizar-mudanca --intencao "criar rota de pagamento" --doc-lida README.md --doc-lida docs/api.md --json
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Se faltar leitura ou documentacao, a conclusao deve ser bloqueada.
|
|
39
|
+
|
|
40
|
+
## Docs que podem nascer automaticamente
|
|
41
|
+
|
|
42
|
+
O Sema cria runbooks base para categorias operacionais:
|
|
43
|
+
|
|
44
|
+
- `docs/deploy.md`
|
|
45
|
+
- `docs/env.md`
|
|
46
|
+
- `docs/rollback.md`
|
|
47
|
+
- `docs/api.md`
|
|
48
|
+
- `docs/auth.md`
|
|
49
|
+
- `docs/seguranca.md`
|
|
50
|
+
- `docs/database.md`
|
|
51
|
+
- `docs/frontend.md`
|
|
52
|
+
- `docs/testes.md`
|
|
53
|
+
- `docs/mcp.md`
|
|
54
|
+
- `docs/documentacao.md`
|
|
55
|
+
- `docs/extensao-vscode.md`
|
|
56
|
+
|
|
57
|
+
Esses arquivos sao esqueletos seguros. Eles devem ser completados com detalhes reais do projeto quando a operacao exigir.
|
|
58
|
+
|
|
59
|
+
## O que nao fazer
|
|
60
|
+
|
|
61
|
+
- Nao concluir uma mudanca sem rodar o portao documental.
|
|
62
|
+
- Nao usar doc criada automaticamente como evidencia final se ela ainda esta generica.
|
|
63
|
+
- Nao editar codigo sem contrato e sem leitura das docs relacionadas.
|
package/docs/env.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Env
|
|
2
|
+
|
|
3
|
+
Ambiente necessario para publicar a Sema.
|
|
4
|
+
|
|
5
|
+
## Ferramentas
|
|
6
|
+
|
|
7
|
+
- Node.js LTS com `npm`.
|
|
8
|
+
- Git com acesso push ao remoto `origin`.
|
|
9
|
+
- GitHub CLI (`gh`) autenticado.
|
|
10
|
+
- VS Code CLI (`code`) para instalar a VSIX localmente.
|
|
11
|
+
- PowerShell no Windows.
|
|
12
|
+
|
|
13
|
+
## Variaveis suportadas pelos instaladores
|
|
14
|
+
|
|
15
|
+
- `SEMA_REPO`: repositorio GitHub usado para baixar assets. Padrao: `gerlanss/Sema`.
|
|
16
|
+
- `SEMA_NPM_PACKAGE`: pacote da CLI. Padrao: `@semacode/cli`.
|
|
17
|
+
- `SEMA_MCP_NPM_PACKAGE`: pacote do MCP. Padrao: `@semacode/mcp`.
|
|
18
|
+
- `SEMA_VERSION`: versao usada pelo `install-sema.sh`. Padrao: `latest`.
|
|
19
|
+
|
|
20
|
+
No PowerShell, o instalador recebe a versao por parametro:
|
|
21
|
+
|
|
22
|
+
```powershell
|
|
23
|
+
.\install-sema.ps1 -Version 1.5.18 -WithVSCode -WithMcp
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
No shell:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
SEMA_VERSION=1.5.18 ./install-sema.sh --with-vscode --with-mcp
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Credenciais
|
|
33
|
+
|
|
34
|
+
- NPM deve estar logado antes de publicar: `npm whoami`.
|
|
35
|
+
- GitHub CLI deve estar logado antes de criar release: `gh auth status`.
|
|
36
|
+
- Nunca registre tokens em docs, logs ou release notes.
|
|
37
|
+
|
|
38
|
+
## Registro NPM
|
|
39
|
+
|
|
40
|
+
Os pacotes publicos sao:
|
|
41
|
+
|
|
42
|
+
- `@semacode/cli`
|
|
43
|
+
- `@semacode/mcp`
|
|
44
|
+
|
|
45
|
+
Antes de publicar, confira:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
npm view @semacode/cli version
|
|
49
|
+
npm view @semacode/mcp version
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## GitHub Release
|
|
53
|
+
|
|
54
|
+
O tag publico deve seguir `v<versao>`, por exemplo `v1.5.18`.
|
|
55
|
+
|
|
56
|
+
Os assets ficam em `.tmp/release-assets` e sao derivados dos scripts versionados no repositorio.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Extensao VS Code
|
|
2
|
+
|
|
3
|
+
Runbook da extensao `Sema Language Tools`.
|
|
4
|
+
|
|
5
|
+
## Arquivos principais
|
|
6
|
+
|
|
7
|
+
- `pacotes/editor-vscode/package.json`
|
|
8
|
+
- `pacotes/editor-vscode/extension.js`
|
|
9
|
+
- `pacotes/editor-vscode/server.js`
|
|
10
|
+
- `pacotes/editor-vscode/README.md`
|
|
11
|
+
- `pacotes/editor-vscode/CHANGELOG.md`
|
|
12
|
+
|
|
13
|
+
## Empacotar
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm run extensao:empacotar
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
O pacote versionado deve aparecer em `.tmp/editor-vscode/sema-language-tools-<versao>.vsix`.
|
|
20
|
+
|
|
21
|
+
## Instalar localmente
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm run extensao:instalar-local
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Ou:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
code --install-extension .tmp/editor-vscode/sema-language-tools-<versao>.vsix --force
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Smoke test
|
|
34
|
+
|
|
35
|
+
1. Abra um projeto com `.sema`.
|
|
36
|
+
2. Confirme que o Language Server inicia sem crash.
|
|
37
|
+
3. Rode `Sema: Diagnosticar CLI`.
|
|
38
|
+
4. Rode `Sema: Sincronizar EntryPoints IA do Projeto`.
|
|
39
|
+
5. Abra um `.sema` e confirme diagnosticos, highlight e formatação.
|
|
40
|
+
|
|
41
|
+
## Cuidados
|
|
42
|
+
|
|
43
|
+
- O `extension.js` deve apontar o LSP para `server.js`.
|
|
44
|
+
- A extensao embute instrucoes de IA; atualize a lista de ferramentas MCP quando novos comandos forem adicionados.
|
|
45
|
+
- A versao da extensao deve bater com a versao publica preparada por `release:preparar-publica`.
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Fluxo Pratico para IA Antes de Editar `.sema`
|
|
2
|
+
|
|
3
|
+
Este documento descreve o fluxo operacional recomendado para qualquer IA antes, durante e depois de alterar arquivos `.sema`.
|
|
4
|
+
|
|
5
|
+
Se a IA seguir isso, ela trabalha com contexto. Se nao seguir, vira adivinhacao gourmet.
|
|
6
|
+
|
|
7
|
+
O ponto central: Sema nao e texto para agradar humano. E contrato semantico IA-first. Humanos autorizam e revisam; a IA consome o contrato para decidir o proximo movimento.
|
|
8
|
+
|
|
9
|
+
## Fluxo curto
|
|
10
|
+
|
|
11
|
+
1. ler contexto do projeto
|
|
12
|
+
2. identificar a capacidade da IA
|
|
13
|
+
3. identificar o modulo alvo
|
|
14
|
+
4. consultar o menor artefato semantico suficiente
|
|
15
|
+
5. editar
|
|
16
|
+
6. formatar
|
|
17
|
+
7. validar
|
|
18
|
+
8. verificar
|
|
19
|
+
|
|
20
|
+
## Fluxo detalhado
|
|
21
|
+
|
|
22
|
+
### Etapa 1. Ler contexto minimo
|
|
23
|
+
|
|
24
|
+
Antes de tocar em qualquer arquivo, a IA deve ler:
|
|
25
|
+
|
|
26
|
+
- [README.md](../README.md)
|
|
27
|
+
- [integracao-com-ia.md](./integracao-com-ia.md)
|
|
28
|
+
- [como-ensinar-a-sema-para-ia.md](./como-ensinar-a-sema-para-ia.md)
|
|
29
|
+
|
|
30
|
+
Se o trabalho estiver ligado a pagamento, ler tambem:
|
|
31
|
+
|
|
32
|
+
- [pagamento-ponta-a-ponta.md](./pagamento-ponta-a-ponta.md)
|
|
33
|
+
|
|
34
|
+
### Etapa 2. Escolher a faixa de capacidade
|
|
35
|
+
|
|
36
|
+
Antes de despejar contexto na IA, escolha o que ela aguenta:
|
|
37
|
+
|
|
38
|
+
- IA pequena ou gratuita: `sema resumo --micro` e `briefing.min.json`
|
|
39
|
+
- IA media: `sema resumo --curto`, `briefing.min.json` e `drift.json`
|
|
40
|
+
- IA grande: `contexto-ia`, `briefing.json`, `drift.json`, `ir.json` e `ast.json`
|
|
41
|
+
|
|
42
|
+
### Etapa 3. Ler o modulo alvo e um exemplo parecido
|
|
43
|
+
|
|
44
|
+
A IA deve identificar:
|
|
45
|
+
|
|
46
|
+
- qual arquivo sera editado
|
|
47
|
+
- qual modulo esse arquivo representa
|
|
48
|
+
- qual exemplo oficial mais se parece com o que precisa ser feito
|
|
49
|
+
|
|
50
|
+
Regra pratica:
|
|
51
|
+
|
|
52
|
+
- automacao: [automacao.sema](../exemplos/automacao.sema)
|
|
53
|
+
- erros e fluxos de falha: [tratamento_erro.sema](../exemplos/tratamento_erro.sema)
|
|
54
|
+
- borda publica e pagamento: [pagamento.sema](../exemplos/pagamento.sema)
|
|
55
|
+
|
|
56
|
+
### Etapa 4. Consultar AST e IR quando fizer sentido
|
|
57
|
+
|
|
58
|
+
Antes de alterar, a IA deve executar:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
sema resumo caminho/arquivo.sema --curto --para mudanca
|
|
62
|
+
sema ast caminho/arquivo.sema --json
|
|
63
|
+
sema ir caminho/arquivo.sema --json
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Objetivo:
|
|
67
|
+
|
|
68
|
+
- ver a forma sintatica quando a capacidade aguentar
|
|
69
|
+
- ver a forma semantica resolvida quando a capacidade aguentar
|
|
70
|
+
- evitar interpretar errado o contrato
|
|
71
|
+
|
|
72
|
+
### Etapa 5. Editar o `.sema`
|
|
73
|
+
|
|
74
|
+
Ao editar, a IA deve:
|
|
75
|
+
|
|
76
|
+
- preservar a intencao do modulo
|
|
77
|
+
- seguir a gramatica existente
|
|
78
|
+
- evitar criar bloco ou operador nao suportado
|
|
79
|
+
- preferir a forma ja usada nos exemplos oficiais
|
|
80
|
+
- usar blocos existentes como `auth`, `authz`, `dados`, `audit`, `forbidden`, `execucao`, `use`, `state` e `enum` antes de propor sintaxe nova
|
|
81
|
+
- evitar teste fraco em task sensivel; `expect { sucesso: verdadeiro }` sozinho nao prova semantica operacional
|
|
82
|
+
|
|
83
|
+
### Etapa 6. Formatar
|
|
84
|
+
|
|
85
|
+
Depois da edicao:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
sema formatar caminho/arquivo.sema
|
|
89
|
+
sema formatar caminho/arquivo.sema --check
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Se `--check` falhar, o trabalho ainda nao esta pronto.
|
|
93
|
+
|
|
94
|
+
### Etapa 7. Validar e diagnosticar
|
|
95
|
+
|
|
96
|
+
Depois da formatacao:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
sema validar caminho/arquivo.sema --json
|
|
100
|
+
sema diagnosticos caminho/arquivo.sema --json
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Se houver falha:
|
|
104
|
+
|
|
105
|
+
- usar os diagnosticos estruturados como contrato de correcao
|
|
106
|
+
- nao insistir em leitura manual teimosa quando a CLI ja disse onde esta a merda
|
|
107
|
+
|
|
108
|
+
### Etapa 7.5. Compilar quando a tarefa pedir codigo derivado
|
|
109
|
+
|
|
110
|
+
Se a tarefa nao for so editar contrato, mas tambem gerar base de implementacao, a IA deve rodar explicitamente:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Ou trocar o alvo para `python` ou `dart`, conforme o caso.
|
|
117
|
+
|
|
118
|
+
Regra pratica:
|
|
119
|
+
|
|
120
|
+
- se a entrega inclui codigo derivado, `sema compilar` nao e opcional
|
|
121
|
+
- se a IA ignorar `compilar`, ela pode acabar reescrevendo na mao coisa que a Sema ja gera sozinha, que e burrice operacional
|
|
122
|
+
|
|
123
|
+
### Etapa 8. Verificar
|
|
124
|
+
|
|
125
|
+
No fechamento:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
sema verificar arquivo-ou-pasta --json --saida ./.tmp/verificacao-ia
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Fluxo minimo para automacao
|
|
132
|
+
|
|
133
|
+
Se voce quiser o menor fluxo aceitavel para uma IA pequena:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
sema resumo caminho/arquivo.sema --micro --para mudanca
|
|
137
|
+
sema formatar caminho/arquivo.sema
|
|
138
|
+
sema validar caminho/arquivo.sema --json
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Mas, sendo sincero, o fluxo bom mesmo e fechar com `verificar`.
|
|
142
|
+
|
|
143
|
+
Se a tarefa envolver codigo derivado, o fluxo minimo aceitavel vira:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
sema ir caminho/arquivo.sema --json
|
|
147
|
+
sema formatar caminho/arquivo.sema
|
|
148
|
+
sema validar caminho/arquivo.sema --json
|
|
149
|
+
sema compilar caminho/arquivo.sema --alvo typescript --saida ./saida/typescript
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Checklist de saida
|
|
153
|
+
|
|
154
|
+
Antes de considerar a alteracao pronta, a IA deve responder mentalmente:
|
|
155
|
+
|
|
156
|
+
- eu entendi o modulo e o contrato?
|
|
157
|
+
- eu mantive a sintaxe dentro do que a linguagem suporta?
|
|
158
|
+
- eu formatei o arquivo?
|
|
159
|
+
- eu validei?
|
|
160
|
+
- eu olhei diagnosticos se algo falhou?
|
|
161
|
+
- eu fechei com verificacao?
|
|
162
|
+
|
|
163
|
+
Se alguma resposta for "nao", ainda nao terminou.
|
|
164
|
+
|
|
165
|
+
## Regra de ouro
|
|
166
|
+
|
|
167
|
+
Em Sema, a IA nao deveria operar no escuro.
|
|
168
|
+
|
|
169
|
+
Ela deve trabalhar sempre com:
|
|
170
|
+
|
|
171
|
+
- exemplo oficial
|
|
172
|
+
- AST
|
|
173
|
+
- IR
|
|
174
|
+
- diagnosticos
|
|
175
|
+
- formatador
|
|
176
|
+
|
|
177
|
+
Esse conjunto e o que faz a linguagem ser amigavel para IA de verdade, e nao so no discurso bonito.
|
|
178
|
+
|
|
179
|
+
## Observacao sobre caminhos
|
|
180
|
+
|
|
181
|
+
Esta documentacao usa placeholders de arquivo e pasta, nao caminhos do monorepo da Sema. A IA deve adaptar isso ao projeto atual e continuar tratando `sema` como interface publica principal.
|
|
@@ -0,0 +1,112 @@
|
|
|
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
|
+
```
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Integracao com IA
|
|
2
|
+
|
|
3
|
+
Sema foi feita para IA operar software vivo com menos adivinhacao. O consumidor principal nao e o humano lendo arquivo bonito; e o agente decidindo o que pode tocar, que efeito vai causar e como validar antes de mexer no codigo vivo.
|
|
4
|
+
|
|
5
|
+
Humanos entram como autores, revisores e aprovadores do contrato. A ponte da Sema e da intencao operacional para um formato que IA consegue consumir sem transformar contexto em chute.
|
|
6
|
+
|
|
7
|
+
## Ordem recomendada
|
|
8
|
+
|
|
9
|
+
1. `sema inspecionar . --json`
|
|
10
|
+
2. `sema resumo <arquivo-ou-pasta> --micro --para onboarding`
|
|
11
|
+
3. `sema drift <arquivo-ou-pasta> --json`
|
|
12
|
+
4. `sema contexto-ia <arquivo.sema> --saida <diretorio> --json`
|
|
13
|
+
|
|
14
|
+
Nao comece cavando codigo bruto quando a ferramenta ja consegue te dar contrato, score, lacuna e superficie viva.
|
|
15
|
+
|
|
16
|
+
## Por capacidade do modelo
|
|
17
|
+
|
|
18
|
+
IA pequena:
|
|
19
|
+
|
|
20
|
+
- `sema resumo --micro`
|
|
21
|
+
- `briefing.min.json`
|
|
22
|
+
- `prompt-curto.txt`
|
|
23
|
+
|
|
24
|
+
IA media:
|
|
25
|
+
|
|
26
|
+
- `sema resumo --curto`
|
|
27
|
+
- `drift.json`
|
|
28
|
+
- `briefing.min.json`
|
|
29
|
+
|
|
30
|
+
IA grande:
|
|
31
|
+
|
|
32
|
+
- `sema contexto-ia`
|
|
33
|
+
- `briefing.json`
|
|
34
|
+
- `ir.json`
|
|
35
|
+
- `ast.json`
|
|
36
|
+
|
|
37
|
+
## MCP
|
|
38
|
+
|
|
39
|
+
Se o agente usa MCP:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm install -g @semacode/cli @semacode/mcp
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Depois configure:
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"mcpServers": {
|
|
50
|
+
"sema": {
|
|
51
|
+
"command": "npx",
|
|
52
|
+
"args": ["-y", "@semacode/mcp"]
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Ferramentas mais uteis no fluxo de mudanca:
|
|
59
|
+
|
|
60
|
+
- `sema_drift` para medir coerencia viva
|
|
61
|
+
- `sema_impacto` para dizer o que tocar
|
|
62
|
+
- `sema_renomear_semantico` para guiar troca de nomes sem misturar payload antigo e novo
|
|
63
|
+
- `sema_docs_impacto` para obrigar leitura das docs relacionadas antes de agir
|
|
64
|
+
- `sema_finalizar_mudanca` para bloquear conclusao sem leitura documental comprovada
|
|
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 humanos como donos/aprovadores e agentes como consumidores primarios do contrato
|
|
88
|
+
- trate `drift` como juiz da adocao incremental
|
|
89
|
+
- use `briefing.min.json` antes de abrir dezenas de arquivos
|
|
90
|
+
- nao invente sintaxe fora da gramatica oficial
|
|
91
|
+
- em task sensivel, teste que valida apenas `sucesso` e fraco; inclua output, erro esperado ou garantia observavel
|
|
92
|
+
- em persistencia, nao assuma que bancos diferentes tem o mesmo contrato operacional
|
|
93
|
+
|
|
94
|
+
## Arquivos uteis no repo
|
|
95
|
+
|
|
96
|
+
- `AGENTS.md`
|
|
97
|
+
- `llms.txt`
|
|
98
|
+
- `llms-full.txt`
|
|
99
|
+
- `SEMA_BRIEF.md`
|
|
100
|
+
- `SEMA_INDEX.json`
|
|
101
|
+
- `docs/persistencia-vendor-first.md`
|
|
102
|
+
- `docs/mcp.md`
|
|
103
|
+
- `docs/documentacao.md`
|
package/docs/mcp.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
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.
|