ozali 0.7.1 → 0.9.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,22 @@
1
+ # Vault de Ozali — Memoria del Equipo
2
+
3
+ Este vault contiene la memoria acumulada de los proyectos gestionados con ozali.
4
+ Se actualiza automáticamente con `ozali sync --obsidian`.
5
+
6
+ ## 📁 Estructura
7
+
8
+ - [[MOCs/Índice Global]] — Navegación principal
9
+ - [[MOCs/Proyectos]] — Lista de proyectos activos
10
+ - [[MOCs/Decisiones del Equipo]] — Decisiones de arquitectura y trade-offs
11
+ - [[MOCs/Bugfixes Recientes]] — Correcciones que afectan a otros
12
+ - [[MOCs/Métricas y Tokens]] — Uso de tokens y ahorro por recall
13
+ - `Memoria/` — Exportación de Engram (decisiones, bugfixes, métricas)
14
+
15
+ ## 🔗 Fuentes de verdad (cerebros)
16
+
17
+ Los documentos de arquitectura y reglas de cada proyecto viven en su repo:
18
+
19
+ - Abre el workspace en tu editor para acceder al `AI.md` / `IA.md` de cada proyecto.
20
+
21
+ > No edites los archivos en `Memoria/` manualmente — se regeneran automáticamente.
22
+ > Usa `MOCs/` y `Daily/` para tus notas personales.
@@ -13,29 +13,73 @@ ejecución disciplinada dentro de cada uno.
13
13
  > Cada repo miembro conserva su propia autonomía: su `ozali-jarvis`, su skill `cdk`, su fuente de
14
14
  > verdad (`.ai/`/`.ia/`) y su memoria Engram. Tú **no** los reemplazas: los **coordinas**.
15
15
 
16
+ ## El manifiesto (`ozali-workspace.json`) — tu única fuente de verdad
17
+
18
+ Léelo en la raíz **antes de cualquier cosa**. Es lo que `ozali workspace` escribió; su esquema:
19
+
20
+ - `members[]` — cada repo miembro:
21
+ - `path` — carpeta relativa a la raíz (el repo donde ejecutas).
22
+ - `project` — **nombre del proyecto en Engram** de ese repo. Úsalo para acotar la memoria (ver §1);
23
+ **no** dependas de `mem_current_project`, que detecta la raíz del workspace, no el miembro.
24
+ - `status` — `ready` / `needs-calibration` / `missing-init`. **Es una foto** del último
25
+ `ozali workspace`: puede haber quedado atrás (ver §2).
26
+ - `sot` — variante de fuente de verdad del repo (`ai`/`ia`/…) o `null` si no la tiene.
27
+ - `references[]` — aristas dirigidas `{ from, to, kind }` entre miembros (`from` consume a `to`):
28
+ - `kind: "npm-dep"` — `from` declara a `to` en sus dependencias npm.
29
+ - `kind: "git-submodule"` — `to` está montado como submódulo dentro de `from`.
30
+ - `kind: "compose"` — un servicio de `from` construye desde `to` (`docker-compose`).
31
+ - `knowledgeRepo` — repo de conocimiento **compartido** por el equipo (histórico + memoria sincronizada).
32
+ - `cloud` — config de Engram Cloud (réplica de equipo) si está habilitada.
33
+ - `agent` — agente objetivo (`claude-code` / `opencode` / `both`).
34
+
35
+ **No inventes** miembros ni referencias: si algo no está en el manifiesto, no lo asumas.
36
+
16
37
  ## 1. Al iniciar (recall-first, a nivel workspace)
17
- - **Lee `ozali-workspace.json`** en la raíz: es la fuente de verdad de los **miembros**, su **estado**
18
- (`ready` / `needs-calibration` / `missing-init`) y las **referencias** entre ellos (`from → to`).
19
- - Ubica la tarea: ¿qué repo(s) toca y a través de qué referencias impacta a otros?
20
- - Recupera contexto de memoria **de cada proyecto involucrado** (no de todos): confirma el proyecto de
21
- cada repo con `mem_current_project` y usa `mem_search`/`mem_context` acotado a esos proyectos.
38
+ - **Lee `ozali-workspace.json`** y ubica la tarea: ¿qué repo(s) toca y, vía qué `references`, impacta a
39
+ otros?
40
+ - Recupera contexto de memoria **solo de los proyectos involucrados** (no de todos): para cada miembro
41
+ en juego usa su `members[].project` con `mem_search`/`mem_context` acotado a ese proyecto.
22
42
  - **Recuperación selectiva:** nunca vuelques toda la memoria; trae solo lo necesario por repo.
