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.
Files changed (48) hide show
  1. package/AGENTS.md +14 -1
  2. package/README.md +32 -22
  3. package/dist/minimal/.aiignore +8 -8
  4. package/dist/minimal/AGENTS.md +41 -61
  5. package/dist/minimal/candidate-memory/README.md +4 -0
  6. package/dist/minimal/canonical-state.yaml +16 -0
  7. package/dist/minimal/context-map.yaml +22 -0
  8. package/dist/minimal/decisions/README.md +4 -0
  9. package/dist/minimal/memory/INDEX.yaml +20 -0
  10. package/dist/minimal/protocol/README.yaml +9 -1
  11. package/dist/minimal/protocol/adaptive-memory.yaml +97 -0
  12. package/dist/minimal/protocol/context-budget.yaml +44 -0
  13. package/dist/minimal/protocol/context-compiler.yaml +24 -1
  14. package/dist/minimal/protocol/context-rules.yaml +13 -0
  15. package/dist/minimal/protocol/fast-path.yaml +7 -1
  16. package/dist/minimal/protocol/formatting-rules.yaml +27 -0
  17. package/dist/minimal/protocol/persistent-context.yaml +40 -4
  18. package/dist/minimal/protocol/prompt-economy.yaml +16 -8
  19. package/dist/minimal/protocol/route-packs.yaml +184 -0
  20. package/dist/minimal/protocol/router.yaml +25 -1
  21. package/dist/minimal/protocol/selective-validation.yaml +44 -0
  22. package/dist/minimal/protocol/validation-checklist.yaml +10 -1
  23. package/install-manifest.json +64 -0
  24. package/package.json +3 -1
  25. package/protocol/README.yaml +9 -1
  26. package/protocol/adaptive-memory.yaml +97 -0
  27. package/protocol/context-budget.yaml +44 -0
  28. package/protocol/context-compiler.yaml +24 -1
  29. package/protocol/context-rules.yaml +13 -0
  30. package/protocol/fast-path.yaml +7 -1
  31. package/protocol/formatting-rules.yaml +27 -0
  32. package/protocol/persistent-context.yaml +40 -4
  33. package/protocol/prompt-economy.yaml +16 -8
  34. package/protocol/route-packs.yaml +184 -0
  35. package/protocol/router.yaml +25 -1
  36. package/protocol/selective-validation.yaml +44 -0
  37. package/protocol/validation-checklist.yaml +10 -1
  38. package/scripts/README.md +43 -0
  39. package/scripts/build_dist.py +12 -94
  40. package/scripts/npm_install_protocol.js +22 -100
  41. package/scripts/verify_install.py +23 -62
  42. package/templates/minimal/.aiignore +8 -0
  43. package/templates/minimal/AGENTS.md +41 -0
  44. package/templates/minimal/candidate-memory/README.md +4 -0
  45. package/templates/minimal/canonical-state.yaml +16 -0
  46. package/templates/minimal/context-map.yaml +22 -0
  47. package/templates/minimal/decisions/README.md +4 -0
  48. 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. Arquivo YAML especifico em `protocol/` conforme a rota:
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.2.0, o framework adiciona uma camada leve de contexto persistente:
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 -> intencao -> dominio -> contexto minimo -> validacao -> acao
38
+ pedido -> risco -> memoria relevante -> contexto limitado -> acao -> validacao
38
39
  ```
39
40
 
40
- Essa camada usa `canonical-state.yaml`, `context-map.yaml`, `decisions/` e
41
- `protocol/persistent-context.yaml` para reduzir leitura desnecessaria. Ela e um
42
- bootstrap seguro, nao um indexador automatico completo.
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. Abra apenas os arquivos indicados pela rota ou pela recuperacao progressiva.
83
- 8. Execute, valide e entregue com evidencia.
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 da v0.2.0:
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/14-publicacao.md`
107
- - `docs/16-release-e-atualizacao.md`
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
- ## Publicacao
189
+ Atualizacao pelos pacotes publicados:
175
190
 
176
- Antes de publicar, revise `docs/14-publicacao.md`.
177
- Para atualizar uma versao ja publicada, revise `docs/16-release-e-atualizacao.md`.
178
-
179
- Resumo minimo:
180
-
181
- - nao publique `.env`, chaves, tokens, senhas, logs reais ou dados de cliente;
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
 
@@ -1,8 +1,8 @@
1
- # Context files ignored by default for AI reading.
2
-
3
- results/
4
- benchmarks/generated/
5
- model-runs/generated/
6
- dist/
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
@@ -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
- Siga `.aiignore` antes de abrir relatorios gerados.
10
-
11
- Este protocolo e obrigatorio para tarefas tecnicas neste projeto. Antes de
12
- editar, classifique risco, escolha rota e valide a entrega.
13
-
14
- ## Ordem de leitura
15
-
16
- 1. `protocol/fast-path.yaml`
17
- 2. `protocol/router.yaml`
18
- 3. Arquivo YAML especifico em `protocol/` conforme a rota.
19
-
20
- ## Regras de execucao
21
-
22
- - Classifique o risco antes de agir.
23
- - Use o menor contexto suficiente.
24
- - Leia apenas os arquivos indicados por `protocol/router.yaml`.
25
- - Quando houver contexto grande, historico longo ou risco de confusao, use
26
- `protocol/context-compiler.yaml` antes de abrir muitos arquivos.
27
- - Use `protocol/spec-driven.yaml` para feature, refatoracao grande ou tarefa
28
- critica, sem criar spec pesada para tarefa simples.
29
- - Sempre entregue `Prompt original` e `Prompt melhorado da IA`; em baixo risco,
30
- prefira micro formato legivel com `PO`, `PM` e `OK`.
31
- - Nao edite arquivo que nao foi identificado como candidato.
32
- - Preserve documentos, regras de IDE e configuracoes de framework existentes,
33
- salvo pedido explicito do usuario.
34
- - Se o risco subir, atualize a classificacao antes de continuar.
35
- - Para nivel critico, peca confirmacao antes de acao sensivel.
36
- - Quando houver risco de quebrar fluxo existente, entregue uma lista do que
37
- testar.
38
- - Entregue com evidencia em poucas linhas: mudanca, validacao, limite e risco
39
- residual.
40
- - Explique o resultado em linguagem clara para uma pessoa leiga entender.
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,4 @@
1
+ # Candidate Memory
2
+
3
+ Store inferred, non-sensitive memory candidates here until evidence or user
4
+ confirmation is enough for promotion.
@@ -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,4 @@
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.2.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.1
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.1
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