ai-execution-protocol 0.2.0 → 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 +14 -1
- package/README.md +32 -22
- package/dist/minimal/.aiignore +8 -8
- package/dist/minimal/AGENTS.md +41 -61
- package/dist/minimal/candidate-memory/README.md +4 -0
- package/dist/minimal/canonical-state.yaml +16 -0
- package/dist/minimal/context-map.yaml +22 -0
- package/dist/minimal/decisions/README.md +4 -0
- package/dist/minimal/memory/INDEX.yaml +20 -0
- package/dist/minimal/protocol/README.yaml +9 -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/context-rules.yaml +13 -0
- package/dist/minimal/protocol/fast-path.yaml +7 -1
- package/dist/minimal/protocol/formatting-rules.yaml +27 -0
- package/dist/minimal/protocol/persistent-context.yaml +40 -4
- package/dist/minimal/protocol/prompt-economy.yaml +16 -8
- package/dist/minimal/protocol/route-packs.yaml +184 -0
- package/dist/minimal/protocol/router.yaml +25 -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 +9 -1
- package/protocol/adaptive-memory.yaml +97 -0
- package/protocol/context-budget.yaml +44 -0
- package/protocol/context-compiler.yaml +24 -1
- package/protocol/context-rules.yaml +13 -0
- package/protocol/fast-path.yaml +7 -1
- package/protocol/formatting-rules.yaml +27 -0
- package/protocol/persistent-context.yaml +40 -4
- package/protocol/prompt-economy.yaml +16 -8
- package/protocol/route-packs.yaml +184 -0
- package/protocol/router.yaml +25 -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 -94
- package/scripts/npm_install_protocol.js +22 -100
- package/scripts/verify_install.py +23 -62
- 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
|
@@ -24,7 +24,10 @@ metodologia. Para executar tarefas, prefira as regras curtas em `protocol/`.
|
|
|
24
24
|
|
|
25
25
|
1. `protocol/fast-path.yaml`
|
|
26
26
|
2. `protocol/router.yaml`
|
|
27
|
-
3.
|
|
27
|
+
3. `protocol/route-packs.yaml` para ler o resumo compacto da rota.
|
|
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:
|
|
28
31
|
- `README.yaml`
|
|
29
32
|
- `modes.yaml`
|
|
30
33
|
- `execution-rules.yaml`
|
|
@@ -33,6 +36,10 @@ metodologia. Para executar tarefas, prefira as regras curtas em `protocol/`.
|
|
|
33
36
|
- `validation-checklist.yaml`
|
|
34
37
|
- `context-rules.yaml`
|
|
35
38
|
- `context-compiler.yaml`
|
|
39
|
+
- `context-budget.yaml`
|
|
40
|
+
- `adaptive-memory.yaml`
|
|
41
|
+
- `selective-validation.yaml`
|
|
42
|
+
- `route-packs.yaml`
|
|
36
43
|
- `formatting-rules.yaml`
|
|
37
44
|
- `prompt-economy.yaml`
|
|
38
45
|
- `spec-driven.yaml`
|
|
@@ -54,6 +61,12 @@ metodologia. Para executar tarefas, prefira as regras curtas em `protocol/`.
|
|
|
54
61
|
- Classifique o risco antes de agir.
|
|
55
62
|
- Use o menor contexto suficiente.
|
|
56
63
|
- Leia apenas os arquivos indicados por `protocol/router.yaml`.
|
|
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.
|
|
57
70
|
- Quando houver contexto grande, historico longo ou risco de confusao, use
|
|
58
71
|
`protocol/context-compiler.yaml` antes de abrir muitos arquivos.
|
|
59
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,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
|
|
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,61 +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
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
|
|
27
|
-
- Use `protocol/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
## Convivencia com arquivos existentes
|
|
43
|
-
|
|
44
|
-
Quando houver conflito, siga esta prioridade:
|
|
45
|
-
|
|
46
|
-
1. pedido atual do usuario;
|
|
47
|
-
2. este bloco obrigatorio em `AGENTS.md`;
|
|
48
|
-
3. regras especificas da IDE ou do projeto;
|
|
49
|
-
4. docs e historico somente quando a rota pedir.
|
|
50
|
-
|
|
51
|
-
Nao sobrescreva `README.md`, `docs/`, `.cursorrules`, `CLAUDE.md`,
|
|
52
|
-
`.github/copilot-instructions.md` ou configs de framework sem pedido claro.
|
|
53
|
-
|
|
54
|
-
## Regras de organizacao
|
|
55
|
-
|
|
56
|
-
- Nenhum arquivo deve passar de 400 linhas.
|
|
57
|
-
- Organize primeiro para legibilidade por IA.
|
|
58
|
-
- Use YAML para regras operacionais.
|
|
59
|
-
- Evite duplicar a mesma regra em muitos lugares.
|
|
60
|
-
|
|
61
|
-
<!-- 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 -->
|
|
@@ -0,0 +1,16 @@
|
|
|
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
|
|
@@ -0,0 +1,22 @@
|
|
|
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
|
|
@@ -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:
|
|
@@ -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
|
|
@@ -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
|
|
@@ -5,6 +5,7 @@ context_policy:
|
|
|
5
5
|
use: minimum_sufficient_context
|
|
6
6
|
prefer:
|
|
7
7
|
- context_map_before_domain_docs
|
|
8
|
+
- atomic_subject_docs_before_broad_docs
|
|
8
9
|
- aliases_for_search_not_truth
|
|
9
10
|
- targeted_search
|
|
10
11
|
- relevant_snippets
|
|
@@ -16,12 +17,24 @@ context_policy:
|
|
|
16
17
|
- mixing_old_and_current_docs
|
|
17
18
|
- treating_conversation_as_source_of_truth
|
|
18
19
|
- treating_aliases_as_verified_behavior
|
|
20
|
+
- reading_broad_docs_when_atomic_subject_doc_exists
|
|
19
21
|
file_size:
|
|
20
22
|
max_lines: 400
|
|
21
23
|
when_near_limit:
|
|
22
24
|
- split_by_subject
|
|
23
25
|
- keep_main_file_short
|
|
24
26
|
- update_index
|
|
27
|
+
subject_docs:
|
|
28
|
+
rule: docs_should_be_grouped_by_searchable_subject_not_only_by_size
|
|
29
|
+
do:
|
|
30
|
+
- create_or_update_one_doc_per_domain_flow_decision_or_component
|
|
31
|
+
- use_filename_terms_that_match_likely_user_requests_and_code_symbols
|
|
32
|
+
- use_rg_to_find_exact_code_symbols_after_reading_subject_doc
|
|
33
|
+
- verify_code_before_treating_doc_as_truth
|
|
34
|
+
avoid:
|
|
35
|
+
- fragmenting_into_micro_docs_without_standalone_subject
|
|
36
|
+
- duplicating_same_subject_across_docs
|
|
37
|
+
- keeping_cross_domain_docs_without_links_to_specific_subject_docs
|
|
25
38
|
memory:
|
|
26
39
|
record:
|
|
27
40
|
- stable_decision
|
|
@@ -1,9 +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
|
+
- route-packs.yaml
|
|
8
|
+
- context-budget.yaml
|
|
7
9
|
- modes.yaml
|
|
8
10
|
core_rules:
|
|
9
11
|
- classify_risk_before_action
|
|
@@ -19,6 +21,9 @@ core_rules:
|
|
|
19
21
|
- include_test_list_when_break_risk_exists
|
|
20
22
|
- explain_in_plain_language_for_non_experts
|
|
21
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
|
|
22
27
|
risk_short:
|
|
23
28
|
level_0: answer_only
|
|
24
29
|
level_1: small_clear_reversible_isolated_change
|
|
@@ -31,3 +36,4 @@ file_policy:
|
|
|
31
36
|
stop_reading_when:
|
|
32
37
|
- enough_context_to_act_safely
|
|
33
38
|
- validation_plan_is_clear
|
|
39
|
+
- context_budget_is_sufficient
|