ai-execution-protocol 0.3.1 → 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 +5 -1
- package/README.md +41 -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 +4 -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 +1 -1
- package/dist/minimal/context-map.yaml +1 -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 +9 -1
- package/dist/minimal/protocol/capability-gate.yaml +56 -0
- package/dist/minimal/protocol/capability-router.yaml +1 -1
- package/dist/minimal/protocol/context-rules.yaml +2 -1
- package/dist/minimal/protocol/fast-path.yaml +6 -1
- package/dist/minimal/protocol/intelligence-router.yaml +63 -0
- package/dist/minimal/protocol/route-packs.yaml +38 -1
- package/dist/minimal/protocol/router.yaml +28 -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 +27 -2
- package/package.json +9 -2
- package/protocol/README.yaml +9 -1
- package/protocol/capability-gate.yaml +56 -0
- package/protocol/capability-router.yaml +1 -1
- package/protocol/context-rules.yaml +2 -1
- package/protocol/fast-path.yaml +6 -1
- package/protocol/intelligence-router.yaml +63 -0
- package/protocol/route-packs.yaml +38 -1
- package/protocol/router.yaml +28 -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 +46 -0
- 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 +4 -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 +1 -1
- package/templates/minimal/context-map.yaml +1 -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,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.
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# 17 - Documentacao Atomica
|
|
2
|
+
|
|
3
|
+
## Ideia central
|
|
4
|
+
|
|
5
|
+
Documentacao boa para IA nao e apenas curta.
|
|
6
|
+
|
|
7
|
+
Ela deve ser organizada por assunto rastreavel:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
um arquivo = um dominio, fluxo, decisao, componente ou integracao especifica
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
O objetivo e permitir que a IA encontre rapidamente o documento certo e depois
|
|
14
|
+
use `rg` para localizar o ponto exato no codigo.
|
|
15
|
+
|
|
16
|
+
## Fluxo recomendado
|
|
17
|
+
|
|
18
|
+
1. Identificar termos do pedido do usuario.
|
|
19
|
+
2. Procurar dominio ou alias em `context-map.yaml`.
|
|
20
|
+
3. Abrir o `.md` atomico do assunto.
|
|
21
|
+
4. Usar `rg` para procurar simbolos, termos e aliases no codigo.
|
|
22
|
+
5. Ler o trecho especifico primeiro.
|
|
23
|
+
6. Expandir para imports, tipos, callers ou arquivo inteiro quando necessario.
|
|
24
|
+
7. Validar o comportamento no codigo atual.
|
|
25
|
+
|
|
26
|
+
Exemplo:
|
|
27
|
+
|
|
28
|
+
```powershell
|
|
29
|
+
rg -n "login|validateUser|AuthService" docs protocol src
|
|
30
|
+
rg -n "JWT|createToken|token" docs protocol src
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Bons nomes
|
|
34
|
+
|
|
35
|
+
Use nomes que a IA provavelmente buscaria:
|
|
36
|
+
|
|
37
|
+
```text
|
|
38
|
+
docs/auth-login.md
|
|
39
|
+
docs/auth-jwt.md
|
|
40
|
+
docs/auth-permissions.md
|
|
41
|
+
docs/payments-checkout.md
|
|
42
|
+
docs/payments-webhook.md
|
|
43
|
+
docs/frontend-buttons.md
|
|
44
|
+
docs/frontend-forms.md
|
|
45
|
+
docs/database-users.md
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Evite:
|
|
49
|
+
|
|
50
|
+
```text
|
|
51
|
+
docs/geral.md
|
|
52
|
+
docs/notas.md
|
|
53
|
+
docs/parte-1.md
|
|
54
|
+
docs/tudo.md
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Quando criar ou dividir
|
|
58
|
+
|
|
59
|
+
Crie ou divida documentacao quando:
|
|
60
|
+
|
|
61
|
+
- um arquivo mistura assuntos independentes;
|
|
62
|
+
- o arquivo se aproxima do limite de 400 linhas;
|
|
63
|
+
- uma busca com `rg` encontra muitas secoes sem relacao;
|
|
64
|
+
- uma decisao, fluxo ou componente precisa ser encontrado isoladamente;
|
|
65
|
+
- um assunto transversal precisa de doc principal com links para docs
|
|
66
|
+
especificas.
|
|
67
|
+
|
|
68
|
+
Nao divida quando:
|
|
69
|
+
|
|
70
|
+
- o detalhe nao tem valor isolado;
|
|
71
|
+
- o arquivo novo teria apenas uma nota temporaria;
|
|
72
|
+
- o assunto ja existe em outro `.md` e pode ser atualizado;
|
|
73
|
+
- a divisao criaria duplicidade.
|
|
74
|
+
|
|
75
|
+
## Falhas e mitigacoes
|
|
76
|
+
|
|
77
|
+
Fragmentacao demais:
|
|
78
|
+
|
|
79
|
+
- nao crie arquivo para microdetalhe sem assunto proprio;
|
|
80
|
+
- una ou vincule docs sobre o mesmo tema.
|
|
81
|
+
|
|
82
|
+
Nome ruim:
|
|
83
|
+
|
|
84
|
+
- inclua dominio, fluxo, componente ou simbolo no nome;
|
|
85
|
+
- mantenha titulo e nome do arquivo alinhados.
|
|
86
|
+
|
|
87
|
+
Assunto duplicado:
|
|
88
|
+
|
|
89
|
+
- rode busca antes de criar doc nova;
|
|
90
|
+
- atualize a doc existente quando o assunto ja estiver coberto.
|
|
91
|
+
|
|
92
|
+
Doc desatualizada:
|
|
93
|
+
|
|
94
|
+
- use doc para localizar;
|
|
95
|
+
- use codigo verificado para decidir comportamento;
|
|
96
|
+
- registre risco de doc obsoleta quando encontrar divergencia.
|
|
97
|
+
|
|
98
|
+
Busca por termo errado:
|
|
99
|
+
|
|
100
|
+
- use aliases e sinonimos;
|
|
101
|
+
- pesquise em docs e codigo;
|
|
102
|
+
- procure por nomes de dominio, fluxo e simbolos.
|
|
103
|
+
|
|
104
|
+
Trecho insuficiente:
|
|
105
|
+
|
|
106
|
+
- expanda para imports, tipos, callers, dependencias ou arquivo inteiro;
|
|
107
|
+
- nao edite comportamento baseado em trecho isolado quando houver efeito
|
|
108
|
+
lateral.
|
|
109
|
+
|
|
110
|
+
## Regra pratica
|
|
111
|
+
|
|
112
|
+
```text
|
|
113
|
+
Doc atomica localiza.
|
|
114
|
+
rg encontra.
|
|
115
|
+
Trecho explica.
|
|
116
|
+
Codigo verificado decide.
|
|
117
|
+
```
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# 18 - Memoria adaptativa
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
|
|
5
|
+
A memoria adaptativa permite que o protocolo evolua com o projeto e com
|
|
6
|
+
preferencias duraveis do usuario sem depender do historico completo do chat.
|
|
7
|
+
|
|
8
|
+
Ela nao tenta prever o usuario com perfeicao. Ela recupera evidencias pequenas
|
|
9
|
+
para escolher melhores padroes e reduzir perguntas repetidas.
|
|
10
|
+
|
|
11
|
+
## Ordem de autoridade
|
|
12
|
+
|
|
13
|
+
Use esta ordem quando houver conflito:
|
|
14
|
+
|
|
15
|
+
1. Pedido atual do usuario.
|
|
16
|
+
2. Arquivos atuais verificados.
|
|
17
|
+
3. Decisoes ativas do projeto.
|
|
18
|
+
4. Preferencias explicitas.
|
|
19
|
+
5. Padroes inferidos com evidencia.
|
|
20
|
+
6. Resumos e historico.
|
|
21
|
+
|
|
22
|
+
Memoria orienta. O pedido atual autoriza. O codigo verificado define o
|
|
23
|
+
comportamento existente.
|
|
24
|
+
|
|
25
|
+
## Tipos
|
|
26
|
+
|
|
27
|
+
- Preferencia explicita: pode ficar ativa imediatamente.
|
|
28
|
+
- Decisao de projeto: fica ativa quando confirmada e limitada ao projeto.
|
|
29
|
+
- Estado de projeto: exige evidencia em arquivo atual.
|
|
30
|
+
- Preferencia inferida: fica candidata ate repeticao ou confirmacao.
|
|
31
|
+
- Padrao de trabalho: fica candidato ate repeticao.
|
|
32
|
+
- Resumo de conversa: e opcional e nunca vira contexto obrigatorio.
|
|
33
|
+
|
|
34
|
+
## Ciclo de atualizacao
|
|
35
|
+
|
|
36
|
+
Depois de uma tarefa, a IA verifica se surgiu um fato duravel:
|
|
37
|
+
|
|
38
|
+
1. Extrair o candidato.
|
|
39
|
+
2. Bloquear conteudo sensivel.
|
|
40
|
+
3. Procurar assunto e escopo existentes.
|
|
41
|
+
4. Comparar valor, fonte e evidencia.
|
|
42
|
+
5. Manter, promover, substituir ou descartar.
|
|
43
|
+
6. Atualizar `memory/INDEX.yaml`.
|
|
44
|
+
7. Validar duplicidade, conflito e tamanho.
|
|
45
|
+
|
|
46
|
+
Se nada duravel mudou, o resultado correto e `unchanged`. Escrever em toda
|
|
47
|
+
tarefa criaria ruido e aumentaria custo.
|
|
48
|
+
|
|
49
|
+
## Seguranca
|
|
50
|
+
|
|
51
|
+
Nunca armazene:
|
|
52
|
+
|
|
53
|
+
- senhas, tokens, chaves ou segredos;
|
|
54
|
+
- dados de cliente;
|
|
55
|
+
- logs reais sem reducao e remocao de dados sensiveis;
|
|
56
|
+
- conversa bruta desnecessaria;
|
|
57
|
+
- inferencias pessoais sem utilidade tecnica clara.
|
|
58
|
+
|
|
59
|
+
Memoria nunca pode ampliar escopo, autorizar acao sensivel, reduzir um risco
|
|
60
|
+
conhecido ou substituir confirmacao de nivel critico.
|
|
61
|
+
|
|
62
|
+
## Estrutura
|
|
63
|
+
|
|
64
|
+
`memory/INDEX.yaml` e o ponto de entrada. Leia somente os assuntos que combinam
|
|
65
|
+
com a tarefa.
|
|
66
|
+
|
|
67
|
+
Use:
|
|
68
|
+
|
|
69
|
+
- `memory/user/` para preferencias duraveis;
|
|
70
|
+
- `memory/projects/` para estado e decisoes com escopo;
|
|
71
|
+
- `memory/patterns/` para estrategias repetidas;
|
|
72
|
+
- `candidate-memory/` para itens ainda nao autoritativos;
|
|
73
|
+
- `memory/archive/` apenas para auditoria ou comparacao historica.
|
|
74
|
+
|
|
75
|
+
## Automacao
|
|
76
|
+
|
|
77
|
+
O script `scripts/memory_manager.py` faz inclusao, consulta e validacao:
|
|
78
|
+
|
|
79
|
+
```powershell
|
|
80
|
+
python scripts/memory_manager.py --root . validate
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Preferencia explicita:
|
|
84
|
+
|
|
85
|
+
```powershell
|
|
86
|
+
python scripts/memory_manager.py --root . upsert `
|
|
87
|
+
--id preferencia_validacao_001 `
|
|
88
|
+
--area user `
|
|
89
|
+
--type explicit_preference `
|
|
90
|
+
--subject workflow_preferences `
|
|
91
|
+
--value "Preferir validacao focada antes da suite completa." `
|
|
92
|
+
--scope all_projects `
|
|
93
|
+
--explicit
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Estado de projeto exige evidencia:
|
|
97
|
+
|
|
98
|
+
```powershell
|
|
99
|
+
python scripts/memory_manager.py --root . upsert `
|
|
100
|
+
--id estado_projeto_001 `
|
|
101
|
+
--area projects `
|
|
102
|
+
--type project_state `
|
|
103
|
+
--subject current_state `
|
|
104
|
+
--value "A CLI usa o manifesto unico de instalacao." `
|
|
105
|
+
--scope ai-execution-protocol `
|
|
106
|
+
--evidence install-manifest.json
|
|
107
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# 19 - Orcamento de contexto
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
|
|
5
|
+
O orcamento de contexto limita leitura inicial, nao a investigacao necessaria.
|
|
6
|
+
Ele reduz arquivos e tokens irrelevantes sem trocar correcao ou seguranca por
|
|
7
|
+
economia.
|
|
8
|
+
|
|
9
|
+
## Limites iniciais
|
|
10
|
+
|
|
11
|
+
O protocolo usa limites proporcionais:
|
|
12
|
+
|
|
13
|
+
- nivel 0: cerca de 300 tokens e ate 2 arquivos;
|
|
14
|
+
- nivel 1: cerca de 1.000 tokens e ate 5 arquivos;
|
|
15
|
+
- nivel 2: cerca de 4.000 tokens e ate 12 arquivos;
|
|
16
|
+
- nivel 3: cerca de 6.000 tokens e expansao adaptativa.
|
|
17
|
+
|
|
18
|
+
Esses valores orientam a primeira recuperacao. Eles nao impedem expansao quando
|
|
19
|
+
falta uma dependencia, o escopo esta incerto, o trecho e insuficiente ou a
|
|
20
|
+
validacao ainda nao pode ser planejada.
|
|
21
|
+
|
|
22
|
+
## Fluxo economico
|
|
23
|
+
|
|
24
|
+
1. Classifique a intencao e o risco.
|
|
25
|
+
2. Escolha a rota.
|
|
26
|
+
3. Leia o pack compacto da rota.
|
|
27
|
+
4. Consulte o indice de memoria por assunto.
|
|
28
|
+
5. Busque simbolos com `rg`.
|
|
29
|
+
6. Leia o trecho relevante.
|
|
30
|
+
7. Expanda somente para resolver uma lacuna concreta.
|
|
31
|
+
8. Pare quando alvo, risco e validacao estiverem claros.
|
|
32
|
+
|
|
33
|
+
## Pacote de contexto
|
|
34
|
+
|
|
35
|
+
`scripts/context_package.py` gera um pacote auditavel:
|
|
36
|
+
|
|
37
|
+
```powershell
|
|
38
|
+
python scripts/context_package.py `
|
|
39
|
+
--objective "Atualizar a regra de memoria." `
|
|
40
|
+
--route memory_update `
|
|
41
|
+
--risk 2 `
|
|
42
|
+
--term memory `
|
|
43
|
+
--candidate protocol/adaptive-memory.yaml
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Se um limite maior que o padrao for necessario, registre o motivo:
|
|
47
|
+
|
|
48
|
+
```powershell
|
|
49
|
+
python scripts/context_package.py `
|
|
50
|
+
--objective "Revisar conflito entre memoria e estado atual." `
|
|
51
|
+
--route memory_conflict_or_replacement `
|
|
52
|
+
--risk 2 `
|
|
53
|
+
--budget 5000 `
|
|
54
|
+
--expansion-reason "Conflito exige verificar duas fontes atuais."
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Medicao
|
|
58
|
+
|
|
59
|
+
O objetivo de ate 90% de economia se refere a contexto desnecessario. A meta
|
|
60
|
+
deve ser medida em tarefas repetidas e comparada com uma leitura ampla.
|
|
61
|
+
|
|
62
|
+
Nao declare economia real apenas porque existe um limite configurado. Registre
|
|
63
|
+
tokens estimados, arquivos incluidos, arquivos excluidos e motivo de expansao.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# 20 - Validacao seletiva
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
|
|
5
|
+
Validacao seletiva executa o menor conjunto de verificacoes que prova a
|
|
6
|
+
mudanca. Ela evita rodar a suite completa em ajustes locais sem reduzir
|
|
7
|
+
evidencia em alteracoes compartilhadas ou releases.
|
|
8
|
+
|
|
9
|
+
## Selecao
|
|
10
|
+
|
|
11
|
+
- Documentacao: links, busca textual e schema quando houver estrutura.
|
|
12
|
+
- Regra de protocolo: schema, espelho e testes focados.
|
|
13
|
+
- Parser ou avaliador: testes adversariais, framework e benchmark.
|
|
14
|
+
- Instalador ou pacote: instalacao, verificacao e dry-run do pacote.
|
|
15
|
+
- Contrato compartilhado: framework tests e health check.
|
|
16
|
+
- Release: suite completa, builds e verificacao dos pacotes.
|
|
17
|
+
|
|
18
|
+
## Uso
|
|
19
|
+
|
|
20
|
+
Detecte as verificacoes a partir do diff atual:
|
|
21
|
+
|
|
22
|
+
```powershell
|
|
23
|
+
python scripts/selective_validation.py
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Informe arquivos diretamente:
|
|
27
|
+
|
|
28
|
+
```powershell
|
|
29
|
+
python scripts/selective_validation.py `
|
|
30
|
+
--file protocol/adaptive-memory.yaml `
|
|
31
|
+
--file scripts/memory_manager.py
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Para release:
|
|
35
|
+
|
|
36
|
+
```powershell
|
|
37
|
+
python scripts/selective_validation.py --release
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Regras
|
|
41
|
+
|
|
42
|
+
Sempre aumente a validacao quando a mudanca altera contrato compartilhado,
|
|
43
|
+
instalacao, seguranca, dados, avaliacao ou varios modulos.
|
|
44
|
+
|
|
45
|
+
Nunca declare uma verificacao que nao foi executada. Registre o que ficou
|
|
46
|
+
pendente e o risco residual.
|