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.
- package/README.md +12 -0
- package/cli/bin/ozali.mjs +8 -2
- package/cli/lib/commands.mjs +254 -9
- package/cli/lib/detect.mjs +42 -3
- package/cli/lib/util.mjs +55 -0
- package/cli/test/smoke.test.mjs +91 -1
- package/docs/compilado-local.md +182 -0
- package/docs/guia-de-uso.md +50 -0
- package/docs/obsidian-integration.md +93 -0
- package/docs/workspaces.md +19 -5
- package/package.json +1 -1
- package/skill/SKILL.md +22 -0
- package/templates/obsidian-vault/.obsidian/app.json +12 -0
- package/templates/obsidian-vault/.obsidian/core-plugins.json +9 -0
- package/templates/obsidian-vault/MOCs/Bugfixes Recientes.md +9 -0
- package/templates/obsidian-vault/MOCs/Decisiones del Equipo.md +9 -0
- package/templates/obsidian-vault/MOCs/M/303/251tricas y Tokens.md" +9 -0
- package/templates/obsidian-vault/MOCs/Proyectos.md +17 -0
- package/templates/obsidian-vault/MOCs//303/215ndice Global.md" +19 -0
- package/templates/obsidian-vault/README.md +22 -0
- package/templates/ozali-workspace-jarvis.md +57 -13
|
@@ -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`**
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
|
|
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
|
-
-
|
|
26
|
-
|
|
27
|
-
- Si un miembro está `
|
|
28
|
-
|
|
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
|
|
34
|
-
|
|
35
|
-
|
|
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
|
|