oxe-cc 1.11.0 → 1.14.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.
@@ -0,0 +1,150 @@
1
+ # OXE — Workflow: agent-mode (Agent Mode)
2
+
3
+ <objective>
4
+ Execução autônoma de objetivos de complexidade simples ou média por um único Conductor Agent.
5
+ O Conductor age diretamente como implementador, adotando a persona primária selecionada pelo `conduct.md`, produzindo o resultado em uma sessão sem necessidade de equipe multi-agente.
6
+ </objective>
7
+
8
+ <context>
9
+ - Invocado por `conduct.md` quando `intent_score` é simples ou médio.
10
+ - Aplicar `oxe/workflows/references/reasoning-execution.md` durante a implementação.
11
+ - Persona primária já foi selecionada e está disponível como parâmetro de entrada.
12
+ - Gravar artefatos em `.oxe/agent/`.
13
+ - Ao final, emitir eventos básicos para `OXE-EVENTS.ndjson` (RunStarted, WorkItemCompleted, RunCompleted).
14
+ </context>
15
+
16
+ ---
17
+
18
+ ## Fase 1 — Inicialização da Sessão
19
+
20
+ Criar `.oxe/agent/AGENT-SESSION.json` com:
21
+
22
+ ```json
23
+ {
24
+ "session_id": "agent-<YYYYMMDD>-<seq>",
25
+ "started_at": "<ISO8601>",
26
+ "status": "running",
27
+ "objective": "<objetivo do usuário>",
28
+ "intent_score": "<simples|médio>",
29
+ "intent_tags": [],
30
+ "primary_persona": "<id>",
31
+ "memory_applied": false,
32
+ "tool_calls": [],
33
+ "work_items": [],
34
+ "reconciliation": null
35
+ }
36
+ ```
37
+
38
+ Registrar entrada em `.oxe/agent/INTENT-LOG.ndjson`:
39
+ ```json
40
+ {"ts": "<ISO8601>", "objective": "<texto>", "score": "<score>", "tags": [], "persona": "<id>"}
41
+ ```
42
+
43
+ ---
44
+
45
+ ## Fase 2 — Discovery (reasoning-execution: "reconhecimento curto")
46
+
47
+ Antes de mutar qualquer arquivo, executar um reconhecimento mínimo:
48
+
49
+ 1. Ler arquivos relevantes ao objetivo (usar Glob + Grep conforme intent_tags)
50
+ 2. Identificar:
51
+ - **Arquivos que serão modificados** (write_set)
52
+ - **Padrões existentes** a seguir (naming, estrutura, imports)
53
+ - **Riscos imediatos** (arquivo crítico? Arquivo compartilhado? Arquivo com testes?)
54
+ 3. Se o write_set for maior que o esperado para `intent_score=simples` (> 5 arquivos): **parar e elevar para Swarm Mode**
55
+
56
+ Registrar discovery em `.oxe/agent/AGENT-SESSION.json` → campo `work_items`.
57
+
58
+ ---
59
+
60
+ ## Fase 3 — Execução (sob persona selecionada)
61
+
62
+ Adotar os princípios da persona primária de `oxe/personas/<primary_persona>.md`:
63
+
64
+ - **Write set mínimo** — tocar apenas os arquivos identificados no discovery
65
+ - **Verificar antes de avançar** — executar verificação ao completar cada item
66
+ - **Discoveries fora de escopo** → `.oxe/OBSERVATIONS.md` (não expandir silenciosamente)
67
+ - **Segredos nunca em código**
68
+
69
+ Para cada `work_item`:
70
+ 1. Implementar conforme objetivo
71
+ 2. Verificar (comando ou checklist)
72
+ 3. Atualizar `AGENT-SESSION.json` → `work_items[i].status = "done" | "failed"`
73
+ 4. Registrar em `INTENT-LOG.ndjson`: `{"ts": "...", "item": "...", "status": "...", "files_changed": []}`
74
+
75
+ ---
76
+
77
+ ## Fase 4 — Reconciliação
78
+
79
+ Ao finalizar todos os `work_items`:
80
+
81
+ 1. Listar todos os arquivos modificados
82
+ 2. Confirmar que o objetivo foi satisfeito (sim/parcialmente/não)
83
+ 3. Listar discoveries relevantes registrados em OBSERVATIONS.md
84
+
85
+ Atualizar `AGENT-SESSION.json`:
86
+ ```json
87
+ {
88
+ "status": "completed | partial | failed",
89
+ "completed_at": "<ISO8601>",
90
+ "files_changed": ["lista de arquivos"],
91
+ "reconciliation": {
92
+ "objective_satisfied": true,
93
+ "observations_added": 0,
94
+ "next_suggested": "<próximo passo se houver>"
95
+ }
96
+ }
97
+ ```
98
+
99
+ Gravar `.oxe/agent/RECONCILIATION.md` com:
100
+ ```markdown
101
+ ## Reconciliação — <session_id>
102
+
103
+ **Objetivo:** <texto>
104
+ **Resultado:** satisfeito | parcial | falhou
105
+ **Arquivos alterados:** <lista>
106
+ **Observações adicionadas:** <N>
107
+ **Próximo passo:** <texto ou "—">
108
+ ```
109
+
110
+ ---
111
+
112
+ ## Fase 5 — Eventos
113
+
114
+ Emitir no final para `.oxe/OXE-EVENTS.ndjson` (append, uma linha NDJSON por evento):
115
+
116
+ ```json
117
+ {"id": "<uuid>", "type": "RunStarted", "timestamp": "<ISO8601>", "session_id": "<id>", "run_id": "<session_id>", "payload": {"mode": "agent", "objective": "<texto>", "persona": "<id>"}}
118
+ {"id": "<uuid>", "type": "WorkItemCompleted", "timestamp": "<ISO8601>", "session_id": "<id>", "run_id": "<session_id>", "payload": {"items_completed": N, "files_changed": []}}
119
+ {"id": "<uuid>", "type": "RunCompleted", "timestamp": "<ISO8601>", "session_id": "<id>", "run_id": "<session_id>", "payload": {"status": "completed", "objective_satisfied": true}}
120
+ ```
121
+
122
+ **Se `OXE-EVENTS.ndjson` não existir:** criar com o primeiro evento.
123
+
124
+ ---
125
+
126
+ ## Saída para o usuário
127
+
128
+ Ao final, reportar:
129
+
130
+ ```
131
+ Agent Mode — concluído
132
+ Objetivo: <texto resumido>
133
+ Persona: <id>
134
+ Arquivos alterados: N
135
+ Verificação: passou | falhou
136
+
137
+ <lista de arquivos>
138
+
139
+ Próximo passo: <recomendação ou "—">
140
+ ```
141
+
142
+ <success_criteria>
143
+ - [ ] AGENT-SESSION.json criado e atualizado ao longo da execução.
144
+ - [ ] Persona primária adotada (princípios de operação aplicados).
145
+ - [ ] Write set mínimo respeitado.
146
+ - [ ] Verificação executada por work_item.
147
+ - [ ] RECONCILIATION.md gerado.
148
+ - [ ] OXE-EVENTS.ndjson atualizado (RunStarted + WorkItemCompleted + RunCompleted).
149
+ - [ ] Discoveries fora de escopo → OBSERVATIONS.md, não expansão silenciosa.
150
+ </success_criteria>
@@ -0,0 +1,149 @@
1
+ # OXE — Workflow: conduct (Conductor Agent)
2
+
3
+ <objective>
4
+ Ponto de entrada para objetivos em linguagem natural que requerem execução autônoma.
5
+ O Conductor classifica a complexidade do objetivo, recupera memória relevante, carrega as personas adequadas e decide se o trabalho será feito em **Agent Mode** (Conductor age sozinho) ou **Swarm Mode** (equipe de agentes especializados).
6
+
7
+ Invocado automaticamente por `oxe.md` quando o input é um **objetivo ou tarefa de implementação** — não uma pergunta situacional, não um pedido de roteamento simples.
8
+ </objective>
9
+
10
+ <context>
11
+ - Este workflow **gera artefatos**: `AGENT-SESSION.json` (Agent Mode) ou `SWARM-RUN.json` (Swarm Mode).
12
+ - Aplicar `oxe/workflows/references/reasoning-planning.md` para a fase de decisão.
13
+ - Aplicar `oxe/workflows/references/reasoning-execution.md` quando agir diretamente (Agent Mode).
14
+ - Lê: `.oxe/STATE.md`, `.oxe/memory/REPO-MEMORY.md` (se existir), `.oxe/global/LESSONS.md`.
15
+ - Nunca expande escopo além do objetivo declarado. Discoveries vão para OBSERVATIONS.md.
16
+ </context>
17
+
18
+ ---
19
+
20
+ ## Fase 1 — Intent Classification
21
+
22
+ Ler o objetivo do usuário e classificar em uma das três categorias:
23
+
24
+ | Score | Critérios | Modo |
25
+ |-------|-----------|------|
26
+ | **simples** | 1 domínio, ≤ 3 arquivos esperados, mudança isolada (texto, config, estilo, bug local) | Agent Mode |
27
+ | **médio** | 1–2 domínios, 3–8 arquivos, lógica nova mas contida (endpoint, componente, função) | Agent Mode |
28
+ | **complexo** | 3+ domínios, 8+ arquivos, ou: nova feature com storage + backend + frontend + testes | Swarm Mode |
29
+
30
+ **Sinais de complexidade que forçam Swarm Mode:**
31
+ - Objetivo menciona: "módulo", "sistema", "fluxo completo", "histórico", "relatório", "pipeline"
32
+ - Objetivo envolve: banco de dados + API + UI simultaneamente
33
+ - Objetivo requer scaffold de múltiplos arquivos em diretórios diferentes
34
+ - Estimativa de ondas > 2 no PLAN.md
35
+
36
+ **Saída desta fase:**
37
+ ```
38
+ intent_score: simples | médio | complexo
39
+ intent_tags: [lista de domínios detectados: backend, frontend, storage, auth, infra, test, docs, config]
40
+ objective_summary: resumo em 1 frase do que o usuário quer
41
+ ```
42
+
43
+ ---
44
+
45
+ ## Fase 2 — Memory Retrieval
46
+
47
+ Ler as camadas de memória na ordem:
48
+
49
+ 1. `.oxe/STATE.md` — estado atual da trilha (fase, sessão ativa, run ativo)
50
+ 2. `.oxe/memory/REPO-MEMORY.md` — memória cross-session (decisões, pitfalls, preferências) — **se existir**
51
+ 3. `.oxe/global/LESSONS.md` — lições de ciclos anteriores com `Status: ativo` e `Impacto: alto` — **se existir**
52
+ 4. `.oxe/OBSERVATIONS.md` — observações pendentes com `Status: pendente` — **se existir**
53
+
54
+ Para cada camada lida, extrair apenas o que é **relevante ao objetivo atual** (usar intent_tags como filtro).
55
+
56
+ Gravar snapshot do contexto injetado:
57
+ - Agent Mode → `.oxe/agent/MEMORY-INJECTIONS.md`
58
+ - Swarm Mode → `.oxe/swarm/DECISIONS.md` (seção "Contexto de Memória")
59
+
60
+ **Se `.oxe/memory/` não existir:** pular silenciosamente e continuar.
61
+
62
+ ---
63
+
64
+ ## Fase 3 — Skill Loading
65
+
66
+ Com base nos `intent_tags`, selecionar as personas aplicáveis:
67
+
68
+ | Tag | Persona primária | Persona secundária |
69
+ |-----|------------------|--------------------|
70
+ | backend | executor | architect |
71
+ | frontend | ui-specialist | executor |
72
+ | storage | db-specialist | architect |
73
+ | auth | architect | executor |
74
+ | infra | architect | — |
75
+ | test | executor | verifier |
76
+ | docs | executor | — |
77
+ | config | executor | — |
78
+ | research | researcher | — |
79
+ | debug | debugger | — |
80
+
81
+ Registrar personas selecionadas em:
82
+ - Agent Mode → `.oxe/agent/SKILLS-LOADED.json`
83
+ - Swarm Mode → informação vai para fase de atribuição de papéis
84
+
85
+ **Resolução:** tentar `oxe/personas/<id>.md` (global) → `.oxe/skills/active/<id>.md` (projeto). Usar o primeiro encontrado.
86
+
87
+ ---
88
+
89
+ ## Fase 4 — Decisão de Modo
90
+
91
+ Com base no `intent_score`:
92
+
93
+ ### Se simples ou médio → Agent Mode
94
+
95
+ Executar `oxe/workflows/agent-mode.md` com:
96
+ - `objective`: objetivo original do usuário
97
+ - `intent_tags`: tags detectadas
98
+ - `primary_persona`: persona primária selecionada
99
+ - `memory_context`: contexto de memória extraído
100
+
101
+ ### Se complexo → Swarm Mode
102
+
103
+ Executar `oxe/workflows/swarm-mode.md` com:
104
+ - `objective`: objetivo original do usuário
105
+ - `intent_tags`: tags detectadas
106
+ - `memory_context`: contexto de memória extraído
107
+
108
+ **Comunicar ao usuário antes de prosseguir:**
109
+
110
+ Para Agent Mode:
111
+ ```
112
+ Conductor: modo Agent (complexidade: [score])
113
+ Persona: [primary_persona]
114
+ Domínios: [intent_tags]
115
+ Memória aplicada: [sim/não — N lições, M pitfalls]
116
+
117
+ Executando...
118
+ ```
119
+
120
+ Para Swarm Mode:
121
+ ```
122
+ Conductor: modo Swarm (complexidade: complexo)
123
+ Domínios: [intent_tags]
124
+ Agentes: Scout + [N] Builders + Reviewer + Verifier
125
+ Memória aplicada: [sim/não — N lições, M pitfalls]
126
+
127
+ Iniciando Scout...
128
+ ```
129
+
130
+ ---
131
+
132
+ ## Artefatos gerados por este workflow
133
+
134
+ | Artefato | Modo | Caminho |
135
+ |----------|------|---------|
136
+ | AGENT-SESSION.json | Agent | `.oxe/agent/AGENT-SESSION.json` |
137
+ | SKILLS-LOADED.json | Agent | `.oxe/agent/SKILLS-LOADED.json` |
138
+ | MEMORY-INJECTIONS.md | Agent | `.oxe/agent/MEMORY-INJECTIONS.md` |
139
+ | SWARM-RUN.json | Swarm | `.oxe/swarm/SWARM-RUN.json` |
140
+ | DECISIONS.md | Swarm | `.oxe/swarm/DECISIONS.md` |
141
+
142
+ <success_criteria>
143
+ - [ ] Intent score determinado (simples/médio/complexo).
144
+ - [ ] Memória lida e filtrada por intent_tags.
145
+ - [ ] Persona(s) selecionada(s) e registrada(s).
146
+ - [ ] Usuário informado do modo escolhido antes da execução.
147
+ - [ ] Delegação correta: agent-mode.md ou swarm-mode.md.
148
+ - [ ] Nenhum artefato de SPEC/PLAN criado por este workflow.
149
+ </success_criteria>
@@ -0,0 +1,164 @@
1
+ # OXE — Workflow: distill (Learning Kernel)
2
+
3
+ <objective>
4
+ Ao final de um Swarm Run (ou Agent Mode run), extrair padrões do que aconteceu,
5
+ detectar lições reutilizáveis e candidatas a novas skills, atualizar LESSONS.md com dedup,
6
+ e enfileirar na PROMOTION-QUEUE.md as skills candidatas para revisão humana.
7
+ </objective>
8
+
9
+ <context>
10
+ - Invocado por `swarm-mode.md` Fase 8 (após Verifier) ou por `/oxe-verify` com `--retro`.
11
+ - Reaproveitamento: LESSONS.md taxonomy e regras de dedup de `.oxe/global/LESSONS.md`.
12
+ - Reaproveitamento: `LessonPromoted` event type de `packages/runtime/src/events/catalog.ts`.
13
+ - Não modifica arquivos de código. Apenas lê run artifacts e grava em `.oxe/learning/` e `.oxe/global/`.
14
+ - Parâmetros de entrada: `run_id`, `mode` (swarm|agent).
15
+ </context>
16
+
17
+ ---
18
+
19
+ ## Fase 1 — Coleta de evidências do run
20
+
21
+ Ler os seguintes artefatos do run (pular silenciosamente se não existirem):
22
+
23
+ **Para Swarm Mode:**
24
+ - `.oxe/swarm/SWARM-RUN.json` — status geral, agentes, waves
25
+ - `.oxe/swarm/FINAL-INTEGRATION.md` — resultado da integração
26
+ - `.oxe/swarm/BLOCKERS.ndjson` — bloqueios que ocorreram
27
+ - `.oxe/swarm/reviews/*.md` — resultados das revisões
28
+ - `.oxe/swarm/DECISIONS.md` — decisões tomadas pelo coordinator
29
+
30
+ **Para Agent Mode:**
31
+ - `.oxe/agent/AGENT-SESSION.json` — status, work_items, reconciliation
32
+ - `.oxe/agent/RECONCILIATION.md` — resultado final
33
+
34
+ **Sempre:**
35
+ - `.oxe/OBSERVATIONS.md` — observações adicionadas durante o run
36
+ - `.oxe/VERIFY.md` (se existir) — resultado de verificação
37
+
38
+ ---
39
+
40
+ ## Fase 2 — Detecção de padrões (candidatos)
41
+
42
+ Para cada evidência coletada, identificar padrões nas categorias:
43
+
44
+ | Categoria | Sinal de detecção |
45
+ |-----------|------------------|
46
+ | **blocker_pattern** | Mesmo tipo de bloqueio em 2+ tasks do mesmo run |
47
+ | **success_pattern** | Approach que funcionou e pode ser replicado |
48
+ | **anti_pattern** | Abordagem que causou revisão reprovada ou retrabalho |
49
+ | **file_conflict_pattern** | Conflito de file ownership que exigiu serialização |
50
+ | **integration_gap** | Falha na integração que não foi detectada nas tasks individuais |
51
+ | **scope_expansion** | Observation de tipo `new_constraint` que alargou o escopo |
52
+
53
+ Para cada padrão detectado, criar entrada em `.oxe/learning/CANDIDATES.ndjson`:
54
+ ```json
55
+ {"id": "CAND-001", "type": "lesson|skill", "category": "blocker_pattern", "source_run": "swarm-YYYYMMDD-001", "pattern": "descrição do padrão detectado", "draft": "lição prescritiva em 1 frase: faça X ao invés de Y", "evidence": ["BLOCKERS.ndjson#T2", "reviews/T2-REVIEW.md"], "ts": "ISO8601"}
56
+ ```
57
+
58
+ ---
59
+
60
+ ## Fase 3 — Atualização de LESSONS.md
61
+
62
+ Para cada candidato com `type = "lesson"`:
63
+
64
+ 1. Verificar se já existe lição com mesma raiz (mesma categoria + padrão similar) em `.oxe/global/LESSONS.md`
65
+ 2. **Se existe:** incrementar `Frequência` + atualizar `Última aplicação` (não duplicar)
66
+ 3. **Se não existe:** adicionar nova entrada `C-NN-L1` com:
67
+ - `Lição`: texto prescritivo (o que fazer, não o que aconteceu)
68
+ - `Raiz`: causa raiz identificada
69
+ - `Tipo`: spec | plan | execute | verify | process | agents
70
+ - `Aplicar em`: qual workflow consome esta lição
71
+ - `Status`: ativo
72
+ - `Frequência`: 1
73
+ - `Impacto`: alto | médio | baixo (baseado no severity do padrão)
74
+ - `Última aplicação`: data do run
75
+
76
+ Atualizar índice (tabela de conteúdos) em LESSONS.md.
77
+
78
+ ---
79
+
80
+ ## Fase 4 — Atualização de lessons-metrics.json
81
+
82
+ Se `.oxe/lessons-metrics.json` existir (ou criar a partir do template):
83
+
84
+ Para cada lição atualizada ou criada:
85
+ ```json
86
+ {
87
+ "id": "C-NN-L1",
88
+ "cycle": "C-NN",
89
+ "applied_cycles": ["swarm-YYYYMMDD-001"],
90
+ "outcomes": [{"run_id": "...", "result": "success|partial|failure", "ts": "..."}],
91
+ "success_rate": 1.0,
92
+ "status": "active",
93
+ "deprecation_threshold": 0.5
94
+ }
95
+ ```
96
+
97
+ **Regra de depreciação automática:** se `success_rate < 0.5` e `apply_count >= 3` → `status = deprecated`.
98
+
99
+ ---
100
+
101
+ ## Fase 5 — Candidatas a Skill
102
+
103
+ Para candidatos com `type = "skill"` (padrões recorrentes que podem virar persona/capability):
104
+
105
+ Verificar critérios de promoção:
106
+ - Padrão apareceu em 2+ runs diferentes, OU
107
+ - Padrão é um `success_pattern` com alta reprodutibilidade
108
+
109
+ Adicionar à `.oxe/learning/PROMOTION-QUEUE.md`:
110
+ ```markdown
111
+ ## SKILL-001 — <nome sugerido>
112
+
113
+ **Fonte:** <run_id>
114
+ **Categoria:** <category>
115
+ **Padrão:** <descrição>
116
+ **Draft do skill:** <esboço do comportamento que o skill encapsularia>
117
+ **Ação:** [ ] Revisar e promover com `/oxe-skill new <id>`
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Fase 6 — Atualização de REPO-MEMORY.md
123
+
124
+ Se o run gerou decisões arquiteturais ou pitfalls novos:
125
+
126
+ Adicionar entradas em `.oxe/memory/REPO-MEMORY.md`:
127
+ - Seção "Decisões Arquiteturais" para decisões tomadas pelo Coordinator
128
+ - Seção "Pitfalls Conhecidos" para blockers que ocorreram
129
+ - Seção "Padrões Validados" para success_patterns confirmados
130
+
131
+ Se o arquivo não existir, criá-lo a partir de `.oxe/templates/REPO-MEMORY.template.md`.
132
+
133
+ ---
134
+
135
+ ## Fase 7 — Eventos
136
+
137
+ Emitir para `.oxe/OXE-EVENTS.ndjson`:
138
+ ```json
139
+ {"type": "RetroPublished", "payload": {"run_id": "...", "lessons_added": N, "lessons_updated": M}}
140
+ {"type": "LessonPromoted", "payload": {"lesson_id": "C-NN-L1", "frequency": N, "impact": "alto"}}
141
+ ```
142
+
143
+ ---
144
+
145
+ ## Saída para o usuário (quando invocado explicitamente)
146
+
147
+ ```
148
+ Learning Kernel — concluído
149
+ Run: <run_id>
150
+ Candidatos detectados: N
151
+ Lições adicionadas: X | atualizadas: Y | depreciadas: Z
152
+ Skills candidatas para revisão: M (ver .oxe/learning/PROMOTION-QUEUE.md)
153
+ REPO-MEMORY atualizado: sim | não
154
+ ```
155
+
156
+ <success_criteria>
157
+ - [ ] CANDIDATES.ndjson populado com padrões detectados do run.
158
+ - [ ] LESSONS.md atualizado com dedup correto (sem duplicatas, Frequência incrementada).
159
+ - [ ] lessons-metrics.json atualizado com outcomes e success_rate.
160
+ - [ ] PROMOTION-QUEUE.md com skills candidatas (se houver).
161
+ - [ ] REPO-MEMORY.md atualizado com decisões e pitfalls.
162
+ - [ ] Eventos LessonPromoted emitidos.
163
+ - [ ] Nenhum arquivo de código do projeto modificado.
164
+ </success_criteria>
@@ -217,6 +217,7 @@ Um pedido → **um** destino (sem gerar contrato). O agente aplica `route.md` ou
217
217
 
218
218
  | Se o utilizador disser (exemplos) | Comando / ação |
219
219
  |-----------------------------------|----------------|
220
+ | **Objetivo de implementação** (“cria X”, “implementa Y”, “adiciona Z”, “corrige W”, “desenvolve N”) | `/oxe <objetivo>` → Conductor decide automaticamente Agent Mode (simples/médio) ou Swarm Mode (complexo) |
220
221
  | Não sei que passo OXE sou / “o que faço agora?” | `/oxe` ou `npx oxe-cc status` |
221
222
  | Quero entender rapidamente a situação real da trilha atual | `/oxe “pergunta”` |
222
223
  | Acabei de clonar / falta OXE no projeto | `npx oxe-cc@latest` (ou `oxe-cc`) na raiz do repo |
@@ -0,0 +1,163 @@
1
+ # OXE — Workflow: memory (Memory Kernel)
2
+
3
+ <objective>
4
+ Protocolo de recuperação de memória para o Conductor Agent.
5
+ Lê as 4 camadas de memória do OXE na ordem correta, filtra por relevância ao objetivo atual
6
+ e retorna um context pack para injeção antes de qualquer execução (Agent Mode ou Swarm Mode).
7
+ </objective>
8
+
9
+ <context>
10
+ - Invocado por `conduct.md` Fase 2 (Memory Retrieval).
11
+ - Não modifica artefatos de projeto. Apenas lê e grava em `.oxe/memory/retrieved/`.
12
+ - Reaproveitamento: `buildMemoryLayers()` em `bin/lib/oxe-operational.cjs:2364` define a ordem das camadas.
13
+ - Reaproveitamento: `extractSemanticFragment()` em `bin/lib/oxe-context-engine.cjs` para extração filtrada.
14
+ - Parâmetros de entrada: `intent_tags`, `phase` (conduct|spec|plan|execute|verify), `objective`.
15
+ </context>
16
+
17
+ ---
18
+
19
+ ## Camadas de memória (ordem de leitura)
20
+
21
+ | # | Camada | Arquivo | Conteúdo |
22
+ |---|--------|---------|----------|
23
+ | 1 | runtime_state | `.oxe/STATE.md` | Fase atual, sessão ativa, run ativo |
24
+ | 2 | session_memory | `.oxe/<session>/SESSION.md` | Contexto da sessão ativa (se existir) |
25
+ | 3 | project_memory | `.oxe/memory/REPO-MEMORY.md` | Decisões cross-session, pitfalls, preferências |
26
+ | 4 | lessons | `.oxe/global/LESSONS.md` | Lições de ciclos anteriores |
27
+ | 5 | observations | `.oxe/OBSERVATIONS.md` | Observações pendentes |
28
+
29
+ ---
30
+
31
+ ## Fase 1 — Leitura das camadas
32
+
33
+ Para cada camada, verificar se o arquivo existe. Se não existir, pular silenciosamente.
34
+
35
+ **Filtro de relevância:** para cada camada, extrair apenas seções que contenham pelo menos uma das `intent_tags` no texto, ou que estejam marcadas com `Aplicar em` compatível com a `phase` atual.
36
+
37
+ **Para LESSONS.md:** filtrar por:
38
+ - `Status: ativo`
39
+ - `Impacto: alto` (prioridade máxima) ou `Frequência >= 2` (lições recorrentes)
40
+ - `Aplicar em` contém a `phase` atual
41
+
42
+ **Para OBSERVATIONS.md:** filtrar por:
43
+ - `Status: pendente`
44
+ - `Impacto` inclui a `phase` atual ou `all`
45
+
46
+ ---
47
+
48
+ ## Fase 2 — Ranking por relevância
49
+
50
+ Para cada fragmento extraído, atribuir score de relevância:
51
+
52
+ | Critério | Score |
53
+ |---------|-------|
54
+ | Tag exata em intent_tags | +3 |
55
+ | Impacto: alto | +2 |
56
+ | Frequência >= 3 | +2 |
57
+ | Phase match exato | +2 |
58
+ | Frequência >= 2 | +1 |
59
+ | Menção ao objetivo (palavras-chave) | +1 |
60
+
61
+ Ordenar fragmentos por score decrescente. Manter top-10 para injeção (ou todos se < 10).
62
+
63
+ ---
64
+
65
+ ## Fase 3 — Geração do Context Pack
66
+
67
+ Gerar arquivo de injeção baseado no mode:
68
+
69
+ **Agent Mode** → `.oxe/agent/MEMORY-INJECTIONS.md`
70
+ **Swarm Mode** → `.oxe/swarm/DECISIONS.md` (seção "Contexto de Memória")
71
+
72
+ Formato do context pack:
73
+ ```markdown
74
+ ## Contexto de Memória — <phase> / <timestamp>
75
+
76
+ **Objetivo:** <texto>
77
+ **Intent Tags:** <lista>
78
+ **Fontes:** <camadas lidas>
79
+
80
+ ### Lições aplicáveis
81
+ <fragmentos de LESSONS.md ordenados por relevância>
82
+
83
+ ### Pitfalls conhecidos
84
+ <fragmentos de REPO-MEMORY.md relevantes>
85
+
86
+ ### Observações pendentes
87
+ <fragmentos de OBSERVATIONS.md com impacto na fase atual>
88
+
89
+ ### Estado atual
90
+ <fragmento de STATE.md>
91
+ ```
92
+
93
+ ---
94
+
95
+ ## Fase 4 — Snapshot rastreável
96
+
97
+ Gravar snapshot do contexto injetado em `.oxe/memory/retrieved/<phase>.md` para auditoria.
98
+
99
+ Se o diretório `.oxe/memory/retrieved/` não existir, criar.
100
+
101
+ ---
102
+
103
+ ## Estrutura `.oxe/memory/REPO-MEMORY.md`
104
+
105
+ Quando criado pela primeira vez (após primeiro swarm run completo), deve seguir:
106
+
107
+ ```markdown
108
+ # Memória do Repositório
109
+
110
+ > Memória cross-session. Atualizada automaticamente pelo Learning Kernel ao final de cada Swarm Run.
111
+ > Contém decisões arquiteturais, pitfalls recorrentes e preferências do projeto.
112
+
113
+ ## Decisões Arquiteturais
114
+
115
+ | ID | Decisão | Contexto | Data |
116
+ |----|---------|----------|------|
117
+
118
+ ## Pitfalls Conhecidos
119
+
120
+ | ID | Problema | Causa | Solução | Frequência |
121
+ |----|---------|-------|---------|-----------|
122
+
123
+ ## Preferências do Projeto
124
+
125
+ | Categoria | Preferência | Fonte |
126
+ |-----------|------------|-------|
127
+
128
+ ## Padrões Validados
129
+
130
+ | Padrão | Contexto | Data |
131
+ |--------|---------|------|
132
+ ```
133
+
134
+ ---
135
+
136
+ ## Estrutura `.oxe/memory/MEMORY-INDEX.json`
137
+
138
+ ```json
139
+ {
140
+ "updated_at": "ISO8601",
141
+ "entries": [
142
+ {
143
+ "id": "MEM-001",
144
+ "type": "lesson | pitfall | decision | preference | pattern",
145
+ "phase": ["spec", "plan", "execute", "verify", "conduct"],
146
+ "relevance_tags": ["backend", "auth"],
147
+ "source": ".oxe/global/LESSONS.md#C-01-L1",
148
+ "summary": "Uma frase resumindo o conteúdo",
149
+ "created_at": "ISO8601",
150
+ "last_applied": "ISO8601",
151
+ "apply_count": 2
152
+ }
153
+ ]
154
+ }
155
+ ```
156
+
157
+ <success_criteria>
158
+ - [ ] Camadas lidas na ordem correta (runtime_state → session → project → lessons → observations).
159
+ - [ ] Filtro de relevância aplicado por intent_tags e phase.
160
+ - [ ] Context pack gerado no caminho correto (agent ou swarm).
161
+ - [ ] Snapshot gravado em `.oxe/memory/retrieved/<phase>.md`.
162
+ - [ ] Arquivos ausentes pular silenciosamente (sem erro).
163
+ </success_criteria>
@@ -135,7 +135,8 @@ Não precisam ser decorados como comandos separados:
135
135
  - **Sem input ou "next / o que faço / status":** aplicar `<modo_status>`.
136
136
  - **"help / comandos / o que é OXE":** aplicar `<modo_help>`.
137
137
  - **Pergunta situacional** ("onde estou?", "qual o risco?", "o que está acontecendo?", "me contextualize"): aplicar `<modo_pergunta>`.
138
- - **Input de ação/tarefa** (linguagem natural com contexto operacional): aplicar `<modo_route>` e, se o workflow for claro, carregar e executar diretamente o `oxe/workflows/<nome>.md` correspondente.
138
+ - **Objetivo de implementação** (linguagem natural descrevendo uma tarefa, feature ou mudança a executar ex.: "cria X", "implementa Y", "adiciona Z", "corrige W"): carregar e executar diretamente `oxe/workflows/conduct.md`. O Conductor decide Agent Mode vs Swarm Mode automaticamente.
139
+ - **Input de roteamento simples** (pedido que mapeia diretamente a um comando OXE existente sem necessidade de execução): aplicar `<modo_route>` e, se o workflow for claro, carregar e executar diretamente o `oxe/workflows/<nome>.md` correspondente.
139
140
  2. Nunca produzir listas longas de alternativas. Um passo, um comando, uma frase.
140
141
  3. Se o workflow executado diretamente gerar artefatos, reportar no chat conforme esse workflow.
141
142
  </process>