ai-execution-protocol 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +12 -1
- package/README.md +54 -2
- package/behavior/audit-checklist.yaml +55 -0
- package/behavior/contract.yaml +156 -0
- package/dataset/README.md +38 -0
- package/dataset/raw-examples.md +36 -0
- package/dataset/train.jsonl +3 -0
- package/dataset/validation.jsonl +2 -0
- package/dist/minimal/AGENTS.md +8 -1
- package/dist/minimal/README.md +3 -0
- package/dist/minimal/behavior/audit-checklist.yaml +15 -0
- package/dist/minimal/behavior/contract.yaml +29 -0
- package/dist/minimal/canonical-state.yaml +1 -1
- package/dist/minimal/capabilities/registry.yaml +48 -0
- package/dist/minimal/context-map.yaml +2 -1
- package/dist/minimal/ide-rules/instruction-block.md +23 -0
- package/dist/minimal/memory/INDEX.yaml +1 -1
- package/dist/minimal/protocol/README.yaml +11 -1
- package/dist/minimal/protocol/capability-gate.yaml +56 -0
- package/dist/minimal/protocol/capability-router.yaml +123 -0
- package/dist/minimal/protocol/context-rules.yaml +2 -1
- package/dist/minimal/protocol/fast-path.yaml +8 -1
- package/dist/minimal/protocol/intelligence-router.yaml +63 -0
- package/dist/minimal/protocol/route-packs.yaml +49 -1
- package/dist/minimal/protocol/router.yaml +35 -1
- package/docs/00-visao-geral.md +41 -0
- package/docs/01-modelo-de-execucao.md +25 -0
- package/docs/02-niveis-de-risco.md +62 -0
- package/docs/03-mapeamento-antes-de-alterar.md +48 -0
- package/docs/04-janela-de-contexto.md +56 -0
- package/docs/05-validacao-e-entrega.md +48 -0
- package/docs/06-memoria-e-continuidade.md +27 -0
- package/docs/07-legibilidade-para-ia.md +47 -0
- package/docs/08-posicionamento.md +48 -0
- package/docs/09-governanca-de-mudancas.md +48 -0
- package/docs/10-economia-de-prompt.md +79 -0
- package/docs/11-retencao-de-resultados.md +26 -0
- package/docs/12-instalacao-em-outro-projeto.md +254 -0
- package/docs/13-uso-em-ides.md +137 -0
- package/docs/14-publicacao.md +128 -0
- package/docs/15-contexto-persistente.md +204 -0
- package/docs/16-release-e-atualizacao.md +146 -0
- package/docs/17-documentacao-atomica.md +117 -0
- package/docs/18-memoria-adaptativa.md +107 -0
- package/docs/19-orcamento-de-contexto.md +63 -0
- package/docs/20-validacao-seletiva.md +46 -0
- package/docs/21-roteamento-de-capacidades.md +121 -0
- package/docs/22-roadmap-v1.md +163 -0
- package/docs/23-contrato-comportamental.md +116 -0
- package/docs/24-gate-de-capacidades-e-inteligencia.md +109 -0
- package/docs/README.md +58 -0
- package/eval/README.md +27 -0
- package/eval/rubric.yaml +57 -0
- package/eval/sample-result.yaml +28 -0
- package/install-manifest.json +38 -2
- package/package.json +9 -2
- package/protocol/README.yaml +11 -1
- package/protocol/capability-gate.yaml +56 -0
- package/protocol/capability-router.yaml +123 -0
- package/protocol/context-rules.yaml +2 -1
- package/protocol/fast-path.yaml +8 -1
- package/protocol/intelligence-router.yaml +63 -0
- package/protocol/route-packs.yaml +49 -1
- package/protocol/router.yaml +35 -1
- package/roadmap/v1.yaml +139 -0
- package/schema/README.md +26 -0
- package/schema/behavior-contract.schema.json +31 -0
- package/schema/capability-registry.schema.json +51 -0
- package/schema/evaluated-response.schema.json +27 -0
- package/schema/evaluation-result.schema.json +32 -0
- package/schema/memory-entry.schema.json +55 -0
- package/schema/protocol-rule.schema.json +16 -0
- package/schema/protocol-rule.schema.yaml +28 -0
- package/schema/test-case.schema.json +44 -0
- package/schema/test-case.schema.yaml +37 -0
- package/scripts/README.md +79 -1
- package/scripts/build_dist.py +3 -0
- package/scripts/npm_install_protocol.js +60 -1
- package/scripts/verify_install.py +25 -0
- package/templates/minimal/AGENTS.md +8 -1
- package/templates/minimal/behavior/audit-checklist.yaml +15 -0
- package/templates/minimal/behavior/contract.yaml +29 -0
- package/templates/minimal/canonical-state.yaml +1 -1
- package/templates/minimal/capabilities/registry.yaml +48 -0
- package/templates/minimal/context-map.yaml +2 -1
- package/templates/minimal/ide-rules/instruction-block.md +23 -0
- package/templates/minimal/memory/INDEX.yaml +1 -1
- package/templates/minimal/protocol/capability-gate.yaml +10 -0
- package/templates/minimal/protocol/intelligence-router.yaml +10 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# 13 - Uso em IDEs
|
|
2
|
+
|
|
3
|
+
## Ideia central
|
|
4
|
+
|
|
5
|
+
O protocolo deve ser facil de instalar e seguro para conviver com regras ja
|
|
6
|
+
existentes da IDE ou do projeto.
|
|
7
|
+
|
|
8
|
+
## Comando facil
|
|
9
|
+
|
|
10
|
+
Na raiz deste framework, use sempre a mesma memoria:
|
|
11
|
+
|
|
12
|
+
```powershell
|
|
13
|
+
.\install.ps1 C:\caminho\projeto -Force
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Se a IDE usa bem npm:
|
|
17
|
+
|
|
18
|
+
```powershell
|
|
19
|
+
npm run install-protocol -- C:\caminho\projeto
|
|
20
|
+
npm run dry-run-protocol -- C:\caminho\projeto
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Depois de publicar como pacote:
|
|
24
|
+
|
|
25
|
+
```powershell
|
|
26
|
+
npm install -g ai-execution-protocol
|
|
27
|
+
ai-protocol install C:\caminho\projeto
|
|
28
|
+
ai-protocol install C:\caminho\projeto --dry-run
|
|
29
|
+
ai-protocol integrate C:\caminho\projeto --dry-run
|
|
30
|
+
ai-protocol integrate C:\caminho\projeto --yes
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Via Python instalado:
|
|
34
|
+
|
|
35
|
+
```powershell
|
|
36
|
+
pip install ai-execution-protocol
|
|
37
|
+
ai-protocol install C:\caminho\projeto
|
|
38
|
+
ai-protocol verify C:\caminho\projeto
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Se o terminal da IDE ja estiver no projeto alvo:
|
|
42
|
+
|
|
43
|
+
```powershell
|
|
44
|
+
C:\caminho\ai-research\install.ps1 . -Force
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
No CMD:
|
|
48
|
+
|
|
49
|
+
```bat
|
|
50
|
+
install.bat C:\caminho\projeto
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
O `install.ps1` ja gera o pacote minimo, instala e verifica. O final esperado e
|
|
54
|
+
`PASS`.
|
|
55
|
+
|
|
56
|
+
O npm instala direto via Node. Ele nao muda o comportamento do protocolo e nao
|
|
57
|
+
depende de PowerShell.
|
|
58
|
+
|
|
59
|
+
No uso por pacote, `npm install` e `pip install` instalam a CLI. A alteracao no
|
|
60
|
+
projeto so acontece quando o usuario roda `ai-protocol install <projeto>`.
|
|
61
|
+
|
|
62
|
+
`ai-protocol integrate <projeto> --yes` e opcional. Ele escreve apenas blocos
|
|
63
|
+
marcados em arquivos de instrucao de IDE e cria backup antes de alterar arquivo
|
|
64
|
+
existente.
|
|
65
|
+
|
|
66
|
+
## Comportamento por IDE
|
|
67
|
+
|
|
68
|
+
- Codex: usa `AGENTS.md` como instrucao raiz do workspace.
|
|
69
|
+
- Cursor: pode receber bloco marcado em `.cursorrules` e `.cursor/rules/`.
|
|
70
|
+
- Claude Code: pode receber bloco marcado em `CLAUDE.md`.
|
|
71
|
+
- GitHub Copilot: pode receber bloco marcado em `.github/copilot-instructions.md`.
|
|
72
|
+
- Outras IDEs: o protocolo continua disponivel em `AGENTS.md` e `protocol/`.
|
|
73
|
+
|
|
74
|
+
## Convivencia com arquivos do usuario
|
|
75
|
+
|
|
76
|
+
O instalador nao apaga documentos do projeto por padrao.
|
|
77
|
+
|
|
78
|
+
Ele faz:
|
|
79
|
+
|
|
80
|
+
- injeta bloco `AI_PROTOCOL_BEGIN` em `AGENTS.md`;
|
|
81
|
+
- mantem instrucoes antigas abaixo do bloco;
|
|
82
|
+
- adiciona entradas faltantes em `.aiignore`;
|
|
83
|
+
- copia `protocol/`;
|
|
84
|
+
- cria backup antes de substituir `protocol/` com `-Force`.
|
|
85
|
+
|
|
86
|
+
O comando `install` nao altera:
|
|
87
|
+
|
|
88
|
+
- `README.md`;
|
|
89
|
+
- `docs/`;
|
|
90
|
+
- `.cursorrules`;
|
|
91
|
+
- `CLAUDE.md`;
|
|
92
|
+
- `.github/copilot-instructions.md`;
|
|
93
|
+
- configs de Next, Vite, Django, Laravel, Rails ou outros frameworks.
|
|
94
|
+
|
|
95
|
+
O comando `integrate --yes` pode alterar somente:
|
|
96
|
+
|
|
97
|
+
- `CLAUDE.md`;
|
|
98
|
+
- `.cursorrules`;
|
|
99
|
+
- `.github/copilot-instructions.md`;
|
|
100
|
+
- `.cursor/rules/ai-execution-protocol.mdc`.
|
|
101
|
+
|
|
102
|
+
Cada alteracao usa marcadores `AI_PROTOCOL_IDE_BEGIN` e
|
|
103
|
+
`AI_PROTOCOL_IDE_END`, entao uma nova execucao atualiza o mesmo bloco em vez de
|
|
104
|
+
duplicar texto.
|
|
105
|
+
|
|
106
|
+
Com documentos e frameworks do usuario, o comportamento esperado e:
|
|
107
|
+
|
|
108
|
+
- preservar os arquivos existentes;
|
|
109
|
+
- ler docs do projeto somente quando a rota exigir contexto;
|
|
110
|
+
- tratar docs antigos, gerados ou historicos como nao confiaveis ate verificar;
|
|
111
|
+
- usar configs de framework como fonte tecnica quando a tarefa tocar aquele
|
|
112
|
+
framework;
|
|
113
|
+
- nao copiar regras do protocolo para varios arquivos da IDE.
|
|
114
|
+
|
|
115
|
+
## Ordem de prioridade
|
|
116
|
+
|
|
117
|
+
Quando houver conflito, a IA deve seguir:
|
|
118
|
+
|
|
119
|
+
1. pedido atual do usuario;
|
|
120
|
+
2. bloco obrigatorio em `AGENTS.md`;
|
|
121
|
+
3. regras especificas da IDE ou do projeto;
|
|
122
|
+
4. docs e historico somente quando a rota pedir.
|
|
123
|
+
|
|
124
|
+
## Regra pratica
|
|
125
|
+
|
|
126
|
+
Use um comando e confira o `PASS`.
|
|
127
|
+
|
|
128
|
+
```text
|
|
129
|
+
install.ps1 <projeto> -Force
|
|
130
|
+
npm run install-protocol -- <projeto>
|
|
131
|
+
ai-protocol install <projeto>
|
|
132
|
+
ai-protocol install <projeto> --dry-run
|
|
133
|
+
ai-protocol integrate <projeto> --yes
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Se `PASS` aparecer, a IA pode tratar o protocolo como ativo naquele projeto.
|
|
137
|
+
Se a IDE nao ler `AGENTS.md`, rode tambem `integrate --yes`.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# 14 - Publicacao
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
|
|
5
|
+
Preparar este framework para publicacao sem expor informacao privada e sem
|
|
6
|
+
vender a ideia como pronta demais.
|
|
7
|
+
|
|
8
|
+
## Posicionamento publico
|
|
9
|
+
|
|
10
|
+
Use termos como:
|
|
11
|
+
|
|
12
|
+
- framework experimental;
|
|
13
|
+
- pesquisa em evolucao;
|
|
14
|
+
- proposta tecnica;
|
|
15
|
+
- protocolo conceitual;
|
|
16
|
+
- metodologia para agentes de IA.
|
|
17
|
+
|
|
18
|
+
Evite prometer que o protocolo elimina risco, substitui revisao humana ou
|
|
19
|
+
garante seguranca. A mensagem correta e: o framework reduz risco operacional ao
|
|
20
|
+
forcar contexto minimo, classificacao de risco, validacao e entrega com
|
|
21
|
+
evidencia.
|
|
22
|
+
|
|
23
|
+
## Arquivos recomendados para publicar
|
|
24
|
+
|
|
25
|
+
Publicacao base:
|
|
26
|
+
|
|
27
|
+
- `README.md`
|
|
28
|
+
- `LICENSE`
|
|
29
|
+
- `.gitignore`
|
|
30
|
+
- `AGENTS.md`
|
|
31
|
+
- `INDEX.yaml`
|
|
32
|
+
- `config.yaml`
|
|
33
|
+
- `docs/`
|
|
34
|
+
- `protocol/`
|
|
35
|
+
- `cases/`
|
|
36
|
+
- `examples/`
|
|
37
|
+
- `schema/`
|
|
38
|
+
- `eval/`
|
|
39
|
+
- `scripts/`
|
|
40
|
+
- `responses/`
|
|
41
|
+
- `prompts/`
|
|
42
|
+
- `package.json`
|
|
43
|
+
- `pyproject.toml`
|
|
44
|
+
- `requirements.txt`
|
|
45
|
+
- `install.ps1`
|
|
46
|
+
- `install.bat`
|
|
47
|
+
|
|
48
|
+
Arquivos gerados ou historicos devem ficar fora do Git quando nao forem
|
|
49
|
+
necessarios para explicar o framework:
|
|
50
|
+
|
|
51
|
+
- `build/`
|
|
52
|
+
- `dist/`
|
|
53
|
+
- `results/`
|
|
54
|
+
- `benchmarks/generated/`
|
|
55
|
+
- `model-runs/generated/`
|
|
56
|
+
- `*.tgz`
|
|
57
|
+
- `*.whl`
|
|
58
|
+
- `*.tar.gz`
|
|
59
|
+
- `__pycache__/`
|
|
60
|
+
- `*.egg-info/`
|
|
61
|
+
|
|
62
|
+
## Checklist de privacidade
|
|
63
|
+
|
|
64
|
+
Antes de publicar, confira se nao existe:
|
|
65
|
+
|
|
66
|
+
- `.env` ou arquivo local de configuracao;
|
|
67
|
+
- senha;
|
|
68
|
+
- token;
|
|
69
|
+
- chave de API;
|
|
70
|
+
- certificado privado;
|
|
71
|
+
- dado de cliente;
|
|
72
|
+
- log real;
|
|
73
|
+
- print com informacao sensivel;
|
|
74
|
+
- nome de projeto privado que voce nao quer expor;
|
|
75
|
+
- caminho local sensivel em exemplo publico.
|
|
76
|
+
|
|
77
|
+
Se algo sensivel ja entrou no historico do Git, apagar o arquivo depois pode
|
|
78
|
+
nao ser suficiente. Nesse caso, trate como remocao de dado sensivel do
|
|
79
|
+
historico antes de publicar.
|
|
80
|
+
|
|
81
|
+
## Checklist tecnico
|
|
82
|
+
|
|
83
|
+
1. Confirme que `.gitignore` cobre dependencias, builds, logs e segredos.
|
|
84
|
+
2. Confirme que `README.md` explica objetivo, status, estrutura e validacao.
|
|
85
|
+
3. Confirme que `LICENSE` existe.
|
|
86
|
+
4. Rode a validacao geral:
|
|
87
|
+
|
|
88
|
+
```powershell
|
|
89
|
+
python scripts/health_check.py
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
5. Rode a bateria estrutural:
|
|
93
|
+
|
|
94
|
+
```powershell
|
|
95
|
+
python scripts/framework_tests.py
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
6. Procure sinais obvios de segredo antes do primeiro commit:
|
|
99
|
+
|
|
100
|
+
```powershell
|
|
101
|
+
rg -n -i "api[_-]?key|token|secret|senha|password|client_secret|private_key" .
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Revise manualmente qualquer resultado. Nem todo resultado e vazamento; alguns
|
|
105
|
+
podem ser apenas regras de seguranca ou exemplos.
|
|
106
|
+
|
|
107
|
+
## Primeiro commit
|
|
108
|
+
|
|
109
|
+
Depois de criar o repositorio no GitHub:
|
|
110
|
+
|
|
111
|
+
```powershell
|
|
112
|
+
git init
|
|
113
|
+
git add .
|
|
114
|
+
git commit -m "Initial AI execution protocol framework"
|
|
115
|
+
git branch -M main
|
|
116
|
+
git remote add origin https://github.com/SEU_USUARIO/NOME_DO_REPOSITORIO.git
|
|
117
|
+
git push -u origin main
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Criterio de pronto para publicar
|
|
121
|
+
|
|
122
|
+
O projeto esta pronto para publicacao inicial quando:
|
|
123
|
+
|
|
124
|
+
- a proposta aparece como experimental;
|
|
125
|
+
- a estrutura separa estudo (`docs/`) de operacao (`protocol/`);
|
|
126
|
+
- arquivos privados e gerados estao ignorados;
|
|
127
|
+
- README, licenca e indice estao consistentes;
|
|
128
|
+
- validacoes locais passaram ou os limites estao documentados.
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# 15 - Contexto Persistente
|
|
2
|
+
|
|
3
|
+
## Ideia central
|
|
4
|
+
|
|
5
|
+
A conversa e uma interface temporaria. A memoria real do projeto deve ficar em
|
|
6
|
+
artefatos pequenos, navegaveis e verificaveis.
|
|
7
|
+
|
|
8
|
+
O objetivo nao e carregar mais contexto. O objetivo e encontrar o menor contexto
|
|
9
|
+
correto para a tarefa atual.
|
|
10
|
+
|
|
11
|
+
Meta economica: reduzir contexto desnecessario em ate 90% quando for seguro.
|
|
12
|
+
Essa meta nao autoriza cortar contexto que seja necessario para entender risco,
|
|
13
|
+
dependencias, imports, tipos, efeitos laterais ou validacao.
|
|
14
|
+
|
|
15
|
+
## Camada segura atual
|
|
16
|
+
|
|
17
|
+
Use:
|
|
18
|
+
|
|
19
|
+
- `canonical-state.yaml`: estado atual resumido do projeto.
|
|
20
|
+
- `context-map.yaml`: mapa pequeno de dominios, aliases e arquivos candidatos.
|
|
21
|
+
- `decisions/`: decisoes importantes com status.
|
|
22
|
+
- `protocol/persistent-context.yaml`: regras de recuperacao progressiva.
|
|
23
|
+
- `memory/INDEX.yaml`: indice de assuntos persistentes.
|
|
24
|
+
- `protocol/adaptive-memory.yaml`: promocao, conflito e seguranca da memoria.
|
|
25
|
+
- `protocol/context-budget.yaml`: limite inicial e expansao justificada.
|
|
26
|
+
- `protocol/capability-router.yaml`: selecao minima de skills, MCPs e
|
|
27
|
+
ferramentas quando a tarefa exigir uma capacidade externa.
|
|
28
|
+
- `behavior/contract.yaml`: contrato observavel para medir se a IA seguiu o
|
|
29
|
+
framework sem exagerar tarefa simples nem subcontrolar tarefa critica.
|
|
30
|
+
|
|
31
|
+
Os scripts `memory_manager.py` e `context_package.py` automatizam a manutencao
|
|
32
|
+
minima e a compilacao auditavel. Eles nao transformam memoria em autoridade.
|
|
33
|
+
|
|
34
|
+
## Memoria autonoma
|
|
35
|
+
|
|
36
|
+
A meta de longo prazo e gerar a memoria a partir do proprio projeto:
|
|
37
|
+
|
|
38
|
+
- codigo-fonte;
|
|
39
|
+
- estrutura de diretorios;
|
|
40
|
+
- dependencias;
|
|
41
|
+
- testes;
|
|
42
|
+
- configuracoes;
|
|
43
|
+
- documentacao existente;
|
|
44
|
+
- decisoes registradas;
|
|
45
|
+
- alteracoes em Git.
|
|
46
|
+
|
|
47
|
+
Isso reduz manutencao manual e evita mapas desatualizados. Porem, so deve virar
|
|
48
|
+
regra obrigatoria quando houver indexador real, saida reproduzivel, deteccao de
|
|
49
|
+
obsolescencia e validacao em projetos reais.
|
|
50
|
+
|
|
51
|
+
## Aliases
|
|
52
|
+
|
|
53
|
+
Aliases sao atalhos de navegacao.
|
|
54
|
+
|
|
55
|
+
Eles ajudam a IA a encontrar dominio, documento, simbolo ou arquivo candidato,
|
|
56
|
+
mas nao provam comportamento atual.
|
|
57
|
+
|
|
58
|
+
Exemplo:
|
|
59
|
+
|
|
60
|
+
```yaml
|
|
61
|
+
aliases:
|
|
62
|
+
- auth
|
|
63
|
+
- login
|
|
64
|
+
- token
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Esses aliases podem apontar a IA para arquivos e docs de autenticacao. Mesmo
|
|
68
|
+
assim, antes de alterar codigo, a IA deve verificar o arquivo ou trecho atual.
|
|
69
|
+
|
|
70
|
+
## Recuperacao progressiva
|
|
71
|
+
|
|
72
|
+
Fluxo recomendado:
|
|
73
|
+
|
|
74
|
+
1. Identificar objetivo.
|
|
75
|
+
2. Procurar dominio ou alias em `context-map.yaml`.
|
|
76
|
+
3. Ler `canonical-state.yaml` quando a verdade atual do projeto importar.
|
|
77
|
+
4. Ler decisoes ativas do dominio.
|
|
78
|
+
5. Abrir apenas a documentacao minima do dominio.
|
|
79
|
+
6. Buscar simbolos ou arquivos candidatos.
|
|
80
|
+
7. Ler trecho relevante primeiro.
|
|
81
|
+
8. Abrir dependencias diretas quando necessario.
|
|
82
|
+
9. Abrir arquivo inteiro quando o trecho nao for suficiente.
|
|
83
|
+
|
|
84
|
+
## Validadores
|
|
85
|
+
|
|
86
|
+
O Context Validator verifica se o contexto carregado basta para agir:
|
|
87
|
+
|
|
88
|
+
- objetivo entendido;
|
|
89
|
+
- decisoes ativas consultadas quando relevantes;
|
|
90
|
+
- dependencias diretas carregadas quando necessarias;
|
|
91
|
+
- risco de dominio adjacente avaliado;
|
|
92
|
+
- conflito entre docs e arquivos verificados identificado.
|
|
93
|
+
|
|
94
|
+
O Action Validator verifica se a intencao do usuario permite acao:
|
|
95
|
+
|
|
96
|
+
- alvo identificado;
|
|
97
|
+
- resultado esperado claro;
|
|
98
|
+
- impacto mapeado quando o risco exigir;
|
|
99
|
+
- plano de validacao existente.
|
|
100
|
+
|
|
101
|
+
Regra principal:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
A IA pode expandir contexto.
|
|
105
|
+
A IA nao pode expandir escopo.
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Se a intencao for ambigua, a IA deve perguntar antes de editar.
|
|
109
|
+
|
|
110
|
+
## Confianca
|
|
111
|
+
|
|
112
|
+
Use confianca como gatilho de recuperacao:
|
|
113
|
+
|
|
114
|
+
- alta: executar com contexto atual e validar;
|
|
115
|
+
- media: expandir um nivel de recuperacao;
|
|
116
|
+
- baixa: pedir esclarecimento.
|
|
117
|
+
|
|
118
|
+
A confianca nao precisa ser um numero exato no MVP. Ela pode ser uma decisao
|
|
119
|
+
operacional baseada em evidencias carregadas, lacunas conhecidas e risco.
|
|
120
|
+
|
|
121
|
+
## Leitura por trecho
|
|
122
|
+
|
|
123
|
+
Ler por trecho e economico quando o simbolo e claro.
|
|
124
|
+
|
|
125
|
+
Mas nao e seguro editar baseado apenas em trecho isolado quando imports, tipos,
|
|
126
|
+
estado compartilhado, efeitos laterais ou chamadas externas podem mudar o
|
|
127
|
+
comportamento.
|
|
128
|
+
|
|
129
|
+
Regra pratica:
|
|
130
|
+
|
|
131
|
+
```text
|
|
132
|
+
Trecho primeiro. Arquivo inteiro quando o trecho nao basta.
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## Quando expandir contexto
|
|
136
|
+
|
|
137
|
+
Expanda um nivel quando:
|
|
138
|
+
|
|
139
|
+
- imports ou tipos mudam o significado do trecho;
|
|
140
|
+
- estado compartilhado ou efeito lateral pode alterar o comportamento;
|
|
141
|
+
- dependencia direta participa da validacao;
|
|
142
|
+
- dominio adjacente pode ser afetado;
|
|
143
|
+
- risco sobe para nivel 2 ou 3;
|
|
144
|
+
- o alvo da alteracao ainda nao esta claro;
|
|
145
|
+
- a validacao nao pode ser planejada com o contexto atual.
|
|
146
|
+
|
|
147
|
+
Pare de expandir quando:
|
|
148
|
+
|
|
149
|
+
- o objetivo esta claro;
|
|
150
|
+
- o dominio e os arquivos candidatos estao mapeados;
|
|
151
|
+
- a intencao do usuario nao esta ambigua;
|
|
152
|
+
- o plano de validacao esta claro;
|
|
153
|
+
- nao ha risco conhecido exigindo mais contexto.
|
|
154
|
+
|
|
155
|
+
## Documentacao por assunto
|
|
156
|
+
|
|
157
|
+
A recuperacao progressiva funciona melhor quando a documentacao e atomica:
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
um arquivo = um assunto rastreavel
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Exemplo: prefira `docs/auth-login.md` e `docs/auth-jwt.md` a um arquivo grande
|
|
164
|
+
`docs/backend.md`.
|
|
165
|
+
|
|
166
|
+
Depois de abrir a doc correta, use `rg` para encontrar o simbolo ou termo exato
|
|
167
|
+
no codigo. A doc localiza; o codigo verificado decide.
|
|
168
|
+
|
|
169
|
+
## Exemplo resumido
|
|
170
|
+
|
|
171
|
+
Pedido:
|
|
172
|
+
|
|
173
|
+
```text
|
|
174
|
+
Altere a regra de login para bloquear usuarios inativos.
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Aplicacao:
|
|
178
|
+
|
|
179
|
+
1. Identificar intencao: regra de autenticacao.
|
|
180
|
+
2. Consultar `context-map.yaml` para localizar dominio, aliases e candidatos.
|
|
181
|
+
3. Ler `canonical-state.yaml` se a estrategia de auth importar.
|
|
182
|
+
4. Ler decisoes ativas de autenticacao se existirem.
|
|
183
|
+
5. Abrir doc minima do dominio.
|
|
184
|
+
6. Buscar simbolos como `login`, `validateUser` e `AuthService`.
|
|
185
|
+
7. Ler trecho primeiro.
|
|
186
|
+
8. Expandir para dependencias se status de usuario vier de outro modulo.
|
|
187
|
+
9. Validar caminho permitido e caminho bloqueado.
|
|
188
|
+
|
|
189
|
+
Se o pedido fosse apenas "troque esse botao", o Action Validator deve pedir
|
|
190
|
+
esclarecimento antes de alterar qualquer coisa.
|
|
191
|
+
|
|
192
|
+
## O que fica experimental
|
|
193
|
+
|
|
194
|
+
Ainda nao torne obrigatorio:
|
|
195
|
+
|
|
196
|
+
- catalogo completo de simbolos;
|
|
197
|
+
- grafo global de dependencias;
|
|
198
|
+
- cache semantico manual;
|
|
199
|
+
- detector automatico de documentacao obsoleta.
|
|
200
|
+
- indexador automatico continuo;
|
|
201
|
+
- previsao semantica avancada do proximo objetivo.
|
|
202
|
+
|
|
203
|
+
Essas ideias sao boas, mas devem ser geradas ou verificadas por tooling para nao
|
|
204
|
+
virarem mapa manual desatualizado.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
# 16 - Release e Atualizacao
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
|
|
5
|
+
Publicar uma nova versao do framework em todos os canais sem quebrar o historico
|
|
6
|
+
e sem expor credenciais.
|
|
7
|
+
|
|
8
|
+
Use este fluxo para qualquer nova release do framework.
|
|
9
|
+
|
|
10
|
+
## Canais
|
|
11
|
+
|
|
12
|
+
- GitHub: codigo, tag e release.
|
|
13
|
+
- npm: pacote Node com comando `ai-protocol`.
|
|
14
|
+
- PyPI: pacote Python com comando `ai-protocol`.
|
|
15
|
+
|
|
16
|
+
## Antes de subir
|
|
17
|
+
|
|
18
|
+
Confirme:
|
|
19
|
+
|
|
20
|
+
- `package.json` esta com a nova versao.
|
|
21
|
+
- `pyproject.toml` esta com a nova versao.
|
|
22
|
+
- `config.yaml` e `INDEX.yaml` apontam para a versao do protocolo correta.
|
|
23
|
+
- `CHANGELOG.md` tem a entrada da versao.
|
|
24
|
+
- `README.md` explica a mudanca principal.
|
|
25
|
+
- `docs/README.md` lista novos documentos.
|
|
26
|
+
- `protocol/README.yaml` lista novos arquivos operacionais.
|
|
27
|
+
- `capabilities/registry.yaml` lista capacidades do pacote minimo quando
|
|
28
|
+
aplicavel.
|
|
29
|
+
- `ai_execution_protocol/protocol/` esta sincronizado com `protocol/`.
|
|
30
|
+
- Instaladores e verificadores conhecem novos arquivos obrigatorios.
|
|
31
|
+
|
|
32
|
+
## Validacao obrigatoria
|
|
33
|
+
|
|
34
|
+
Rode:
|
|
35
|
+
|
|
36
|
+
```powershell
|
|
37
|
+
python scripts/build_dist.py
|
|
38
|
+
python scripts/framework_tests.py
|
|
39
|
+
python scripts/validate_schema.py --strict
|
|
40
|
+
python scripts/health_check.py
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Valide os pacotes sem publicar:
|
|
44
|
+
|
|
45
|
+
```powershell
|
|
46
|
+
npm publish --dry-run
|
|
47
|
+
if (Test-Path publish-dist) { Remove-Item -LiteralPath publish-dist -Recurse -Force }
|
|
48
|
+
python -m build --outdir publish-dist
|
|
49
|
+
python -m twine check publish-dist\*
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Procure sinais obvios de segredo:
|
|
53
|
+
|
|
54
|
+
```powershell
|
|
55
|
+
rg -n -i "api[_-]?key\s*[:=]|token\s*[:=]|secret\s*[:=]|senha\s*[:=]|password\s*[:=]|client_secret\s*[:=]|private_key\s*[:=]|-----BEGIN .*PRIVATE KEY" --glob "!results/**" --glob "!build/**" --glob "!dist/**" --glob "!publish-dist/**" --glob "!*.egg-info/**" --glob "!model-runs/generated/**" --glob "!benchmarks/generated/**" --glob "!*.tgz" .
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Revise manualmente qualquer resultado. Termos como `token_policy` ou
|
|
59
|
+
`auth_security_secret` podem ser apenas nomes de regras.
|
|
60
|
+
|
|
61
|
+
## GitHub
|
|
62
|
+
|
|
63
|
+
Depois de validar:
|
|
64
|
+
|
|
65
|
+
```powershell
|
|
66
|
+
git status -sb
|
|
67
|
+
git add .
|
|
68
|
+
git commit -m "Release vX.Y.Z"
|
|
69
|
+
git tag -a vX.Y.Z -m "Release vX.Y.Z"
|
|
70
|
+
git push origin main
|
|
71
|
+
git push origin vX.Y.Z
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Crie a release:
|
|
75
|
+
|
|
76
|
+
```powershell
|
|
77
|
+
C:\Projetos\.tools\gh\gh.exe release create vX.Y.Z publish-dist\ai_execution_protocol-X.Y.Z-py3-none-any.whl publish-dist\ai_execution_protocol-X.Y.Z.tar.gz --repo rodneigk2/ai-execution-protocol --title "Release vX.Y.Z" --notes-file RELEASE_NOTES.md
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Use notas curtas com:
|
|
81
|
+
|
|
82
|
+
- o que mudou;
|
|
83
|
+
- impacto para usuarios;
|
|
84
|
+
- validacoes executadas;
|
|
85
|
+
- limites conhecidos.
|
|
86
|
+
|
|
87
|
+
## npm
|
|
88
|
+
|
|
89
|
+
Nunca publique a mesma versao duas vezes. Se `X.Y.Z` ja foi publicada, a
|
|
90
|
+
proxima deve incrementar patch, minor ou major conforme o tamanho da mudanca.
|
|
91
|
+
|
|
92
|
+
Publicar:
|
|
93
|
+
|
|
94
|
+
```powershell
|
|
95
|
+
npm whoami
|
|
96
|
+
npm publish --access public
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Validar:
|
|
100
|
+
|
|
101
|
+
```powershell
|
|
102
|
+
npm view ai-execution-protocol version --registry https://registry.npmjs.org/
|
|
103
|
+
npm install -g ai-execution-protocol
|
|
104
|
+
ai-protocol --help
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Se npm exigir 2FA, use OTP ou token granular com bypass 2FA. Nao registre token
|
|
108
|
+
em docs, logs ou conversa.
|
|
109
|
+
|
|
110
|
+
## PyPI
|
|
111
|
+
|
|
112
|
+
Nunca publique a mesma versao duas vezes. Se `X.Y.Z` ja foi publicada, a
|
|
113
|
+
proxima deve incrementar patch, minor ou major conforme o tamanho da mudanca.
|
|
114
|
+
|
|
115
|
+
Publicar:
|
|
116
|
+
|
|
117
|
+
```powershell
|
|
118
|
+
python -m twine upload publish-dist\*
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Quando usar API token:
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
username: __token__
|
|
125
|
+
password: <token da PyPI>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Nao cole o token em conversa, arquivo ou log.
|
|
129
|
+
|
|
130
|
+
Validar:
|
|
131
|
+
|
|
132
|
+
```powershell
|
|
133
|
+
python -m pip index versions ai-execution-protocol
|
|
134
|
+
pip install --upgrade ai-execution-protocol
|
|
135
|
+
ai-protocol --help
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Recuperacao
|
|
139
|
+
|
|
140
|
+
Se GitHub release falhar, corrija e rode o comando de release de novo.
|
|
141
|
+
|
|
142
|
+
Se npm ou PyPI falhar antes de publicar, corrija e tente novamente na mesma
|
|
143
|
+
versao.
|
|
144
|
+
|
|
145
|
+
Se npm ou PyPI publicar, nao tente sobrescrever a mesma versao. Incremente a
|
|
146
|
+
versao e gere nova release.
|