ai-execution-protocol 0.2.1 → 0.3.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 +11 -1
- package/README.md +29 -6
- package/dist/minimal/.aiignore +8 -8
- package/dist/minimal/AGENTS.md +41 -63
- package/dist/minimal/candidate-memory/README.md +4 -0
- package/dist/minimal/canonical-state.yaml +16 -14
- package/dist/minimal/context-map.yaml +22 -20
- package/dist/minimal/decisions/README.md +4 -7
- package/dist/minimal/memory/INDEX.yaml +20 -0
- package/dist/minimal/protocol/README.yaml +7 -1
- package/dist/minimal/protocol/adaptive-memory.yaml +97 -0
- package/dist/minimal/protocol/context-budget.yaml +44 -0
- package/dist/minimal/protocol/context-compiler.yaml +24 -1
- package/dist/minimal/protocol/fast-path.yaml +6 -1
- package/dist/minimal/protocol/persistent-context.yaml +13 -3
- package/dist/minimal/protocol/prompt-economy.yaml +16 -8
- package/dist/minimal/protocol/route-packs.yaml +32 -1
- package/dist/minimal/protocol/router.yaml +23 -1
- package/dist/minimal/protocol/selective-validation.yaml +44 -0
- package/dist/minimal/protocol/validation-checklist.yaml +10 -1
- package/install-manifest.json +64 -0
- package/package.json +3 -1
- package/protocol/README.yaml +7 -1
- package/protocol/adaptive-memory.yaml +97 -0
- package/protocol/context-budget.yaml +44 -0
- package/protocol/context-compiler.yaml +24 -1
- package/protocol/fast-path.yaml +6 -1
- package/protocol/persistent-context.yaml +13 -3
- package/protocol/prompt-economy.yaml +16 -8
- package/protocol/route-packs.yaml +32 -1
- package/protocol/router.yaml +23 -1
- package/protocol/selective-validation.yaml +44 -0
- package/protocol/validation-checklist.yaml +10 -1
- package/scripts/README.md +43 -0
- package/scripts/build_dist.py +12 -151
- package/scripts/npm_install_protocol.js +10 -161
- package/scripts/verify_install.py +23 -79
- package/templates/minimal/.aiignore +8 -0
- package/templates/minimal/AGENTS.md +41 -0
- package/templates/minimal/candidate-memory/README.md +4 -0
- package/templates/minimal/canonical-state.yaml +16 -0
- package/templates/minimal/context-map.yaml +22 -0
- package/templates/minimal/decisions/README.md +4 -0
- package/templates/minimal/memory/INDEX.yaml +20 -0
package/AGENTS.md
CHANGED
|
@@ -25,7 +25,9 @@ metodologia. Para executar tarefas, prefira as regras curtas em `protocol/`.
|
|
|
25
25
|
1. `protocol/fast-path.yaml`
|
|
26
26
|
2. `protocol/router.yaml`
|
|
27
27
|
3. `protocol/route-packs.yaml` para ler o resumo compacto da rota.
|
|
28
|
-
4.
|
|
28
|
+
4. `protocol/context-budget.yaml` para limitar a leitura inicial.
|
|
29
|
+
5. `memory/INDEX.yaml` somente quando memoria puder ajudar.
|
|
30
|
+
6. Arquivo YAML especifico em `protocol/` somente quando o pack nao bastar:
|
|
29
31
|
- `README.yaml`
|
|
30
32
|
- `modes.yaml`
|
|
31
33
|
- `execution-rules.yaml`
|
|
@@ -34,6 +36,9 @@ metodologia. Para executar tarefas, prefira as regras curtas em `protocol/`.
|
|
|
34
36
|
- `validation-checklist.yaml`
|
|
35
37
|
- `context-rules.yaml`
|
|
36
38
|
- `context-compiler.yaml`
|
|
39
|
+
- `context-budget.yaml`
|
|
40
|
+
- `adaptive-memory.yaml`
|
|
41
|
+
- `selective-validation.yaml`
|
|
37
42
|
- `route-packs.yaml`
|
|
38
43
|
- `formatting-rules.yaml`
|
|
39
44
|
- `prompt-economy.yaml`
|
|
@@ -57,6 +62,11 @@ metodologia. Para executar tarefas, prefira as regras curtas em `protocol/`.
|
|
|
57
62
|
- Use o menor contexto suficiente.
|
|
58
63
|
- Leia apenas os arquivos indicados por `protocol/router.yaml`.
|
|
59
64
|
- Use `protocol/route-packs.yaml` antes de abrir todos os arquivos da rota.
|
|
65
|
+
- Respeite `protocol/context-budget.yaml` e justifique expansao.
|
|
66
|
+
- Leia apenas assuntos de memoria relacionados ao pedido.
|
|
67
|
+
- Ao terminar, registre `updated`, `unchanged`, `candidate`, `replaced` ou
|
|
68
|
+
`blocked_sensitive`.
|
|
69
|
+
- Use validacao seletiva e aumente apenas quando o impacto exigir.
|
|
60
70
|
- Quando houver contexto grande, historico longo ou risco de confusao, use
|
|
61
71
|
`protocol/context-compiler.yaml` antes de abrir muitos arquivos.
|
|
62
72
|
- Siga `.aiignore` e `INDEX.yaml/read_policy.ignore_by_default` antes de abrir
|
package/README.md
CHANGED
|
@@ -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`.
|
package/dist/minimal/.aiignore
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
scripts/__pycache__/
|
|
8
|
-
*.pyc
|
|
1
|
+
results/
|
|
2
|
+
benchmarks/generated/
|
|
3
|
+
model-runs/generated/
|
|
4
|
+
dist/
|
|
5
|
+
memory/archive/
|
|
6
|
+
candidate-memory/
|
|
7
|
+
scripts/__pycache__/
|
|
8
|
+
*.pyc
|
package/dist/minimal/AGENTS.md
CHANGED
|
@@ -1,63 +1,41 @@
|
|
|
1
|
-
# AGENTS.md
|
|
2
|
-
|
|
3
|
-
## Regra principal
|
|
4
|
-
|
|
5
|
-
<!-- AI_PROTOCOL_BEGIN -->
|
|
6
|
-
|
|
7
|
-
Use `protocol/fast-path.yaml` como entrada operacional minima.
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## Regras de execucao
|
|
22
|
-
|
|
23
|
-
- Classifique o risco antes de agir.
|
|
24
|
-
- Use o menor contexto suficiente.
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
- Explique o resultado em linguagem clara para uma pessoa leiga entender.
|
|
43
|
-
|
|
44
|
-
## Convivencia com arquivos existentes
|
|
45
|
-
|
|
46
|
-
Quando houver conflito, siga esta prioridade:
|
|
47
|
-
|
|
48
|
-
1. pedido atual do usuario;
|
|
49
|
-
2. este bloco obrigatorio em `AGENTS.md`;
|
|
50
|
-
3. regras especificas da IDE ou do projeto;
|
|
51
|
-
4. docs e historico somente quando a rota pedir.
|
|
52
|
-
|
|
53
|
-
Nao sobrescreva `README.md`, `docs/`, `.cursorrules`, `CLAUDE.md`,
|
|
54
|
-
`.github/copilot-instructions.md` ou configs de framework sem pedido claro.
|
|
55
|
-
|
|
56
|
-
## Regras de organizacao
|
|
57
|
-
|
|
58
|
-
- Nenhum arquivo deve passar de 400 linhas.
|
|
59
|
-
- Organize primeiro para legibilidade por IA.
|
|
60
|
-
- Use YAML para regras operacionais.
|
|
61
|
-
- Evite duplicar a mesma regra em muitos lugares.
|
|
62
|
-
|
|
63
|
-
<!-- AI_PROTOCOL_END -->
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
## Regra principal
|
|
4
|
+
|
|
5
|
+
<!-- AI_PROTOCOL_BEGIN -->
|
|
6
|
+
|
|
7
|
+
Use `protocol/fast-path.yaml` como entrada operacional minima.
|
|
8
|
+
|
|
9
|
+
Este protocolo e obrigatorio para tarefas tecnicas. Classifique risco, escolha
|
|
10
|
+
rota, consulte o pack compacto, carregue somente memoria relevante e valide a
|
|
11
|
+
entrega.
|
|
12
|
+
|
|
13
|
+
## Ordem de leitura
|
|
14
|
+
|
|
15
|
+
1. `protocol/fast-path.yaml`
|
|
16
|
+
2. `protocol/router.yaml`
|
|
17
|
+
3. `protocol/route-packs.yaml`
|
|
18
|
+
4. `memory/INDEX.yaml` somente quando memoria puder ajudar
|
|
19
|
+
5. YAML completo da rota somente quando o pack nao bastar
|
|
20
|
+
|
|
21
|
+
## Regras de execucao
|
|
22
|
+
|
|
23
|
+
- Classifique o risco antes de agir.
|
|
24
|
+
- Use o menor contexto suficiente e respeite `protocol/context-budget.yaml`.
|
|
25
|
+
- Memoria orienta; pedido atual autoriza; codigo verificado define realidade.
|
|
26
|
+
- Nunca amplie escopo com base em previsao ou preferencia antiga.
|
|
27
|
+
- Use `protocol/selective-validation.yaml` para escolher a menor prova suficiente.
|
|
28
|
+
- Ao terminar, verifique memoria: updated, unchanged, candidate, replaced ou
|
|
29
|
+
blocked_sensitive.
|
|
30
|
+
- Nao persista segredo, token, dado de cliente ou informacao pessoal desnecessaria.
|
|
31
|
+
- Para nivel critico, peca confirmacao antes de acao sensivel.
|
|
32
|
+
- Entregue mudanca, validacao, limite e risco residual em poucas linhas.
|
|
33
|
+
|
|
34
|
+
## Regras de organizacao
|
|
35
|
+
|
|
36
|
+
- Nenhum arquivo fonte deve passar de 400 linhas.
|
|
37
|
+
- Organize por assunto rastreavel.
|
|
38
|
+
- Use YAML para operacao e Markdown para explicacao.
|
|
39
|
+
- Evite duplicar regras e memoria.
|
|
40
|
+
|
|
41
|
+
<!-- AI_PROTOCOL_END -->
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
id: canonical_state
|
|
2
|
-
type: project_state
|
|
3
|
-
version: 0.
|
|
4
|
-
purpose: small_current_truth_summary_for_ai_navigation
|
|
5
|
-
status: bootstrap_template
|
|
6
|
-
truth_order:
|
|
7
|
-
- current_user_request
|
|
8
|
-
- verified_current_files
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
1
|
+
id: canonical_state
|
|
2
|
+
type: project_state
|
|
3
|
+
version: 0.3
|
|
4
|
+
purpose: small_current_truth_summary_for_ai_navigation
|
|
5
|
+
status: bootstrap_template
|
|
6
|
+
truth_order:
|
|
7
|
+
- current_user_request
|
|
8
|
+
- verified_current_files
|
|
9
|
+
- active_project_decisions
|
|
10
|
+
- explicit_user_preferences
|
|
11
|
+
- inferred_patterns_with_evidence
|
|
12
|
+
- project_docs
|
|
13
|
+
- conversation_history
|
|
14
|
+
notes:
|
|
15
|
+
- memory_guides_current_request_authorizes
|
|
16
|
+
- update_when_verified_project_state_changes
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
-
id: project_context_map
|
|
2
|
-
type: context_map
|
|
3
|
-
version: 0.
|
|
4
|
-
purpose: small_index_for_progressive_context_retrieval
|
|
5
|
-
maintenance:
|
|
6
|
-
current_mode: manual_bootstrap
|
|
7
|
-
rule: aliases_are_pointers_not_truth
|
|
8
|
-
read_first:
|
|
9
|
-
- canonical-state.yaml
|
|
10
|
-
- protocol/fast-path.yaml
|
|
11
|
-
- protocol/router.yaml
|
|
12
|
-
- protocol/route-packs.yaml
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
1
|
+
id: project_context_map
|
|
2
|
+
type: context_map
|
|
3
|
+
version: 0.3
|
|
4
|
+
purpose: small_index_for_progressive_context_retrieval
|
|
5
|
+
maintenance:
|
|
6
|
+
current_mode: manual_bootstrap
|
|
7
|
+
rule: aliases_are_pointers_not_truth
|
|
8
|
+
read_first:
|
|
9
|
+
- canonical-state.yaml
|
|
10
|
+
- protocol/fast-path.yaml
|
|
11
|
+
- protocol/router.yaml
|
|
12
|
+
- protocol/route-packs.yaml
|
|
13
|
+
- memory/INDEX.yaml
|
|
14
|
+
domains: {}
|
|
15
|
+
retrieval_policy:
|
|
16
|
+
order:
|
|
17
|
+
- match_domain_by_alias
|
|
18
|
+
- read_matching_memory_subjects
|
|
19
|
+
- read_domain_docs_only_when_needed
|
|
20
|
+
- search_candidate_files_or_symbols
|
|
21
|
+
- read_relevant_snippet_first
|
|
22
|
+
- read_full_file_when_snippet_is_not_enough
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
# Decisions
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Cada decisao deve indicar status, escopo, impacto e arquivo relacionado quando
|
|
7
|
-
existir.
|
|
1
|
+
# Decisions
|
|
2
|
+
|
|
3
|
+
Record confirmed project decisions with status, scope, evidence and replacement
|
|
4
|
+
history.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
id: memory_index
|
|
2
|
+
type: memory_index
|
|
3
|
+
version: 0.3
|
|
4
|
+
purpose: route_to_minimum_relevant_persistent_memory
|
|
5
|
+
policy:
|
|
6
|
+
- read_only_matching_subjects
|
|
7
|
+
- do_not_load_archive_by_default
|
|
8
|
+
- current_request_overrides_memory
|
|
9
|
+
- verified_files_override_stale_memory
|
|
10
|
+
entries: []
|
|
11
|
+
areas:
|
|
12
|
+
user:
|
|
13
|
+
path: memory/user/
|
|
14
|
+
projects:
|
|
15
|
+
path: memory/projects/
|
|
16
|
+
patterns:
|
|
17
|
+
path: memory/patterns/
|
|
18
|
+
archive:
|
|
19
|
+
path: memory/archive/
|
|
20
|
+
read_by_default: false
|
|
@@ -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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: context_compiler
|
|
2
2
|
type: operational_rules
|
|
3
|
-
version: 0.
|
|
3
|
+
version: 0.3
|
|
4
4
|
purpose: build_minimum_context_package_before_model_reasoning
|
|
5
5
|
principle: conversation_is_interface_not_source_of_truth
|
|
6
6
|
canonical_state:
|
|
@@ -28,19 +28,25 @@ context_build:
|
|
|
28
28
|
- user_request
|
|
29
29
|
- route_from_router
|
|
30
30
|
- risk_level
|
|
31
|
+
- context_budget
|
|
31
32
|
- candidate_files_or_areas
|
|
33
|
+
- matching_memory_subjects
|
|
32
34
|
- recent_validated_state
|
|
33
35
|
output:
|
|
34
36
|
- objective
|
|
35
37
|
- constraints
|
|
36
38
|
- relevant_rules
|
|
39
|
+
- matching_memory
|
|
37
40
|
- candidate_files
|
|
41
|
+
- estimated_tokens
|
|
42
|
+
- budget_status
|
|
38
43
|
- validation_plan
|
|
39
44
|
- excluded_context
|
|
40
45
|
selection_policy:
|
|
41
46
|
include:
|
|
42
47
|
- context_map_domain_when_available
|
|
43
48
|
- active_decisions_for_matched_domain
|
|
49
|
+
- active_memory_matching_subject_and_scope
|
|
44
50
|
- files_required_by_route
|
|
45
51
|
- snippets_matching_task_terms
|
|
46
52
|
- current_decisions_touching_candidate_area
|
|
@@ -51,6 +57,7 @@ selection_policy:
|
|
|
51
57
|
- full_logs_without_error_focus
|
|
52
58
|
- revoked_decisions_unless_comparing_history
|
|
53
59
|
- entire_large_files_when_snippet_is_enough
|
|
60
|
+
- candidate_or_archived_memory_without_task_match
|
|
54
61
|
memory_layers:
|
|
55
62
|
active:
|
|
56
63
|
definition: required_to_complete_current_task
|
|
@@ -93,6 +100,21 @@ decision_rules:
|
|
|
93
100
|
avoid:
|
|
94
101
|
- treating_alias_as_source_of_truth
|
|
95
102
|
- editing_from_snippet_when_behavior_depends_on_unread_context
|
|
103
|
+
- id: CTX_006
|
|
104
|
+
when: persistent_memory_may_be_relevant
|
|
105
|
+
do:
|
|
106
|
+
- read_memory_index_first
|
|
107
|
+
- retrieve_only_matching_active_entries
|
|
108
|
+
- verify_project_state_against_current_files
|
|
109
|
+
avoid:
|
|
110
|
+
- loading_all_memory
|
|
111
|
+
- treating_candidate_memory_as_authoritative
|
|
112
|
+
- id: CTX_007
|
|
113
|
+
when: initial_context_budget_is_reached
|
|
114
|
+
do:
|
|
115
|
+
- stop_if_objective_target_and_validation_are_clear
|
|
116
|
+
- expand_only_for_unresolved_risk_dependency_scope_or_validation_gap
|
|
117
|
+
- record_expansion_reason
|
|
96
118
|
retrieval_tiers:
|
|
97
119
|
mvp:
|
|
98
120
|
use:
|
|
@@ -121,6 +143,7 @@ delivery:
|
|
|
121
143
|
include_when_relevant:
|
|
122
144
|
- context_used
|
|
123
145
|
- context_excluded
|
|
146
|
+
- context_budget_status
|
|
124
147
|
- reason_for_not_reading_more
|
|
125
148
|
economy_goal:
|
|
126
149
|
target: reduce_unneeded_context_up_to_90_percent_when_safe
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
id: fast_path
|
|
2
2
|
type: agent_entrypoint
|
|
3
|
-
version: 0.
|
|
3
|
+
version: 0.3
|
|
4
4
|
purpose: minimum_rules_to_start_any_task
|
|
5
5
|
read_next:
|
|
6
6
|
- router.yaml
|
|
7
7
|
- route-packs.yaml
|
|
8
|
+
- context-budget.yaml
|
|
8
9
|
- modes.yaml
|
|
9
10
|
core_rules:
|
|
10
11
|
- classify_risk_before_action
|
|
@@ -20,6 +21,9 @@ core_rules:
|
|
|
20
21
|
- include_test_list_when_break_risk_exists
|
|
21
22
|
- explain_in_plain_language_for_non_experts
|
|
22
23
|
- use_context_compiler_when_context_or_history_is_large
|
|
24
|
+
- use_only_matching_memory_subjects
|
|
25
|
+
- check_memory_update_result_after_task
|
|
26
|
+
- use_selective_validation_by_blast_radius
|
|
23
27
|
risk_short:
|
|
24
28
|
level_0: answer_only
|
|
25
29
|
level_1: small_clear_reversible_isolated_change
|
|
@@ -32,3 +36,4 @@ file_policy:
|
|
|
32
36
|
stop_reading_when:
|
|
33
37
|
- enough_context_to_act_safely
|
|
34
38
|
- validation_plan_is_clear
|
|
39
|
+
- context_budget_is_sufficient
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
id: persistent_context
|
|
2
2
|
type: operational_rules
|
|
3
|
-
version: 0.
|
|
3
|
+
version: 0.3
|
|
4
4
|
purpose: navigate_project_memory_without_loading_unneeded_context
|
|
5
5
|
principle: aliases_are_pointers_not_truth
|
|
6
6
|
autonomous_memory:
|
|
@@ -22,6 +22,7 @@ economy_goal:
|
|
|
22
22
|
entrypoints:
|
|
23
23
|
- canonical-state.yaml
|
|
24
24
|
- context-map.yaml
|
|
25
|
+
- memory/INDEX.yaml
|
|
25
26
|
- decisions/
|
|
26
27
|
progressive_retrieval:
|
|
27
28
|
order:
|
|
@@ -29,6 +30,8 @@ progressive_retrieval:
|
|
|
29
30
|
- match_domain_or_alias_in_context_map
|
|
30
31
|
- read_canonical_state_when_project_truth_matters
|
|
31
32
|
- read_active_decisions_for_domain
|
|
33
|
+
- query_memory_index_for_matching_subjects
|
|
34
|
+
- read_only_matching_active_memory
|
|
32
35
|
- read_only_needed_atomic_subject_docs
|
|
33
36
|
- search_candidate_symbols_or_files
|
|
34
37
|
- read_relevant_snippet_first
|
|
@@ -51,6 +54,8 @@ context_validator:
|
|
|
51
54
|
check:
|
|
52
55
|
- enough_context_for_objective
|
|
53
56
|
- active_decisions_loaded_when_relevant
|
|
57
|
+
- matching_memory_loaded_only_when_relevant
|
|
58
|
+
- context_budget_respected_or_expansion_justified
|
|
54
59
|
- direct_dependencies_loaded_when_needed
|
|
55
60
|
- adjacent_domain_risk_checked
|
|
56
61
|
- docs_do_not_conflict_with_verified_files
|
|
@@ -88,9 +93,11 @@ snippet_policy:
|
|
|
88
93
|
conflict_policy:
|
|
89
94
|
order:
|
|
90
95
|
- current_user_request
|
|
91
|
-
- canonical_state
|
|
92
|
-
- active_decisions
|
|
93
96
|
- verified_code_or_files_this_turn
|
|
97
|
+
- active_decisions
|
|
98
|
+
- canonical_state
|
|
99
|
+
- explicit_user_preferences
|
|
100
|
+
- inferred_patterns_with_evidence
|
|
94
101
|
- domain_docs
|
|
95
102
|
- current_conversation
|
|
96
103
|
if_docs_conflict_with_code:
|
|
@@ -100,6 +107,9 @@ validation:
|
|
|
100
107
|
require:
|
|
101
108
|
- state_context_used_when_relevant
|
|
102
109
|
- state_context_not_loaded_when_excluded_for_economy
|
|
110
|
+
- memory_index_used_before_memory_files
|
|
111
|
+
- memory_update_result_recorded_when_new_durable_fact_exists
|
|
112
|
+
- sensitive_or_unverified_content_not_promoted
|
|
103
113
|
- escalate_context_if_snippet_is_insufficient
|
|
104
114
|
- update_subject_index_when_docs_are_split
|
|
105
115
|
atomic_subject_flow:
|