ai-execution-protocol 0.2.0__tar.gz → 0.3.0__tar.gz
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.
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/PKG-INFO +33 -23
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/README.md +32 -22
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/cli.py +23 -113
- ai_execution_protocol-0.3.0/ai_execution_protocol/install-manifest.json +64 -0
- ai_execution_protocol-0.3.0/ai_execution_protocol/install_support.py +17 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/README.yaml +9 -1
- ai_execution_protocol-0.3.0/ai_execution_protocol/protocol/adaptive-memory.yaml +97 -0
- ai_execution_protocol-0.3.0/ai_execution_protocol/protocol/context-budget.yaml +44 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/context-compiler.yaml +24 -1
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/context-rules.yaml +13 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/fast-path.yaml +7 -1
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/formatting-rules.yaml +27 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/persistent-context.yaml +40 -4
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/prompt-economy.yaml +16 -8
- ai_execution_protocol-0.3.0/ai_execution_protocol/protocol/route-packs.yaml +184 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/router.yaml +25 -1
- ai_execution_protocol-0.3.0/ai_execution_protocol/protocol/selective-validation.yaml +44 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/validation-checklist.yaml +10 -1
- ai_execution_protocol-0.3.0/ai_execution_protocol/templates/minimal/AGENTS.md +41 -0
- ai_execution_protocol-0.3.0/ai_execution_protocol/templates/minimal/candidate-memory/README.md +4 -0
- ai_execution_protocol-0.3.0/ai_execution_protocol/templates/minimal/canonical-state.yaml +16 -0
- ai_execution_protocol-0.3.0/ai_execution_protocol/templates/minimal/context-map.yaml +22 -0
- ai_execution_protocol-0.3.0/ai_execution_protocol/templates/minimal/decisions/README.md +4 -0
- ai_execution_protocol-0.3.0/ai_execution_protocol/templates/minimal/memory/INDEX.yaml +20 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol.egg-info/PKG-INFO +33 -23
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol.egg-info/SOURCES.txt +13 -1
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/pyproject.toml +10 -4
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/LICENSE +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/__init__.py +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/__main__.py +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/__init__.py +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/execution-rules.yaml +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/mapping-checklists.yaml +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/modes.yaml +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/risk-levels.yaml +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/spec-driven.yaml +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol.egg-info/dependency_links.txt +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol.egg-info/entry_points.txt +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/ai_execution_protocol.egg-info/top_level.txt +0 -0
- {ai_execution_protocol-0.2.0 → ai_execution_protocol-0.3.0}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ai-execution-protocol
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Experimental AI execution protocol for safer agent workflows, minimal context, risk classification, validation, and evidence-based delivery.
|
|
5
5
|
Author: AI Execution Protocol
|
|
6
6
|
License-Expression: MIT
|
|
@@ -52,15 +52,16 @@ O protocolo nao tenta transformar toda tarefa em um processo pesado. A regra e
|
|
|
52
52
|
proporcionalidade: tarefa simples deve ser rapida; tarefa critica exige mais
|
|
53
53
|
mapa, confirmacao e evidencia.
|
|
54
54
|
|
|
55
|
-
Na v0.
|
|
55
|
+
Na v0.3.0, o framework adiciona memoria adaptativa verificada, orcamento de
|
|
56
|
+
contexto e validacao seletiva:
|
|
56
57
|
|
|
57
58
|
```text
|
|
58
|
-
pedido ->
|
|
59
|
+
pedido -> risco -> memoria relevante -> contexto limitado -> acao -> validacao
|
|
59
60
|
```
|
|
60
61
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
Memoria orienta, o pedido atual autoriza e arquivos verificados definem a
|
|
63
|
+
realidade. Inferencias ficam candidatas ate acumularem evidencia, e conteudo
|
|
64
|
+
sensivel e bloqueado.
|
|
64
65
|
|
|
65
66
|
## Status
|
|
66
67
|
|
|
@@ -78,8 +79,11 @@ continuam obrigatorios em tarefas criticas.
|
|
|
78
79
|
- `context-map.yaml`: mapa pequeno de dominios, aliases e arquivos candidatos.
|
|
79
80
|
- `config.yaml`: configuracao do alvo atual e versao do protocolo.
|
|
80
81
|
- `decisions/`: decisoes importantes com status.
|
|
82
|
+
- `memory/`: preferencias, estado e padroes duraveis validados.
|
|
83
|
+
- `candidate-memory/`: inferencias ainda nao autoritativas.
|
|
81
84
|
- `docs/`: explicacoes conceituais em Markdown.
|
|
82
85
|
- `protocol/`: regras operacionais curtas em YAML.
|
|
86
|
+
- `protocol/route-packs.yaml`: resumos compactos para reduzir leitura por rota.
|
|
83
87
|
- `cases/`: casos estruturados para testar o comportamento da IA.
|
|
84
88
|
- `examples/`: exemplos humanos de uso do framework.
|
|
85
89
|
- `schema/`: contratos para manter os YAML padronizados.
|
|
@@ -100,10 +104,12 @@ continuam obrigatorios em tarefas criticas.
|
|
|
100
104
|
4. Confirme o alvo atual em `config.yaml`.
|
|
101
105
|
5. Leia `protocol/fast-path.yaml`.
|
|
102
106
|
6. Use `protocol/router.yaml` para escolher o menor contexto suficiente.
|
|
103
|
-
7.
|
|
104
|
-
8.
|
|
107
|
+
7. Consulte `protocol/route-packs.yaml` antes de abrir todos os YAML da rota.
|
|
108
|
+
8. Abra arquivos completos apenas quando o resumo compacto nao bastar.
|
|
109
|
+
9. Execute, valide e entregue com evidencia.
|
|
110
|
+
10. Atualize memoria apenas quando surgir um fato duravel e seguro.
|
|
105
111
|
|
|
106
|
-
Regra de seguranca
|
|
112
|
+
Regra de seguranca:
|
|
107
113
|
|
|
108
114
|
```text
|
|
109
115
|
A IA pode expandir contexto.
|
|
@@ -124,8 +130,10 @@ Comece por:
|
|
|
124
130
|
- `docs/04-janela-de-contexto.md`
|
|
125
131
|
- `docs/05-validacao-e-entrega.md`
|
|
126
132
|
- `docs/15-contexto-persistente.md`
|
|
127
|
-
- `docs/
|
|
128
|
-
- `docs/
|
|
133
|
+
- `docs/17-documentacao-atomica.md`
|
|
134
|
+
- `docs/18-memoria-adaptativa.md`
|
|
135
|
+
- `docs/19-orcamento-de-contexto.md`
|
|
136
|
+
- `docs/20-validacao-seletiva.md`
|
|
129
137
|
|
|
130
138
|
Use `docs/` para entender a metodologia. Use `protocol/` quando quiser aplicar
|
|
131
139
|
as regras em uma tarefa real.
|
|
@@ -150,6 +158,13 @@ Meca custo aproximado de leitura por rota:
|
|
|
150
158
|
python scripts/token_report.py
|
|
151
159
|
```
|
|
152
160
|
|
|
161
|
+
Valide a memoria e selecione apenas as verificacoes necessarias:
|
|
162
|
+
|
|
163
|
+
```powershell
|
|
164
|
+
python scripts/memory_manager.py --root . validate
|
|
165
|
+
python scripts/selective_validation.py
|
|
166
|
+
```
|
|
167
|
+
|
|
153
168
|
## Instalacao em outro projeto
|
|
154
169
|
|
|
155
170
|
Projeto novo:
|
|
@@ -192,19 +207,14 @@ python scripts/verify_install.py --target C:\caminho\projeto
|
|
|
192
207
|
|
|
193
208
|
O final esperado da verificacao e `PASS`.
|
|
194
209
|
|
|
195
|
-
|
|
210
|
+
Atualizacao pelos pacotes publicados:
|
|
196
211
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
- mantenha artefatos gerados fora do Git quando nao forem necessarios;
|
|
204
|
-
- use `.gitignore`;
|
|
205
|
-
- publique com `README.md`, `LICENSE`, `docs/`, `protocol/`, `cases/`,
|
|
206
|
-
`examples/`, `schema/`, `eval/` e `scripts/` quando fizer sentido;
|
|
207
|
-
- preserve o posicionamento como pesquisa experimental e framework em evolucao.
|
|
212
|
+
```powershell
|
|
213
|
+
npm install -g ai-execution-protocol@latest
|
|
214
|
+
python -m pip install --upgrade ai-execution-protocol
|
|
215
|
+
ai-protocol install C:\caminho\projeto
|
|
216
|
+
ai-protocol verify C:\caminho\projeto
|
|
217
|
+
```
|
|
208
218
|
|
|
209
219
|
## Licenca
|
|
210
220
|
|
|
@@ -31,15 +31,16 @@ O protocolo nao tenta transformar toda tarefa em um processo pesado. A regra e
|
|
|
31
31
|
proporcionalidade: tarefa simples deve ser rapida; tarefa critica exige mais
|
|
32
32
|
mapa, confirmacao e evidencia.
|
|
33
33
|
|
|
34
|
-
Na v0.
|
|
34
|
+
Na v0.3.0, o framework adiciona memoria adaptativa verificada, orcamento de
|
|
35
|
+
contexto e validacao seletiva:
|
|
35
36
|
|
|
36
37
|
```text
|
|
37
|
-
pedido ->
|
|
38
|
+
pedido -> risco -> memoria relevante -> contexto limitado -> acao -> validacao
|
|
38
39
|
```
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
Memoria orienta, o pedido atual autoriza e arquivos verificados definem a
|
|
42
|
+
realidade. Inferencias ficam candidatas ate acumularem evidencia, e conteudo
|
|
43
|
+
sensivel e bloqueado.
|
|
43
44
|
|
|
44
45
|
## Status
|
|
45
46
|
|
|
@@ -57,8 +58,11 @@ continuam obrigatorios em tarefas criticas.
|
|
|
57
58
|
- `context-map.yaml`: mapa pequeno de dominios, aliases e arquivos candidatos.
|
|
58
59
|
- `config.yaml`: configuracao do alvo atual e versao do protocolo.
|
|
59
60
|
- `decisions/`: decisoes importantes com status.
|
|
61
|
+
- `memory/`: preferencias, estado e padroes duraveis validados.
|
|
62
|
+
- `candidate-memory/`: inferencias ainda nao autoritativas.
|
|
60
63
|
- `docs/`: explicacoes conceituais em Markdown.
|
|
61
64
|
- `protocol/`: regras operacionais curtas em YAML.
|
|
65
|
+
- `protocol/route-packs.yaml`: resumos compactos para reduzir leitura por rota.
|
|
62
66
|
- `cases/`: casos estruturados para testar o comportamento da IA.
|
|
63
67
|
- `examples/`: exemplos humanos de uso do framework.
|
|
64
68
|
- `schema/`: contratos para manter os YAML padronizados.
|
|
@@ -79,10 +83,12 @@ continuam obrigatorios em tarefas criticas.
|
|
|
79
83
|
4. Confirme o alvo atual em `config.yaml`.
|
|
80
84
|
5. Leia `protocol/fast-path.yaml`.
|
|
81
85
|
6. Use `protocol/router.yaml` para escolher o menor contexto suficiente.
|
|
82
|
-
7.
|
|
83
|
-
8.
|
|
86
|
+
7. Consulte `protocol/route-packs.yaml` antes de abrir todos os YAML da rota.
|
|
87
|
+
8. Abra arquivos completos apenas quando o resumo compacto nao bastar.
|
|
88
|
+
9. Execute, valide e entregue com evidencia.
|
|
89
|
+
10. Atualize memoria apenas quando surgir um fato duravel e seguro.
|
|
84
90
|
|
|
85
|
-
Regra de seguranca
|
|
91
|
+
Regra de seguranca:
|
|
86
92
|
|
|
87
93
|
```text
|
|
88
94
|
A IA pode expandir contexto.
|
|
@@ -103,8 +109,10 @@ Comece por:
|
|
|
103
109
|
- `docs/04-janela-de-contexto.md`
|
|
104
110
|
- `docs/05-validacao-e-entrega.md`
|
|
105
111
|
- `docs/15-contexto-persistente.md`
|
|
106
|
-
- `docs/
|
|
107
|
-
- `docs/
|
|
112
|
+
- `docs/17-documentacao-atomica.md`
|
|
113
|
+
- `docs/18-memoria-adaptativa.md`
|
|
114
|
+
- `docs/19-orcamento-de-contexto.md`
|
|
115
|
+
- `docs/20-validacao-seletiva.md`
|
|
108
116
|
|
|
109
117
|
Use `docs/` para entender a metodologia. Use `protocol/` quando quiser aplicar
|
|
110
118
|
as regras em uma tarefa real.
|
|
@@ -129,6 +137,13 @@ Meca custo aproximado de leitura por rota:
|
|
|
129
137
|
python scripts/token_report.py
|
|
130
138
|
```
|
|
131
139
|
|
|
140
|
+
Valide a memoria e selecione apenas as verificacoes necessarias:
|
|
141
|
+
|
|
142
|
+
```powershell
|
|
143
|
+
python scripts/memory_manager.py --root . validate
|
|
144
|
+
python scripts/selective_validation.py
|
|
145
|
+
```
|
|
146
|
+
|
|
132
147
|
## Instalacao em outro projeto
|
|
133
148
|
|
|
134
149
|
Projeto novo:
|
|
@@ -171,19 +186,14 @@ python scripts/verify_install.py --target C:\caminho\projeto
|
|
|
171
186
|
|
|
172
187
|
O final esperado da verificacao e `PASS`.
|
|
173
188
|
|
|
174
|
-
|
|
189
|
+
Atualizacao pelos pacotes publicados:
|
|
175
190
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
- mantenha artefatos gerados fora do Git quando nao forem necessarios;
|
|
183
|
-
- use `.gitignore`;
|
|
184
|
-
- publique com `README.md`, `LICENSE`, `docs/`, `protocol/`, `cases/`,
|
|
185
|
-
`examples/`, `schema/`, `eval/` e `scripts/` quando fizer sentido;
|
|
186
|
-
- preserve o posicionamento como pesquisa experimental e framework em evolucao.
|
|
191
|
+
```powershell
|
|
192
|
+
npm install -g ai-execution-protocol@latest
|
|
193
|
+
python -m pip install --upgrade ai-execution-protocol
|
|
194
|
+
ai-protocol install C:\caminho\projeto
|
|
195
|
+
ai-protocol verify C:\caminho\projeto
|
|
196
|
+
```
|
|
187
197
|
|
|
188
198
|
## Licenca
|
|
189
199
|
|
|
@@ -9,61 +9,17 @@ from datetime import datetime
|
|
|
9
9
|
from importlib import resources
|
|
10
10
|
from pathlib import Path
|
|
11
11
|
|
|
12
|
+
from .install_support import manifest, template
|
|
12
13
|
|
|
13
14
|
MARKER_START = "<!-- AI_PROTOCOL_BEGIN -->"
|
|
14
15
|
MARKER_END = "<!-- AI_PROTOCOL_END -->"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"scripts/__pycache__/",
|
|
21
|
-
"*.pyc",
|
|
16
|
+
MANIFEST = manifest()
|
|
17
|
+
AIIGNORE_LINES = MANIFEST["aiignore_lines"]
|
|
18
|
+
REQUIRED_PROTOCOL_FILES = MANIFEST["protocol_files"]
|
|
19
|
+
REQUIRED_FILES = MANIFEST["required_files"] + [
|
|
20
|
+
f"protocol/{name}" for name in REQUIRED_PROTOCOL_FILES
|
|
22
21
|
]
|
|
23
|
-
|
|
24
|
-
"README.yaml",
|
|
25
|
-
"fast-path.yaml",
|
|
26
|
-
"router.yaml",
|
|
27
|
-
"modes.yaml",
|
|
28
|
-
"execution-rules.yaml",
|
|
29
|
-
"risk-levels.yaml",
|
|
30
|
-
"mapping-checklists.yaml",
|
|
31
|
-
"validation-checklist.yaml",
|
|
32
|
-
"context-rules.yaml",
|
|
33
|
-
"context-compiler.yaml",
|
|
34
|
-
"persistent-context.yaml",
|
|
35
|
-
"formatting-rules.yaml",
|
|
36
|
-
"prompt-economy.yaml",
|
|
37
|
-
"spec-driven.yaml",
|
|
38
|
-
]
|
|
39
|
-
REQUIRED_FILES = [
|
|
40
|
-
"AGENTS.md",
|
|
41
|
-
".aiignore",
|
|
42
|
-
*[f"protocol/{name}" for name in REQUIRED_PROTOCOL_FILES],
|
|
43
|
-
]
|
|
44
|
-
REQUIRED_TEXT = {
|
|
45
|
-
"AGENTS.md": [
|
|
46
|
-
"AI_PROTOCOL_BEGIN",
|
|
47
|
-
"protocol/fast-path.yaml",
|
|
48
|
-
"protocol/router.yaml",
|
|
49
|
-
"Classifique o risco antes de agir",
|
|
50
|
-
"Nenhum arquivo deve passar de 400 linhas.",
|
|
51
|
-
],
|
|
52
|
-
".aiignore": [
|
|
53
|
-
"results/",
|
|
54
|
-
"dist/",
|
|
55
|
-
"*.pyc",
|
|
56
|
-
],
|
|
57
|
-
"protocol/router.yaml": [
|
|
58
|
-
"feature_or_spec",
|
|
59
|
-
"spec-driven.yaml",
|
|
60
|
-
"prompt_improvement",
|
|
61
|
-
],
|
|
62
|
-
"protocol/spec-driven.yaml": [
|
|
63
|
-
"protocol_is_base_spec_is_tool",
|
|
64
|
-
"do_not_create_spec_for_low_value_tasks",
|
|
65
|
-
],
|
|
66
|
-
}
|
|
22
|
+
REQUIRED_TEXT = MANIFEST["required_text"]
|
|
67
23
|
|
|
68
24
|
|
|
69
25
|
def protocol_source() -> resources.abc.Traversable:
|
|
@@ -71,68 +27,7 @@ def protocol_source() -> resources.abc.Traversable:
|
|
|
71
27
|
|
|
72
28
|
|
|
73
29
|
def minimal_agents() -> str:
|
|
74
|
-
return "
|
|
75
|
-
|
|
76
|
-
## Regra principal
|
|
77
|
-
|
|
78
|
-
<!-- AI_PROTOCOL_BEGIN -->
|
|
79
|
-
|
|
80
|
-
Use `protocol/fast-path.yaml` como entrada operacional minima.
|
|
81
|
-
|
|
82
|
-
Siga `.aiignore` antes de abrir relatorios gerados.
|
|
83
|
-
|
|
84
|
-
Este protocolo e obrigatorio para tarefas tecnicas neste projeto. Antes de
|
|
85
|
-
editar, classifique risco, escolha rota e valide a entrega.
|
|
86
|
-
|
|
87
|
-
## Ordem de leitura
|
|
88
|
-
|
|
89
|
-
1. `protocol/fast-path.yaml`
|
|
90
|
-
2. `protocol/router.yaml`
|
|
91
|
-
3. Arquivo YAML especifico em `protocol/` conforme a rota.
|
|
92
|
-
|
|
93
|
-
## Regras de execucao
|
|
94
|
-
|
|
95
|
-
- Classifique o risco antes de agir.
|
|
96
|
-
- Use o menor contexto suficiente.
|
|
97
|
-
- Leia apenas os arquivos indicados por `protocol/router.yaml`.
|
|
98
|
-
- Quando houver contexto grande, historico longo ou risco de confusao, use
|
|
99
|
-
`protocol/context-compiler.yaml` antes de abrir muitos arquivos.
|
|
100
|
-
- Use `protocol/spec-driven.yaml` para feature, refatoracao grande ou tarefa
|
|
101
|
-
critica, sem criar spec pesada para tarefa simples.
|
|
102
|
-
- Sempre entregue `Prompt original` e `Prompt melhorado da IA`; em baixo risco,
|
|
103
|
-
prefira micro formato legivel com `PO`, `PM` e `OK`.
|
|
104
|
-
- Nao edite arquivo que nao foi identificado como candidato.
|
|
105
|
-
- Preserve documentos, regras de IDE e configuracoes de framework existentes,
|
|
106
|
-
salvo pedido explicito do usuario.
|
|
107
|
-
- Se o risco subir, atualize a classificacao antes de continuar.
|
|
108
|
-
- Para nivel critico, peca confirmacao antes de acao sensivel.
|
|
109
|
-
- Quando houver risco de quebrar fluxo existente, entregue uma lista do que
|
|
110
|
-
testar.
|
|
111
|
-
- Entregue com evidencia em poucas linhas: mudanca, validacao, limite e risco
|
|
112
|
-
residual.
|
|
113
|
-
- Explique o resultado em linguagem clara para uma pessoa leiga entender.
|
|
114
|
-
|
|
115
|
-
## Convivencia com arquivos existentes
|
|
116
|
-
|
|
117
|
-
Quando houver conflito, siga esta prioridade:
|
|
118
|
-
|
|
119
|
-
1. pedido atual do usuario;
|
|
120
|
-
2. este 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
|
-
Nao sobrescreva `README.md`, `docs/`, `.cursorrules`, `CLAUDE.md`,
|
|
125
|
-
`.github/copilot-instructions.md` ou configs de framework sem pedido claro.
|
|
126
|
-
|
|
127
|
-
## Regras de organizacao
|
|
128
|
-
|
|
129
|
-
- Nenhum arquivo deve passar de 400 linhas.
|
|
130
|
-
- Organize primeiro para legibilidade por IA.
|
|
131
|
-
- Use YAML para regras operacionais.
|
|
132
|
-
- Evite duplicar a mesma regra em muitos lugares.
|
|
133
|
-
|
|
134
|
-
<!-- AI_PROTOCOL_END -->
|
|
135
|
-
"""
|
|
30
|
+
return template("AGENTS.md")
|
|
136
31
|
|
|
137
32
|
|
|
138
33
|
def protocol_block() -> str:
|
|
@@ -190,6 +85,20 @@ def install_aiignore(target: Path) -> None:
|
|
|
190
85
|
target.write_text("\n".join(lines).strip() + "\n", encoding="utf-8")
|
|
191
86
|
|
|
192
87
|
|
|
88
|
+
def write_if_missing(path: Path, text: str) -> None:
|
|
89
|
+
if path.exists():
|
|
90
|
+
return
|
|
91
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
92
|
+
path.write_text(text, encoding="utf-8")
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def install_context_templates(target_root: Path) -> None:
|
|
96
|
+
for item in MANIFEST["required_files"]:
|
|
97
|
+
if item in {"AGENTS.md", ".aiignore"}:
|
|
98
|
+
continue
|
|
99
|
+
write_if_missing(target_root / item, template(item))
|
|
100
|
+
|
|
101
|
+
|
|
193
102
|
def print_dry_run(target_root: Path, force: bool) -> None:
|
|
194
103
|
print(f"DRY-RUN target -> {target_root.resolve()}")
|
|
195
104
|
print(("update" if (target_root / "AGENTS.md").exists() else "create") + ":AGENTS.md")
|
|
@@ -220,6 +129,7 @@ def install(target: str, force: bool, dry_run: bool = False) -> int:
|
|
|
220
129
|
|
|
221
130
|
install_agents(target_root / "AGENTS.md")
|
|
222
131
|
install_aiignore(target_root / ".aiignore")
|
|
132
|
+
install_context_templates(target_root)
|
|
223
133
|
copy_protocol(target_root / "protocol", force, backup_root)
|
|
224
134
|
|
|
225
135
|
print(f"installed protocol -> {target_root}")
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"protocol_files": [
|
|
3
|
+
"README.yaml",
|
|
4
|
+
"fast-path.yaml",
|
|
5
|
+
"router.yaml",
|
|
6
|
+
"route-packs.yaml",
|
|
7
|
+
"modes.yaml",
|
|
8
|
+
"execution-rules.yaml",
|
|
9
|
+
"risk-levels.yaml",
|
|
10
|
+
"mapping-checklists.yaml",
|
|
11
|
+
"validation-checklist.yaml",
|
|
12
|
+
"selective-validation.yaml",
|
|
13
|
+
"context-rules.yaml",
|
|
14
|
+
"context-compiler.yaml",
|
|
15
|
+
"context-budget.yaml",
|
|
16
|
+
"persistent-context.yaml",
|
|
17
|
+
"adaptive-memory.yaml",
|
|
18
|
+
"formatting-rules.yaml",
|
|
19
|
+
"prompt-economy.yaml",
|
|
20
|
+
"spec-driven.yaml"
|
|
21
|
+
],
|
|
22
|
+
"required_files": [
|
|
23
|
+
"AGENTS.md",
|
|
24
|
+
".aiignore",
|
|
25
|
+
"canonical-state.yaml",
|
|
26
|
+
"context-map.yaml",
|
|
27
|
+
"decisions/README.md",
|
|
28
|
+
"memory/INDEX.yaml",
|
|
29
|
+
"candidate-memory/README.md"
|
|
30
|
+
],
|
|
31
|
+
"aiignore_lines": [
|
|
32
|
+
"results/",
|
|
33
|
+
"benchmarks/generated/",
|
|
34
|
+
"model-runs/generated/",
|
|
35
|
+
"dist/",
|
|
36
|
+
"scripts/__pycache__/",
|
|
37
|
+
"*.pyc"
|
|
38
|
+
],
|
|
39
|
+
"required_text": {
|
|
40
|
+
"AGENTS.md": [
|
|
41
|
+
"AI_PROTOCOL_BEGIN",
|
|
42
|
+
"protocol/fast-path.yaml",
|
|
43
|
+
"protocol/router.yaml",
|
|
44
|
+
"protocol/route-packs.yaml",
|
|
45
|
+
"Classifique o risco antes de agir"
|
|
46
|
+
],
|
|
47
|
+
"memory/INDEX.yaml": [
|
|
48
|
+
"memory_index",
|
|
49
|
+
"read_only_matching_subjects"
|
|
50
|
+
],
|
|
51
|
+
"protocol/adaptive-memory.yaml": [
|
|
52
|
+
"memory_guides_current_request_authorizes",
|
|
53
|
+
"blocked_sensitive"
|
|
54
|
+
],
|
|
55
|
+
"protocol/context-budget.yaml": [
|
|
56
|
+
"budget_guides_reading",
|
|
57
|
+
"stop_when"
|
|
58
|
+
],
|
|
59
|
+
"protocol/selective-validation.yaml": [
|
|
60
|
+
"smallest_validation_set",
|
|
61
|
+
"release"
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""Shared installation data loaded from packaged manifest and templates."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
from importlib import resources
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
PACKAGE = resources.files("ai_execution_protocol")
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def manifest() -> dict:
|
|
13
|
+
return json.loads(PACKAGE.joinpath("install-manifest.json").read_text(encoding="utf-8"))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def template(path: str) -> str:
|
|
17
|
+
return PACKAGE.joinpath("templates", "minimal", *path.split("/")).read_text(encoding="utf-8")
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
id: protocol_index
|
|
2
2
|
type: index
|
|
3
3
|
format: yaml
|
|
4
|
-
protocol_version: 0.
|
|
4
|
+
protocol_version: 0.3.0
|
|
5
5
|
purpose: ai_operational_rules
|
|
6
6
|
source_docs: ../docs
|
|
7
7
|
constraints:
|
|
@@ -13,6 +13,8 @@ files:
|
|
|
13
13
|
purpose: minimum_rules_to_start_any_task
|
|
14
14
|
- path: router.yaml
|
|
15
15
|
purpose: choose_minimum_files_to_read_by_task
|
|
16
|
+
- path: route-packs.yaml
|
|
17
|
+
purpose: compact_first_read_before_full_route_files
|
|
16
18
|
- path: modes.yaml
|
|
17
19
|
purpose: choose_fast_balanced_or_strict_behavior
|
|
18
20
|
- path: execution-rules.yaml
|
|
@@ -23,12 +25,18 @@ files:
|
|
|
23
25
|
purpose: pre_change_maps_by_risk
|
|
24
26
|
- path: validation-checklist.yaml
|
|
25
27
|
purpose: validation_and_final_delivery
|
|
28
|
+
- path: selective-validation.yaml
|
|
29
|
+
purpose: choose_smallest_sufficient_validation
|
|
26
30
|
- path: context-rules.yaml
|
|
27
31
|
purpose: context_window_file_size_memory
|
|
28
32
|
- path: context-compiler.yaml
|
|
29
33
|
purpose: compile_minimum_context_package_and_canonical_state
|
|
34
|
+
- path: context-budget.yaml
|
|
35
|
+
purpose: enforce_context_cost_limits_by_risk
|
|
30
36
|
- path: persistent-context.yaml
|
|
31
37
|
purpose: progressive_context_retrieval_with_aliases
|
|
38
|
+
- path: adaptive-memory.yaml
|
|
39
|
+
purpose: maintain_verified_user_and_project_memory
|
|
32
40
|
- path: formatting-rules.yaml
|
|
33
41
|
purpose: ai_readable_file_format
|
|
34
42
|
- path: prompt-economy.yaml
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
id: adaptive_memory
|
|
2
|
+
type: operational_rules
|
|
3
|
+
version: 0.3
|
|
4
|
+
purpose: evolve_with_user_and_project_through_verified_external_memory
|
|
5
|
+
principle: memory_guides_current_request_authorizes_verified_files_define_reality
|
|
6
|
+
entrypoints:
|
|
7
|
+
- memory/INDEX.yaml
|
|
8
|
+
- memory/user/
|
|
9
|
+
- memory/projects/
|
|
10
|
+
- memory/patterns/
|
|
11
|
+
- candidate-memory/
|
|
12
|
+
authority_order:
|
|
13
|
+
- current_user_request
|
|
14
|
+
- verified_current_files
|
|
15
|
+
- active_project_decisions
|
|
16
|
+
- explicit_user_preferences
|
|
17
|
+
- inferred_patterns_with_evidence
|
|
18
|
+
- conversation_summary
|
|
19
|
+
- old_history
|
|
20
|
+
memory_types:
|
|
21
|
+
explicit_preference:
|
|
22
|
+
promotion: automatic_when_non_sensitive_and_explicit
|
|
23
|
+
project_decision:
|
|
24
|
+
promotion: automatic_when_confirmed_and_scoped
|
|
25
|
+
project_state:
|
|
26
|
+
promotion: require_current_file_evidence
|
|
27
|
+
inferred_preference:
|
|
28
|
+
promotion: candidate_until_repeated_or_confirmed
|
|
29
|
+
workflow_pattern:
|
|
30
|
+
promotion: candidate_until_repeated
|
|
31
|
+
conversation_summary:
|
|
32
|
+
promotion: optional_and_never_mandatory_context
|
|
33
|
+
required_fields:
|
|
34
|
+
- id
|
|
35
|
+
- type
|
|
36
|
+
- subject
|
|
37
|
+
- value
|
|
38
|
+
- scope
|
|
39
|
+
- status
|
|
40
|
+
- confidence
|
|
41
|
+
- source
|
|
42
|
+
- evidence_count
|
|
43
|
+
- sensitive
|
|
44
|
+
- created_at
|
|
45
|
+
- updated_at
|
|
46
|
+
status:
|
|
47
|
+
active:
|
|
48
|
+
use: current_memory
|
|
49
|
+
candidate:
|
|
50
|
+
use: not_authoritative
|
|
51
|
+
replaced:
|
|
52
|
+
use: history_only
|
|
53
|
+
revoked:
|
|
54
|
+
use: never_as_current_truth
|
|
55
|
+
expired:
|
|
56
|
+
use: revalidate_before_use
|
|
57
|
+
maintenance:
|
|
58
|
+
always_check_after_task: true
|
|
59
|
+
allowed_results:
|
|
60
|
+
- updated
|
|
61
|
+
- unchanged
|
|
62
|
+
- candidate
|
|
63
|
+
- replaced
|
|
64
|
+
- blocked_sensitive
|
|
65
|
+
flow:
|
|
66
|
+
- extract_candidate
|
|
67
|
+
- classify_sensitivity
|
|
68
|
+
- search_existing_subject_and_aliases
|
|
69
|
+
- compare_value_scope_and_source
|
|
70
|
+
- merge_replace_or_discard
|
|
71
|
+
- update_index
|
|
72
|
+
- validate_duplicates_conflicts_and_size
|
|
73
|
+
safety:
|
|
74
|
+
never_store:
|
|
75
|
+
- passwords
|
|
76
|
+
- api_tokens
|
|
77
|
+
- private_keys
|
|
78
|
+
- customer_data
|
|
79
|
+
- unnecessary_personal_data
|
|
80
|
+
- raw_logs
|
|
81
|
+
- unredacted_sensitive_conversation
|
|
82
|
+
prediction:
|
|
83
|
+
allow:
|
|
84
|
+
- suggest_likely_preference
|
|
85
|
+
- choose_low_risk_defaults
|
|
86
|
+
never:
|
|
87
|
+
- expand_scope
|
|
88
|
+
- authorize_sensitive_action
|
|
89
|
+
- override_current_request
|
|
90
|
+
- claim_perfect_prediction
|
|
91
|
+
economy:
|
|
92
|
+
- read_index_before_memory_files
|
|
93
|
+
- retrieve_only_matching_subjects
|
|
94
|
+
- do_not_load_archive_by_default
|
|
95
|
+
- do_not_write_when_result_is_unchanged
|
|
96
|
+
- keep_one_trackable_subject_per_file
|
|
97
|
+
- enforce_context_budget
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
id: context_budget
|
|
2
|
+
type: operational_rules
|
|
3
|
+
version: 0.3
|
|
4
|
+
purpose: limit_context_cost_without_trading_correctness_or_safety
|
|
5
|
+
principle: budget_guides_reading_risk_can_justify_expansion
|
|
6
|
+
levels:
|
|
7
|
+
level_0:
|
|
8
|
+
initial_tokens_est: 300
|
|
9
|
+
max_files_before_justification: 2
|
|
10
|
+
level_1:
|
|
11
|
+
initial_tokens_est: 1000
|
|
12
|
+
max_files_before_justification: 5
|
|
13
|
+
level_2:
|
|
14
|
+
initial_tokens_est: 4000
|
|
15
|
+
max_files_before_justification: 12
|
|
16
|
+
level_3:
|
|
17
|
+
initial_tokens_est: 6000
|
|
18
|
+
mode: adaptive
|
|
19
|
+
max_files_before_justification: 20
|
|
20
|
+
count:
|
|
21
|
+
- protocol_rules
|
|
22
|
+
- memory_entries
|
|
23
|
+
- project_docs
|
|
24
|
+
- code_snippets
|
|
25
|
+
exclude:
|
|
26
|
+
- generated_reports_not_read
|
|
27
|
+
- files_only_listed_not_opened
|
|
28
|
+
expansion_requires:
|
|
29
|
+
- unresolved_risk
|
|
30
|
+
- missing_dependency
|
|
31
|
+
- unclear_scope
|
|
32
|
+
- insufficient_snippet
|
|
33
|
+
- validation_gap
|
|
34
|
+
stop_when:
|
|
35
|
+
- objective_is_clear
|
|
36
|
+
- target_is_identified
|
|
37
|
+
- risk_is_classified
|
|
38
|
+
- validation_plan_is_clear
|
|
39
|
+
- no_unresolved_gap_requires_more_context
|
|
40
|
+
delivery:
|
|
41
|
+
report_when_exceeded:
|
|
42
|
+
- initial_budget
|
|
43
|
+
- estimated_context_used
|
|
44
|
+
- expansion_reason
|