ai-execution-protocol 0.2.1__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.1 → ai_execution_protocol-0.3.0}/PKG-INFO +30 -7
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/README.md +29 -6
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/cli.py +12 -183
- 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.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/README.yaml +7 -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.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/context-compiler.yaml +24 -1
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/fast-path.yaml +6 -1
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/persistent-context.yaml +13 -3
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/prompt-economy.yaml +16 -8
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/route-packs.yaml +32 -1
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/router.yaml +23 -1
- ai_execution_protocol-0.3.0/ai_execution_protocol/protocol/selective-validation.yaml +44 -0
- {ai_execution_protocol-0.2.1 → 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.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol.egg-info/PKG-INFO +30 -7
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol.egg-info/SOURCES.txt +12 -1
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/pyproject.toml +10 -4
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/LICENSE +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/__init__.py +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/__main__.py +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/__init__.py +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/context-rules.yaml +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/execution-rules.yaml +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/formatting-rules.yaml +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/mapping-checklists.yaml +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/modes.yaml +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/risk-levels.yaml +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol/protocol/spec-driven.yaml +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol.egg-info/dependency_links.txt +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol.egg-info/entry_points.txt +0 -0
- {ai_execution_protocol-0.2.1 → ai_execution_protocol-0.3.0}/ai_execution_protocol.egg-info/top_level.txt +0 -0
- {ai_execution_protocol-0.2.1 → 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,6 +79,8 @@ 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.
|
|
83
86
|
- `protocol/route-packs.yaml`: resumos compactos para reduzir leitura por rota.
|
|
@@ -104,8 +107,9 @@ continuam obrigatorios em tarefas criticas.
|
|
|
104
107
|
7. Consulte `protocol/route-packs.yaml` antes de abrir todos os YAML da rota.
|
|
105
108
|
8. Abra arquivos completos apenas quando o resumo compacto nao bastar.
|
|
106
109
|
9. Execute, valide e entregue com evidencia.
|
|
110
|
+
10. Atualize memoria apenas quando surgir um fato duravel e seguro.
|
|
107
111
|
|
|
108
|
-
Regra de seguranca
|
|
112
|
+
Regra de seguranca:
|
|
109
113
|
|
|
110
114
|
```text
|
|
111
115
|
A IA pode expandir contexto.
|
|
@@ -127,6 +131,9 @@ Comece por:
|
|
|
127
131
|
- `docs/05-validacao-e-entrega.md`
|
|
128
132
|
- `docs/15-contexto-persistente.md`
|
|
129
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`
|
|
130
137
|
|
|
131
138
|
Use `docs/` para entender a metodologia. Use `protocol/` quando quiser aplicar
|
|
132
139
|
as regras em uma tarefa real.
|
|
@@ -151,6 +158,13 @@ Meca custo aproximado de leitura por rota:
|
|
|
151
158
|
python scripts/token_report.py
|
|
152
159
|
```
|
|
153
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
|
+
|
|
154
168
|
## Instalacao em outro projeto
|
|
155
169
|
|
|
156
170
|
Projeto novo:
|
|
@@ -193,6 +207,15 @@ python scripts/verify_install.py --target C:\caminho\projeto
|
|
|
193
207
|
|
|
194
208
|
O final esperado da verificacao e `PASS`.
|
|
195
209
|
|
|
210
|
+
Atualizacao pelos pacotes publicados:
|
|
211
|
+
|
|
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
|
+
```
|
|
218
|
+
|
|
196
219
|
## Licenca
|
|
197
220
|
|
|
198
221
|
Distribuido sob a licenca MIT. Veja `LICENSE`.
|
|
@@ -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,6 +58,8 @@ 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.
|
|
62
65
|
- `protocol/route-packs.yaml`: resumos compactos para reduzir leitura por rota.
|
|
@@ -83,8 +86,9 @@ continuam obrigatorios em tarefas criticas.
|
|
|
83
86
|
7. Consulte `protocol/route-packs.yaml` antes de abrir todos os YAML da rota.
|
|
84
87
|
8. Abra arquivos completos apenas quando o resumo compacto nao bastar.
|
|
85
88
|
9. Execute, valide e entregue com evidencia.
|
|
89
|
+
10. Atualize memoria apenas quando surgir um fato duravel e seguro.
|
|
86
90
|
|
|
87
|
-
Regra de seguranca
|
|
91
|
+
Regra de seguranca:
|
|
88
92
|
|
|
89
93
|
```text
|
|
90
94
|
A IA pode expandir contexto.
|
|
@@ -106,6 +110,9 @@ Comece por:
|
|
|
106
110
|
- `docs/05-validacao-e-entrega.md`
|
|
107
111
|
- `docs/15-contexto-persistente.md`
|
|
108
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`
|
|
109
116
|
|
|
110
117
|
Use `docs/` para entender a metodologia. Use `protocol/` quando quiser aplicar
|
|
111
118
|
as regras em uma tarefa real.
|
|
@@ -130,6 +137,13 @@ Meca custo aproximado de leitura por rota:
|
|
|
130
137
|
python scripts/token_report.py
|
|
131
138
|
```
|
|
132
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
|
+
|
|
133
147
|
## Instalacao em outro projeto
|
|
134
148
|
|
|
135
149
|
Projeto novo:
|
|
@@ -172,6 +186,15 @@ python scripts/verify_install.py --target C:\caminho\projeto
|
|
|
172
186
|
|
|
173
187
|
O final esperado da verificacao e `PASS`.
|
|
174
188
|
|
|
189
|
+
Atualizacao pelos pacotes publicados:
|
|
190
|
+
|
|
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
|
+
```
|
|
197
|
+
|
|
175
198
|
## Licenca
|
|
176
199
|
|
|
177
200
|
Distribuido sob a licenca MIT. Veja `LICENSE`.
|
|
@@ -9,126 +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
|
-
MINIMAL_CANONICAL_STATE = """id: canonical_state
|
|
25
|
-
type: project_state
|
|
26
|
-
version: 0.1
|
|
27
|
-
purpose: small_current_truth_summary_for_ai_navigation
|
|
28
|
-
status: bootstrap_template
|
|
29
|
-
truth_order:
|
|
30
|
-
- current_user_request
|
|
31
|
-
- verified_current_files
|
|
32
|
-
- protocol_rules
|
|
33
|
-
- project_docs
|
|
34
|
-
- conversation_history
|
|
35
|
-
notes:
|
|
36
|
-
- update_this_file_when_project_state_or_decisions_change
|
|
37
|
-
- do_not_treat_this_file_as_truth_without_current_file_verification
|
|
38
|
-
"""
|
|
39
|
-
|
|
40
|
-
MINIMAL_CONTEXT_MAP = """id: project_context_map
|
|
41
|
-
type: context_map
|
|
42
|
-
version: 0.1
|
|
43
|
-
purpose: small_index_for_progressive_context_retrieval
|
|
44
|
-
maintenance:
|
|
45
|
-
current_mode: manual_bootstrap
|
|
46
|
-
rule: aliases_are_pointers_not_truth
|
|
47
|
-
read_first:
|
|
48
|
-
- canonical-state.yaml
|
|
49
|
-
- protocol/fast-path.yaml
|
|
50
|
-
- protocol/router.yaml
|
|
51
|
-
- protocol/route-packs.yaml
|
|
52
|
-
domains: {}
|
|
53
|
-
retrieval_policy:
|
|
54
|
-
order:
|
|
55
|
-
- match_domain_by_alias
|
|
56
|
-
- read_domain_docs_only_when_needed
|
|
57
|
-
- search_candidate_files_or_symbols
|
|
58
|
-
- read_relevant_snippet_first
|
|
59
|
-
- read_full_file_when_snippet_is_not_enough
|
|
60
|
-
"""
|
|
61
|
-
|
|
62
|
-
MINIMAL_DECISIONS_README = """# Decisions
|
|
63
|
-
|
|
64
|
-
Use esta pasta para registrar decisoes estaveis que a IA deve considerar ao
|
|
65
|
-
mapear contexto.
|
|
66
|
-
|
|
67
|
-
Cada decisao deve indicar status, escopo, impacto e arquivo relacionado quando
|
|
68
|
-
existir.
|
|
69
|
-
"""
|
|
70
|
-
REQUIRED_PROTOCOL_FILES = [
|
|
71
|
-
"README.yaml",
|
|
72
|
-
"fast-path.yaml",
|
|
73
|
-
"router.yaml",
|
|
74
|
-
"route-packs.yaml",
|
|
75
|
-
"modes.yaml",
|
|
76
|
-
"execution-rules.yaml",
|
|
77
|
-
"risk-levels.yaml",
|
|
78
|
-
"mapping-checklists.yaml",
|
|
79
|
-
"validation-checklist.yaml",
|
|
80
|
-
"context-rules.yaml",
|
|
81
|
-
"context-compiler.yaml",
|
|
82
|
-
"persistent-context.yaml",
|
|
83
|
-
"formatting-rules.yaml",
|
|
84
|
-
"prompt-economy.yaml",
|
|
85
|
-
"spec-driven.yaml",
|
|
86
|
-
]
|
|
87
|
-
REQUIRED_FILES = [
|
|
88
|
-
"AGENTS.md",
|
|
89
|
-
".aiignore",
|
|
90
|
-
"canonical-state.yaml",
|
|
91
|
-
"context-map.yaml",
|
|
92
|
-
"decisions/README.md",
|
|
93
|
-
*[f"protocol/{name}" for name in REQUIRED_PROTOCOL_FILES],
|
|
94
|
-
]
|
|
95
|
-
REQUIRED_TEXT = {
|
|
96
|
-
"AGENTS.md": [
|
|
97
|
-
"AI_PROTOCOL_BEGIN",
|
|
98
|
-
"protocol/fast-path.yaml",
|
|
99
|
-
"protocol/router.yaml",
|
|
100
|
-
"protocol/route-packs.yaml",
|
|
101
|
-
"Classifique o risco antes de agir",
|
|
102
|
-
"Nenhum arquivo deve passar de 400 linhas.",
|
|
103
|
-
],
|
|
104
|
-
".aiignore": [
|
|
105
|
-
"results/",
|
|
106
|
-
"dist/",
|
|
107
|
-
"*.pyc",
|
|
108
|
-
],
|
|
109
|
-
"canonical-state.yaml": [
|
|
110
|
-
"canonical_state",
|
|
111
|
-
"truth_order",
|
|
112
|
-
],
|
|
113
|
-
"context-map.yaml": [
|
|
114
|
-
"project_context_map",
|
|
115
|
-
"aliases_are_pointers_not_truth",
|
|
116
|
-
],
|
|
117
|
-
"protocol/router.yaml": [
|
|
118
|
-
"feature_or_spec",
|
|
119
|
-
"spec-driven.yaml",
|
|
120
|
-
"prompt_improvement",
|
|
121
|
-
],
|
|
122
|
-
"protocol/route-packs.yaml": [
|
|
123
|
-
"read_pack_first_expand_only_when_needed",
|
|
124
|
-
"simple_answer",
|
|
125
|
-
"context_optimization",
|
|
126
|
-
],
|
|
127
|
-
"protocol/spec-driven.yaml": [
|
|
128
|
-
"protocol_is_base_spec_is_tool",
|
|
129
|
-
"do_not_create_spec_for_low_value_tasks",
|
|
130
|
-
],
|
|
131
|
-
}
|
|
22
|
+
REQUIRED_TEXT = MANIFEST["required_text"]
|
|
132
23
|
|
|
133
24
|
|
|
134
25
|
def protocol_source() -> resources.abc.Traversable:
|
|
@@ -136,70 +27,7 @@ def protocol_source() -> resources.abc.Traversable:
|
|
|
136
27
|
|
|
137
28
|
|
|
138
29
|
def minimal_agents() -> str:
|
|
139
|
-
return "
|
|
140
|
-
|
|
141
|
-
## Regra principal
|
|
142
|
-
|
|
143
|
-
<!-- AI_PROTOCOL_BEGIN -->
|
|
144
|
-
|
|
145
|
-
Use `protocol/fast-path.yaml` como entrada operacional minima.
|
|
146
|
-
|
|
147
|
-
Siga `.aiignore` antes de abrir relatorios gerados.
|
|
148
|
-
|
|
149
|
-
Este protocolo e obrigatorio para tarefas tecnicas neste projeto. Antes de
|
|
150
|
-
editar, classifique risco, escolha rota e valide a entrega.
|
|
151
|
-
|
|
152
|
-
## Ordem de leitura
|
|
153
|
-
|
|
154
|
-
1. `protocol/fast-path.yaml`
|
|
155
|
-
2. `protocol/router.yaml`
|
|
156
|
-
3. `protocol/route-packs.yaml` para ler o resumo compacto da rota.
|
|
157
|
-
4. Arquivo YAML especifico em `protocol/` somente quando o pack nao bastar.
|
|
158
|
-
|
|
159
|
-
## Regras de execucao
|
|
160
|
-
|
|
161
|
-
- Classifique o risco antes de agir.
|
|
162
|
-
- Use o menor contexto suficiente.
|
|
163
|
-
- Leia apenas os arquivos indicados por `protocol/router.yaml`.
|
|
164
|
-
- Use `protocol/route-packs.yaml` antes de abrir todos os arquivos da rota.
|
|
165
|
-
- Quando houver contexto grande, historico longo ou risco de confusao, use
|
|
166
|
-
`protocol/context-compiler.yaml` antes de abrir muitos arquivos.
|
|
167
|
-
- Use `protocol/spec-driven.yaml` para feature, refatoracao grande ou tarefa
|
|
168
|
-
critica, sem criar spec pesada para tarefa simples.
|
|
169
|
-
- Sempre entregue `Prompt original` e `Prompt melhorado da IA`; em baixo risco,
|
|
170
|
-
prefira micro formato legivel com `PO`, `PM` e `OK`.
|
|
171
|
-
- Nao edite arquivo que nao foi identificado como candidato.
|
|
172
|
-
- Preserve documentos, regras de IDE e configuracoes de framework existentes,
|
|
173
|
-
salvo pedido explicito do usuario.
|
|
174
|
-
- Se o risco subir, atualize a classificacao antes de continuar.
|
|
175
|
-
- Para nivel critico, peca confirmacao antes de acao sensivel.
|
|
176
|
-
- Quando houver risco de quebrar fluxo existente, entregue uma lista do que
|
|
177
|
-
testar.
|
|
178
|
-
- Entregue com evidencia em poucas linhas: mudanca, validacao, limite e risco
|
|
179
|
-
residual.
|
|
180
|
-
- Explique o resultado em linguagem clara para uma pessoa leiga entender.
|
|
181
|
-
|
|
182
|
-
## Convivencia com arquivos existentes
|
|
183
|
-
|
|
184
|
-
Quando houver conflito, siga esta prioridade:
|
|
185
|
-
|
|
186
|
-
1. pedido atual do usuario;
|
|
187
|
-
2. este bloco obrigatorio em `AGENTS.md`;
|
|
188
|
-
3. regras especificas da IDE ou do projeto;
|
|
189
|
-
4. docs e historico somente quando a rota pedir.
|
|
190
|
-
|
|
191
|
-
Nao sobrescreva `README.md`, `docs/`, `.cursorrules`, `CLAUDE.md`,
|
|
192
|
-
`.github/copilot-instructions.md` ou configs de framework sem pedido claro.
|
|
193
|
-
|
|
194
|
-
## Regras de organizacao
|
|
195
|
-
|
|
196
|
-
- Nenhum arquivo deve passar de 400 linhas.
|
|
197
|
-
- Organize primeiro para legibilidade por IA.
|
|
198
|
-
- Use YAML para regras operacionais.
|
|
199
|
-
- Evite duplicar a mesma regra em muitos lugares.
|
|
200
|
-
|
|
201
|
-
<!-- AI_PROTOCOL_END -->
|
|
202
|
-
"""
|
|
30
|
+
return template("AGENTS.md")
|
|
203
31
|
|
|
204
32
|
|
|
205
33
|
def protocol_block() -> str:
|
|
@@ -265,9 +93,10 @@ def write_if_missing(path: Path, text: str) -> None:
|
|
|
265
93
|
|
|
266
94
|
|
|
267
95
|
def install_context_templates(target_root: Path) -> None:
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
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))
|
|
271
100
|
|
|
272
101
|
|
|
273
102
|
def print_dry_run(target_root: Path, force: bool) -> None:
|
|
@@ -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:
|
|
@@ -25,12 +25,18 @@ files:
|
|
|
25
25
|
purpose: pre_change_maps_by_risk
|
|
26
26
|
- path: validation-checklist.yaml
|
|
27
27
|
purpose: validation_and_final_delivery
|
|
28
|
+
- path: selective-validation.yaml
|
|
29
|
+
purpose: choose_smallest_sufficient_validation
|
|
28
30
|
- path: context-rules.yaml
|
|
29
31
|
purpose: context_window_file_size_memory
|
|
30
32
|
- path: context-compiler.yaml
|
|
31
33
|
purpose: compile_minimum_context_package_and_canonical_state
|
|
34
|
+
- path: context-budget.yaml
|
|
35
|
+
purpose: enforce_context_cost_limits_by_risk
|
|
32
36
|
- path: persistent-context.yaml
|
|
33
37
|
purpose: progressive_context_retrieval_with_aliases
|
|
38
|
+
- path: adaptive-memory.yaml
|
|
39
|
+
purpose: maintain_verified_user_and_project_memory
|
|
34
40
|
- path: formatting-rules.yaml
|
|
35
41
|
purpose: ai_readable_file_format
|
|
36
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
|