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.
Files changed (89) hide show
  1. package/AGENTS.md +12 -1
  2. package/README.md +54 -2
  3. package/behavior/audit-checklist.yaml +55 -0
  4. package/behavior/contract.yaml +156 -0
  5. package/dataset/README.md +38 -0
  6. package/dataset/raw-examples.md +36 -0
  7. package/dataset/train.jsonl +3 -0
  8. package/dataset/validation.jsonl +2 -0
  9. package/dist/minimal/AGENTS.md +8 -1
  10. package/dist/minimal/README.md +3 -0
  11. package/dist/minimal/behavior/audit-checklist.yaml +15 -0
  12. package/dist/minimal/behavior/contract.yaml +29 -0
  13. package/dist/minimal/canonical-state.yaml +1 -1
  14. package/dist/minimal/capabilities/registry.yaml +48 -0
  15. package/dist/minimal/context-map.yaml +2 -1
  16. package/dist/minimal/ide-rules/instruction-block.md +23 -0
  17. package/dist/minimal/memory/INDEX.yaml +1 -1
  18. package/dist/minimal/protocol/README.yaml +11 -1
  19. package/dist/minimal/protocol/capability-gate.yaml +56 -0
  20. package/dist/minimal/protocol/capability-router.yaml +123 -0
  21. package/dist/minimal/protocol/context-rules.yaml +2 -1
  22. package/dist/minimal/protocol/fast-path.yaml +8 -1
  23. package/dist/minimal/protocol/intelligence-router.yaml +63 -0
  24. package/dist/minimal/protocol/route-packs.yaml +49 -1
  25. package/dist/minimal/protocol/router.yaml +35 -1
  26. package/docs/00-visao-geral.md +41 -0
  27. package/docs/01-modelo-de-execucao.md +25 -0
  28. package/docs/02-niveis-de-risco.md +62 -0
  29. package/docs/03-mapeamento-antes-de-alterar.md +48 -0
  30. package/docs/04-janela-de-contexto.md +56 -0
  31. package/docs/05-validacao-e-entrega.md +48 -0
  32. package/docs/06-memoria-e-continuidade.md +27 -0
  33. package/docs/07-legibilidade-para-ia.md +47 -0
  34. package/docs/08-posicionamento.md +48 -0
  35. package/docs/09-governanca-de-mudancas.md +48 -0
  36. package/docs/10-economia-de-prompt.md +79 -0
  37. package/docs/11-retencao-de-resultados.md +26 -0
  38. package/docs/12-instalacao-em-outro-projeto.md +254 -0
  39. package/docs/13-uso-em-ides.md +137 -0
  40. package/docs/14-publicacao.md +128 -0
  41. package/docs/15-contexto-persistente.md +204 -0
  42. package/docs/16-release-e-atualizacao.md +146 -0
  43. package/docs/17-documentacao-atomica.md +117 -0
  44. package/docs/18-memoria-adaptativa.md +107 -0
  45. package/docs/19-orcamento-de-contexto.md +63 -0
  46. package/docs/20-validacao-seletiva.md +46 -0
  47. package/docs/21-roteamento-de-capacidades.md +121 -0
  48. package/docs/22-roadmap-v1.md +163 -0
  49. package/docs/23-contrato-comportamental.md +116 -0
  50. package/docs/24-gate-de-capacidades-e-inteligencia.md +109 -0
  51. package/docs/README.md +58 -0
  52. package/eval/README.md +27 -0
  53. package/eval/rubric.yaml +57 -0
  54. package/eval/sample-result.yaml +28 -0
  55. package/install-manifest.json +38 -2
  56. package/package.json +9 -2
  57. package/protocol/README.yaml +11 -1
  58. package/protocol/capability-gate.yaml +56 -0
  59. package/protocol/capability-router.yaml +123 -0
  60. package/protocol/context-rules.yaml +2 -1
  61. package/protocol/fast-path.yaml +8 -1
  62. package/protocol/intelligence-router.yaml +63 -0
  63. package/protocol/route-packs.yaml +49 -1
  64. package/protocol/router.yaml +35 -1
  65. package/roadmap/v1.yaml +139 -0
  66. package/schema/README.md +26 -0
  67. package/schema/behavior-contract.schema.json +31 -0
  68. package/schema/capability-registry.schema.json +51 -0
  69. package/schema/evaluated-response.schema.json +27 -0
  70. package/schema/evaluation-result.schema.json +32 -0
  71. package/schema/memory-entry.schema.json +55 -0
  72. package/schema/protocol-rule.schema.json +16 -0
  73. package/schema/protocol-rule.schema.yaml +28 -0
  74. package/schema/test-case.schema.json +44 -0
  75. package/schema/test-case.schema.yaml +37 -0
  76. package/scripts/README.md +79 -1
  77. package/scripts/build_dist.py +3 -0
  78. package/scripts/npm_install_protocol.js +60 -1
  79. package/scripts/verify_install.py +25 -0
  80. package/templates/minimal/AGENTS.md +8 -1
  81. package/templates/minimal/behavior/audit-checklist.yaml +15 -0
  82. package/templates/minimal/behavior/contract.yaml +29 -0
  83. package/templates/minimal/canonical-state.yaml +1 -1
  84. package/templates/minimal/capabilities/registry.yaml +48 -0
  85. package/templates/minimal/context-map.yaml +2 -1
  86. package/templates/minimal/ide-rules/instruction-block.md +23 -0
  87. package/templates/minimal/memory/INDEX.yaml +1 -1
  88. package/templates/minimal/protocol/capability-gate.yaml +10 -0
  89. 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.