23
43
 
24
44
  ## 2. Antes de tocar código — verifica que el repo esté listo
25
- - Si un miembro está `missing-init`, dilo y sugiere `ozali init` en ese repo (o re-correr
26
- `ozali workspace` en la raíz).
27
- - Si un miembro está `needs-calibration` (sin `cdk`), **condúcelo**: sugiere abrir ese repo y correr la
28
- skill **`ozali`** ("diagnostica el proyecto") para generar su `cdk` antes de ejecutar cambios.
45
+ - El `status` del manifiesto es una foto; **confírmalo contra la realidad** antes de confiar en él: un
46
+ repo está calibrado si existe `<path>/.claude/skills/cdk/SKILL.md`.
47
+ - Si un miembro está `missing-init` (sin `.ozali/config.json`), dilo y sugiere `ozali init` en ese repo.
48
+ - Si está `needs-calibration` (tiene init pero **falta `cdk`**), **condúcelo** desde aquí (ver sección
49
+ siguiente): ya **no** hace falta abrir cada repo por separado.
50
+ - Si calibraste o inicializaste un repo desde aquí, el manifiesto quedó **desactualizado**: sugiere
51
+ re-correr `ozali workspace` en la raíz para refrescar estados y referencias.
52
+
53
+ ## Calibrar o preparar miembros desde la raíz (sin cambiar de proyecto)
54
+
55
+ No abras cada repo por separado. Desde este workspace prepara y calibra en secuencia:
56
+
57
+ - **`missing-init`** (sin `.ozali/config.json`): pide correr `ozali init <path>` en ese miembro, o
58
+ `ozali workspace` en la raíz (que lo inicializa por ti).
59
+ - **`needs-calibration`** (falta `cdk`): invoca la skill **`ozali`** instalada en la raíz **en modo
60
+ target**, apuntando a `<path>` del miembro. Genera `AI.md`/`.ai/` y su `cdk` **dentro de esa
61
+ subcarpeta**, guardando en Engram con el `members[].project` de ese repo.
62
+ - Hazlo **repo por repo, secuencialmente**, respetando el 🛑 **GATE** de cada uno: nunca calibres
63
+ varios sin aprobación.
64
+ - Para **revisar** o **actualizar** todos de golpe (sin agente, solo CLI): `ozali workspace --doctor`
65
+ y `ozali workspace --update`.
66
+ - Tras inicializar/calibrar, sugiere **re-correr `ozali workspace`** en la raíz para refrescar los
67
+ estados del manifiesto.
29
68
 
30
69
  ## 3. Para ejecutar cambios → delega en el repo correcto
31
70
  - Un cambio se ejecuta **dentro** del repo que le corresponde, usando **su** skill `cdk` (plan, GATE,
32
71
  TDD, docs por hito). Tú preparas el contexto cruzado; el `cdk` del repo ejecuta.
33
- - **Cambios que cruzan repos** (p. ej. un contrato de API que consume un front): secuencia el trabajo
34
- siguiendo las `references` (primero el `to`/proveedor, luego el `from`/consumidor), y deja registrado
35
- en la memoria de cada repo qué cambió y por qué, enlazando ambos lados.
72
+ - **Cambios que cruzan repos:** secuencia según las `references`, **primero el `to` (proveedor), luego
73
+ el `from` (consumidor)**. Según el `kind`:
74
+ - `npm-dep` publica/enlaza el paquete de `to` antes de que `from` consuma la nueva versión.
75
+ - `git-submodule` — actualiza `to`, luego mueve el puntero del submódulo en `from` y verifícalo.
76
+ - `compose` — reconstruye el servicio de `to` antes de levantar `from`.
77
+ - Deja registrado en la memoria de **cada** repo qué cambió y por qué, enlazando ambos lados de la
78
+ referencia.
36
79
 
37
80
  ## 4. Al cerrar
38
- - Resume por repo tocado con `mem_session_summary` (solo el agente top-level).
81
+ - Resume por repo tocado con `mem_session_summary` (solo el agente top-level), usando el `project` de
82
+ cada miembro.
39
83
  - Si el cambio afectó una referencia entre repos, anótalo en **ambos** proyectos para que el recall
40
84
  futuro lo encuentre desde cualquiera de los dos.
41
85