oficina-opencode 0.0.0-stage → 2.0.1

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 (117) hide show
  1. package/DESIGN.md +145 -0
  2. package/LICENSE +21 -0
  3. package/README.md +670 -2
  4. package/agents/oficina-architect.md +72 -0
  5. package/agents/oficina-commander.md +108 -0
  6. package/agents/oficina-critico.md +148 -0
  7. package/agents/oficina-director.md +160 -0
  8. package/agents/oficina-guardian.md +128 -0
  9. package/agents/oficina-integrator.md +98 -0
  10. package/agents/oficina-verificador.md +88 -0
  11. package/commands/oficina.md +36 -0
  12. package/dist/cli.d.ts +12 -0
  13. package/dist/cli.d.ts.map +1 -0
  14. package/dist/cli.js +394 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/core/briefing.d.ts +115 -0
  17. package/dist/core/briefing.d.ts.map +1 -0
  18. package/dist/core/briefing.js +410 -0
  19. package/dist/core/briefing.js.map +1 -0
  20. package/dist/core/bus.d.ts +132 -0
  21. package/dist/core/bus.d.ts.map +1 -0
  22. package/dist/core/bus.js +250 -0
  23. package/dist/core/bus.js.map +1 -0
  24. package/dist/core/catalog.d.ts +303 -0
  25. package/dist/core/catalog.d.ts.map +1 -0
  26. package/dist/core/catalog.js +816 -0
  27. package/dist/core/catalog.js.map +1 -0
  28. package/dist/core/dispatch.d.ts +110 -0
  29. package/dist/core/dispatch.d.ts.map +1 -0
  30. package/dist/core/dispatch.js +301 -0
  31. package/dist/core/dispatch.js.map +1 -0
  32. package/dist/core/factory.d.ts +74 -0
  33. package/dist/core/factory.d.ts.map +1 -0
  34. package/dist/core/factory.js +243 -0
  35. package/dist/core/factory.js.map +1 -0
  36. package/dist/core/fsx.d.ts +39 -0
  37. package/dist/core/fsx.d.ts.map +1 -0
  38. package/dist/core/fsx.js +113 -0
  39. package/dist/core/fsx.js.map +1 -0
  40. package/dist/core/gates.d.ts +97 -0
  41. package/dist/core/gates.d.ts.map +1 -0
  42. package/dist/core/gates.js +467 -0
  43. package/dist/core/gates.js.map +1 -0
  44. package/dist/core/leases.d.ts +46 -0
  45. package/dist/core/leases.d.ts.map +1 -0
  46. package/dist/core/leases.js +94 -0
  47. package/dist/core/leases.js.map +1 -0
  48. package/dist/core/log.d.ts +30 -0
  49. package/dist/core/log.d.ts.map +1 -0
  50. package/dist/core/log.js +43 -0
  51. package/dist/core/log.js.map +1 -0
  52. package/dist/core/mesa.d.ts +82 -0
  53. package/dist/core/mesa.d.ts.map +1 -0
  54. package/dist/core/mesa.js +178 -0
  55. package/dist/core/mesa.js.map +1 -0
  56. package/dist/core/office.d.ts +208 -0
  57. package/dist/core/office.d.ts.map +1 -0
  58. package/dist/core/office.js +618 -0
  59. package/dist/core/office.js.map +1 -0
  60. package/dist/core/paths.d.ts +67 -0
  61. package/dist/core/paths.d.ts.map +1 -0
  62. package/dist/core/paths.js +136 -0
  63. package/dist/core/paths.js.map +1 -0
  64. package/dist/core/retry.d.ts +41 -0
  65. package/dist/core/retry.d.ts.map +1 -0
  66. package/dist/core/retry.js +86 -0
  67. package/dist/core/retry.js.map +1 -0
  68. package/dist/core/roster.d.ts +47 -0
  69. package/dist/core/roster.d.ts.map +1 -0
  70. package/dist/core/roster.js +146 -0
  71. package/dist/core/roster.js.map +1 -0
  72. package/dist/core/router.d.ts +67 -0
  73. package/dist/core/router.d.ts.map +1 -0
  74. package/dist/core/router.js +186 -0
  75. package/dist/core/router.js.map +1 -0
  76. package/dist/core/state.d.ts +89 -0
  77. package/dist/core/state.d.ts.map +1 -0
  78. package/dist/core/state.js +303 -0
  79. package/dist/core/state.js.map +1 -0
  80. package/dist/core/types.d.ts +333 -0
  81. package/dist/core/types.d.ts.map +1 -0
  82. package/dist/core/types.js +27 -0
  83. package/dist/core/types.js.map +1 -0
  84. package/dist/hooks/compacting.d.ts +18 -0
  85. package/dist/hooks/compacting.d.ts.map +1 -0
  86. package/dist/hooks/compacting.js +72 -0
  87. package/dist/hooks/compacting.js.map +1 -0
  88. package/dist/hooks/scopeGuard.d.ts +39 -0
  89. package/dist/hooks/scopeGuard.d.ts.map +1 -0
  90. package/dist/hooks/scopeGuard.js +114 -0
  91. package/dist/hooks/scopeGuard.js.map +1 -0
  92. package/dist/hooks/sessionIdle.d.ts +35 -0
  93. package/dist/hooks/sessionIdle.d.ts.map +1 -0
  94. package/dist/hooks/sessionIdle.js +110 -0
  95. package/dist/hooks/sessionIdle.js.map +1 -0
  96. package/dist/hooks/systemTransform.d.ts +18 -0
  97. package/dist/hooks/systemTransform.d.ts.map +1 -0
  98. package/dist/hooks/systemTransform.js +63 -0
  99. package/dist/hooks/systemTransform.js.map +1 -0
  100. package/dist/index.d.ts +36 -0
  101. package/dist/index.d.ts.map +1 -0
  102. package/dist/index.js +103 -0
  103. package/dist/index.js.map +1 -0
  104. package/dist/tools/index.d.ts +22 -0
  105. package/dist/tools/index.d.ts.map +1 -0
  106. package/dist/tools/index.js +854 -0
  107. package/dist/tools/index.js.map +1 -0
  108. package/docs/ARCHITECTURE.md +258 -0
  109. package/docs/QUE-ES.md +337 -0
  110. package/examples/opencode.json +7 -0
  111. package/package.json +81 -4
  112. package/skills/oficina/README.md +120 -0
  113. package/skills/oficina/SKILL.md +251 -0
  114. package/skills/oficina/reference/mesh.md +345 -0
  115. package/skills/oficina/reference/protocol.md +342 -0
  116. package/skills/oficina/reference/roles.md +171 -0
  117. package/skills/oficina/reference/templates.md +278 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,258 @@
1
+ # Arquitectura de AI-OFFICE
2
+
3
+ Este documento es el **porqué**. El README es el qué. Acá está la razón de cada decisión de diseño, y qué alternativas se descartaron.
4
+
5
+ ---
6
+
7
+ ## 1. Por qué un plugin y no una skill
8
+
9
+ La diferencia no es cosmética. Es de categoría.
10
+
11
+ | Capacidad | Skill (markdown) | Plugin (TypeScript) |
12
+ |---|---|---|
13
+ | Protocolo | El modelo «recuerda» seguirlo | Máquina de estados con transiciones válidas |
14
+ | Loop | El modelo decide si sigue | Hook `session.idle` → auto-resume |
15
+ | Estado | Markdown que el modelo edita | Código dueño del estado, escrituras atómicas |
16
+ | Gates | El modelo corre comandos e interpreta | El motor corre comandos, parsea exit codes |
17
+ | Escalamiento | Juicio del modelo | Contadores, 3-strikes determinístico |
18
+ | Rotación | Regla en markdown | Algoritmo de rotación en código |
19
+ | Recovery | El modelo lee `state.json` | Checkpoint/resume built-in |
20
+ | Costo | Autorreporte | Accounting real de invocaciones |
21
+ | Scope | Confianza | Enforcement en `tool.execute.before` |
22
+
23
+ **El dolor concreto del usuario**: «trabajen incansablemente hasta lograrlo». Con una skill, eso depende de que el modelo *quiera* seguir. Con un modelo rápido que dice «listo, terminado», para. Eso es exactamente «la IA no cumple».
24
+
25
+ El plugin invierte la dependencia: **el estado decide, no la confianza**.
26
+
27
+ ---
28
+
29
+ ## 2. La API de plugins de OpenCode — verificación
30
+
31
+ Antes de comprometerse al enfoque, se verificó la superficie real contra la versión instalada (`@opencode-ai/plugin@1.15.11`):
32
+
33
+ | Hook | Estado | Uso |
34
+ |---|---|---|
35
+ | `tool` | ✅ estable | 10 tools `oficina_*` |
36
+ | `event` (incluye `session.idle`) | ✅ estable | auto-continuación |
37
+ | `tool.execute.before` | ✅ estable | guard de scope |
38
+ | `experimental.chat.system.transform` | ✅ estable | inyección de estado |
39
+ | `experimental.session.compacting` | ✅ estable | estado post-compactación |
40
+ | `client.session.promptAsync` | ✅ estable | prompt sintético de auto-resume |
41
+ | `client.app.log` | ✅ estable | logging estructurado |
42
+
43
+ **Conclusión**: la API v1 de plugins está documentada y tipada. No es la superficie beta-inestable que el riesgo original suponía. El enfoque proceeded.
44
+
45
+ ### Lo que la API NO da (y se resolvió por otro lado)
46
+
47
+ | Limitación | Resolución |
48
+ |---|---|
49
+ | Los subagentes no tienen memoria compartida | Bus append-only sobre disco |
50
+ | Los subagentes no se hablan | El bus es el único canal; los coordinadores son canales más |
51
+ | Los paths relativos resuelven contra el cwd de sesión | `paths.ts` resuelve `PROJECT_ROOT` por marcadores y usa paths absolutos |
52
+ | `grep` no existe en Windows | El escaneo de secretos se implementó en TypeScript |
53
+
54
+ ---
55
+
56
+ ## 3. El bus: por qué disco y no memoria
57
+
58
+ Los subagentes de OpenCode son **procesos aislados**. No comparten heap. Un bus en memoria sería un bus de una sola sesión: el Director publicaría un mensaje que nadie leería.
59
+
60
+ Disco resuelve las cuatro cosas que importan:
61
+
62
+ 1. **Supervivencia** — el bus sobrevive al reinicio de la sesión.
63
+ 2. **Compartibilidad** — el mismo bus sirve para otro harness (Claude Code, AgentTeams).
64
+ 3. **Auditabilidad** — el log es el historial. Un message log append-only es gratis.
65
+ 4. **Atomicidad** — `tmp + rename` garantiza que un lector nunca ve un JSON partido.
66
+
67
+ ### Semántica elegida
68
+
69
+ - **Append-only**: los mensajes nunca se borran. Un `seq` monótono por canal da orden total sin locks.
70
+ - **`seq` derivado de los archivos existentes**, no de un contador en memoria: dos emisores concurrentes no pueden colisionar.
71
+ - **Ack en archivo separado**: el receptor escribe `inbox/<agentId>/<msgid>.ack`. El emisor puede preguntar «¿quién leyó?».
72
+ - **TTL**: vencido = invisible para lectores nuevos, pero sigue en el log. No se borra la evidencia.
73
+ - **Idempotency key**: derivada de `card + agente + motivo` con hash. Dos intentos del mismo pedido no generan storm.
74
+
75
+ ### Alternativa descartada
76
+
77
+ **Broker en memoria (Redis, SQLite)**: agrega una dependencia, un proceso que mantener, y un modo de fallo nuevo. El bus sobre disco no necesita ninguno de esos, y el filesystem ya es transaccional-ish con `rename`.
78
+
79
+ ---
80
+
81
+ ## 4. La ficha: un solo schema
82
+
83
+ El riesgo de un sistema multi-agente es la **heterogeneidad**: 80 agentes de agency-agents, cada uno con un formato distinto, más roles fabricados. Si el bus, el matching de ayuda y la rotación tienen que conocer cada formato, el sistema se vuelve inmantenible.
84
+
85
+ La normalización a `Ficha` resuelve eso de raíz:
86
+
87
+ ```ts
88
+ interface Ficha {
89
+ id: string
90
+ role: string
91
+ displayName: string
92
+ source: FichaSource // agency-agents | factory
93
+ capabilities: string[]
94
+ tools: string[]
95
+ scope: { mayTouch: string[]; forbidden: string[] }
96
+ canDelegate: boolean
97
+ delegateBudget: number
98
+ peers: string[]
99
+ mustNot: string[]
100
+ onFinish: "idle-join" | "retire"
101
+ escalateTo: CoordinatorId
102
+ }
103
+ ```
104
+
105
+ A partir de ahí, el bus, el matching de capacidades, la rotación de owner y los tres coordinadores **no saben ni necesitan saber** de dónde salió el rol.
106
+
107
+ ### Resolución: catálogo → factory
108
+
109
+ El catálogo de agency-agents se escanea en runtime: se parsea el frontmatter, se infieren capabilities de un mapa de dominio, y se matchea por overlap.
110
+
111
+ **Regla de cobertura 60%**: si el mejor match no cubre el 60% de las capabilities pedidas, se fabrica el rol. Porqué el umbral:
112
+
113
+ - Con umbral bajo (30%), un rol medio-tono entra al equipo. Un solo rol que hace su trabajo a medias arruina más de lo que aporta — y encima consume presupuesto.
114
+ - Con umbral alto (90%), casi todo se fabrica, y se pierde el valor de tener 80 agentes escritos con criterio.
115
+
116
+ 60% es el punto donde un rol es genuinamente útil y donde la cobertura ya no es accidental.
117
+
118
+ **El router nunca fuerza un match.** Si una card pide `kubernetes` y nadie lo tiene, devuelve `null` + las capabilities faltantes. Fabricar un rol o pedir ayuda es la respuesta; asignar un developer a una card de infra es la respuesta mala.
119
+
120
+ ---
121
+
122
+ ## 5. Los invariantes duros
123
+
124
+ La diferencia entre «la skill dice que no hagas X» y «el motor no te deja hacer X».
125
+
126
+ ```ts
127
+ export function assertInvariants(ctx: InvariantContext): void {
128
+ // reviewer_neq_owner
129
+ if (limits.reviewerNeqOwner && card.owner === card.reviewer) throw ...
130
+ // gate_required_before_done
131
+ if (limits.gateRequiredBeforeDone && card.state === "done" && gatesPassed !== true) throw ...
132
+ // max_review_rejections, max_help_chain_hops, max_cards, max_agent_calls, max_spawns_total
133
+ }
134
+ ```
135
+
136
+ `transitionCard` llama a `assertInvariants` antes de aplicar. La transición **no ocurre** si el invariante se viola. No es un warning: es una excepción.
137
+
138
+ ### Por qué 3 rechazos y no 1
139
+
140
+ - **1 rechazo** → REWORK. Casi siempre es un detalle. Iterar es correcto.
141
+ - **2 rechazos** → REPLAN. Dos intentos fallidos con el mismo owner y el mismo approach sugieren que el approach está mal. El Director rehace la card y **rota el owner**: el problema puede ser el agente, no el código.
142
+ - **3 rechazos** → ESCALACIÓN. El costo de seguir iterando supera el valor. Se le presenta al usuario el objetivo, los 3 intentos, la causa raíz y 2-3 opciones con recomendación.
143
+
144
+ ---
145
+
146
+ ## 6. El hook de auto-continuación
147
+
148
+ El hook más importante y el que más riesgo de loop trae. Por eso tiene cuatro guardas:
149
+
150
+ | Guarda | Por qué |
151
+ |---|---|
152
+ | Solo si `status === "running"` | Una corrida pausada, bloqueada o entregada no se reanuda: eso es decisión del usuario |
153
+ | Solo si quedan cards sin `DONE` | Si no hay trabajo, reanudar es ruido |
154
+ | Tope de 25 auto-reanudaciones por sesión | Un loop infinito quema presupuesto y tokens |
155
+ | Cooldown de 1,5 s | Evita reanudar en loop cerrado por latencia |
156
+
157
+ ### Por qué `promptAsync` y no `prompt`
158
+
159
+ `client.session.prompt()` es bloqueante: el hook esperaría a que el modelo termine, y como el modelo terminó (por eso estamos en `idle`), se genera un deadlock. `promptAsync` es fire-and-forget: el hook manda el prompt y devuelve.
160
+
161
+ ---
162
+
163
+ ## 7. El guard de scope
164
+
165
+ `tool.execute.before` intercepta `edit`, `write`, `patch`. Para cada uno:
166
+
167
+ 1. Extrae el path del argumento (soportando `filePath`, `path` y el formato de `patch`).
168
+ 2. Lo relativiza contra el `PROJECT_ROOT`.
169
+ 3. Si está bajo `.oficina/` → permitido (es el canal de la oficina).
170
+ 4. Si matchea `forbidden` → **rechazado**, sin excepción.
171
+ 5. Si no matchea `may_touch` → **rechazado**.
172
+
173
+ El mensaje de error le dice al modelo qué hacer, no solo qué no hacer. Un guard que dice «no» sin decir «qué sí» produce intentos a ciegas.
174
+
175
+ ### El bug del orden de reemplazos
176
+
177
+ El glob→regex tiene un orden no trivial. El patrón `**/*.env` se convierte en `(?:.*/)?[^/]*\.env`, y ese `?` insertado **tiene que convertirse en `.` antes**, no después — si no, `(?:.*/)?` se transforma en `(.:.*/).` y el glob deja de matchear. Los tests lo cazaron; el comentario en el código lo documenta.
178
+
179
+ ---
180
+
181
+ ## 8. Los gates
182
+
183
+ De la skill `verification-loop`. Se ejecutan de verdad.
184
+
185
+ ### Honestidad del gate
186
+
187
+ Un gate que dice «debería compilar» no es un gate. Las reglas:
188
+
189
+ - Nunca `PASS` en una fase no ejecutada → `NOT RUN`, y `NOT RUN` hace fallar el gate.
190
+ - Nunca output inventado. Si un comando no da salida, se pega `(sin salida)`.
191
+ - `N/A` con motivo explícito. `N/A` silencioso es una fase skipeada disfrazada.
192
+ - Una fase aplicable en `FAIL` = gate `FAIL`. No se promedia ni se pondera.
193
+
194
+ ### La fase de secretos
195
+
196
+ Dos decisiones no obvias:
197
+
198
+ **No usa `grep`.** Shelling out a `grep` hace que el gate falle en Windows por razones equivocadas — y un gate que falla siempre es un gate que nadie lee. El escaneo se implementó en TypeScript: portable, sin dependency opcional, y con control del ruido.
199
+
200
+ **Redacta el valor.** El output dice `src/auth.js:12 credenciales asignadas API_K***...EY`. Un log de gate que imprime la credencial completa la acaba de filtrar — y los logs de gate van a archivos, a CI, y a transcripts de sesión.
201
+
202
+ ### Detectar tests que no corrieron
203
+
204
+ Un gate que pasa con cero tests es un gate verde vacío. `testsActuallyRan` parsea el output en ambos órdenes (`5 tests` y `tests 5`) y devuelve `false` si no encuentra un conteo.
205
+
206
+ ---
207
+
208
+ ## 9. Los 3 coordinadores
209
+
210
+ Un solo coordinador es cuello de botella y punto único de falla: si el Director está ocupada con una decisión técnica, nadie prioriza.
211
+
212
+ Partición por dominio:
213
+
214
+ | | Dominio | Por qué es un corte natural |
215
+ |---|---|---|
216
+ | Comandante | scope, objetivo, prioridad | Es el único que puede decir «esto está fuera del objetivo» |
217
+ | Arquitecto | cross-cutting | Es el único que puede decir «esto contradice lo que hizo otra card» |
218
+ | Integrador | flujo, leases, gates | Es el único que puede decir «esta task ya la tiene otro» |
219
+
220
+ **Arbitraje**: cada pregunta tiene un dueño por tipo. Las preguntas al coordinador van **por el bus**, no interrumpen al humano. Al usuario solo llega lo que ningún coordinador puede resolver: criterio de producto, conflicto entre dominios sin resolución, o presupuesto agotado.
221
+
222
+ ---
223
+
224
+ ## 10. El pool idle
225
+
226
+ El request original: «ayudar al resto cuando terminaron su objetivo para lograr todo más rápido».
227
+
228
+ Tres modos, en orden de preferencia:
229
+
230
+ 1. **Ayuda dirigida** — un `HELP_REQUEST` con `to: ["e-x"]`. El receptor hace triage.
231
+ 2. **Broadcast** — `to: ["*"]`. El primero que acepta toma el lease; los demás ven el lease ocupado y se retiran. El lease, no el chat, resuelve la carrera.
232
+ 3. **Claim proactivo** — si hay cards sin owner y tu capability matchea, la reclamás.
233
+
234
+ El modo 3 es el que convierte la oficina de «N tareas en paralelo» a «N agentes que se acomodan solos según la carga».
235
+
236
+ ---
237
+
238
+ ## 11. Migración v1 → v2
239
+
240
+ OFICINA v1 (la skill) escribía `state.json` con snake_case, `scope` como array y `rejections` como array. v2 usa camelCase, `scope` como objeto y `rejections` como número.
241
+
242
+ `migrateState()` detecta el formato viejo por la ausencia de `budget.maxCards` y convierte. **No destructivo**: objetivo, cards, resultados, gates y decisiones se conservan. Las cards en formato nuevo se pasan sin tocar.
243
+
244
+ Detalle no obvio: la migración se persiste en disco la primera vez, para no migrar en cada lectura.
245
+
246
+ ---
247
+
248
+ ## 12. Decisiones rechazadas
249
+
250
+ | Decisión | Por qué no |
251
+ |---|---|
252
+ | Broker en memoria (Redis/SQLite) | Dependency + proceso + modo de fallo nuevo para algo que el filesystem resuelve con `rename` |
253
+ | Base de datos para el estado | Un `state.json` con escrituras atómicas es auditable con `cat` y versionable con git |
254
+ | Un solo coordinador | Cuello de botella y punto único de falla |
255
+ | Delegar el pool idle a un scheduler externo | Los subagentes son efímeros; un scheduler externo no sabe si el agente sigue vivo |
256
+ | Shelling out a `grep` para el gate de secretos | No existe en Windows; el gate fallaría por la razón equivocada |
257
+ | `transition: all` en cualquier UI | Anima `box-shadow` en repaint, no en compositor |
258
+ | Auto-approve cuando los tests pasan | Los tests no miden correctitud, seguridad ni alcance. El gate técnico es uno de dos: el security gate también tiene que pasar |
package/docs/QUE-ES.md ADDED
@@ -0,0 +1,337 @@
1
+ # ¿Qué es AI-OFFICE?
2
+
3
+ > Una oficina de agentes de IA para OpenCode. Le das un objetivo, y el equipo lo trabaja, lo revisa, lo verifica y no para hasta terminarlo.
4
+
5
+ Este documento explica el sistema sin jerga. Si querés saber **cómo está construido por dentro**, está [`docs/ARCHITECTURE.md`](ARCHITECTURE.md). Si querés **usarlo**, está el [README](../README.md).
6
+
7
+ ---
8
+
9
+ ## 1. En una línea
10
+
11
+ AI-OFFICE convierte un asistente de IA en **un equipo de trabajo con jefe, especialistas, control de calidad y comunicación interna** — que trabaja de forma autónoma y se audita a sí misma.
12
+
13
+ ---
14
+
15
+ ## 2. El problema que resuelve
16
+
17
+ Todos los que trabajan con agentes de IA Known estos cinco momentos:
18
+
19
+ ### «Repíteme lo que ya dijimos»
20
+
21
+ El agente funciona bien mientras la conversación sea corta. En cuanto el trabajo se extiende, empieza a olvidar: qué decidiste, qué encontraste, qué quedó a medias. Y ahí es cuando tenés que recordarle.
22
+
23
+ ### «No avanza solo»
24
+
25
+ Le pedís algo, te dice «listo, terminado» — y se quedó en la mitad. No porque sea perezoso, sino porque **nadie lo obliga a seguir**. En una sesión larga, el modelo interpreta que su turno terminó y para.
26
+
27
+ ### «Hice todo yo»
28
+
29
+ El asistente tiene la capacidad de delegar en subagentes, pero casi nunca lo hace. Termina resolviendo todo en un solo hilo, con un solo contexto, y con el cuello de botella de que vos sos el único que puede desbloquearlo.
30
+
31
+ ### «Cada uno por su lado»
32
+
33
+ Cuando sí hay varios subagentes, trabajan como islands. Uno no sabe qué está haciendo el otro. No se piden ayuda. No se detectan los choques. Terminan tocando los mismos archivos con criterios distintos.
34
+
35
+ ### «Repetimos las mismas rules»
36
+
37
+ Acá está el detalle importante: cuando algo falla, el error no es «el modelo no es inteligente». Es que **el sistema no tiene estructura**. Nada obliga a que:
38
+ - se planifique antes de actuar
39
+ - el trabajo se reparta
40
+ - alguien verifique lo que otro hizo
41
+ - se detecte el estancamiento
42
+
43
+ Una skill de instrucciones ayuda. Un sistema con reglas escritas en código, no: porque **no dependen de que el modelo tenga ganas de seguirlas**.
44
+
45
+ ---
46
+
47
+ ## 3. La analogía
48
+
49
+ La forma más rápida de entender AI-OFFICE es pensarlo como **una oficina con estructura**.
50
+
51
+ ```
52
+ ┌─────────────────────────────────────┐
53
+ │ TÚ — el que encarga │
54
+ │ "necesito que pase esto" │
55
+ └──────────────────┬──────────────────┘
56
+ │
57
+ ▼
58
+ ┌─────────────────────────────────────┐
59
+ │ COMANDANTE — el jefe de proyecto │
60
+ │ Desarma el encargo en tareas │
61
+ └──────────────────┬──────────────────┘
62
+ │
63
+ ┌────────────────────────┼────────────────────────┐
64
+ ▼ ▼ ▼
65
+ ┌─────────┐ ┌─────────┐ ┌─────────┐
66
+ │Explorador│ │Implementador│ │Crítico │
67
+ │"qué hay │ │"hacelo" │ │"está bien│
68
+ │ acá" │ │ │ │ o no?" │
69
+ └────┬────┘ └─────┬─────┘ └────┬────┘
70
+ │ │ │
71
+ └───────────────────────┴──────────┬───────────┘
72
+ ▼
73
+ ┌────────────────────────┐
74
+ │ CONTROL DE CALIDAD │
75
+ │ ¿Compila? ¿Pasa los │
76
+ │ tests? ¿Filtra datos? │
77
+ └────────────────────────┘
78
+ ```
79
+
80
+ Lo que cambia contra trabajar con un asistente suelto:
81
+
82
+ | En una oficina real | Con un asistente suelto |
83
+ |---|---|
84
+ | El jefe reparte el trabajo | Todo le toca al mismo |
85
+ | El que entrega deja el trabajo hecho y anotado | Queda en el chat, se pierde |
86
+ | Otro lo revisa antes de que salga | Se auto-aprueba |
87
+ | Nadie entrega sin pasar el control de calidad | Se da por terminado cuando parece |
88
+ | Alguien pide ayuda a un colega | Cada uno se las arregla |
89
+ | Cuando alguien termina, va a ayudar a otro | Quedan esperando |
90
+ | La oficina sigue abierta hasta que el trabajo está hecho | La sesión se cierra |
91
+
92
+ ---
93
+
94
+ ## 4. Cómo trabaja un encargo, de punta a punta
95
+
96
+ ### Paso 1 — El encargo
97
+
98
+ Vos escribís una sola línea:
99
+
100
+ > `/oficina Agregar autenticación JWT con refresh rotation`
101
+
102
+ Eso es todo. No das instrucciones paso a paso. No repetís contexto. No armás una lista de tareas.
103
+
104
+ ### Paso 2 — El Comandante lo desarma
105
+
106
+ El Comandante (el jefe de proyecto) convierte tu encargo en **tareas concretas**, cada una con:
107
+
108
+ - **Qué tiene que producir** — un entregable claro, no «arreglar cosas»
109
+ - **Cómo se sabe que está bien** — criterios verificables («el endpoint responde 401 sin token», no «el código está bien»)
110
+ - **Qué control tiene que pasar** — el criterio de calidad
111
+ - **Quién lo hace** — se reparte automáticamente según las capacidades
112
+ - **Qué archivos puede tocar** — su territorio, para que dos personas no se pisen
113
+
114
+ Y hay un detalle importante: **el Comandante ordena las tareas por causa, no por apariencia**. Si arreglar B rompe la validación de A, B va primero. Sin eso, el trabajo da vueltas.
115
+
116
+ ### Paso 3 — Los especialistas hacen su parte
117
+
118
+ Cada tarea la toma un agente con el perfil adecuado. El sistema busca en el **catálogo real de agency-agents** (80+ agentes organizados por división) el que mejor encaja con lo que la tarea necesita. Si nadie encaja bien, **fabrica el rol** en vez de poner a alguien a hacer un trabajo para el que no sirve.
119
+
120
+ Cada agente, al terminar, deja dos cosas en disco:
121
+
122
+ - **El handoff** — qué hizo, qué archivos tocó, qué decidió, qué quedó afuera
123
+ - **La evidencia** — la salida *real* de los comandos que corrió, pegada literal
124
+
125
+ ### Paso 4 — Alguien lo revisa, y no es el mismo
126
+
127
+ El trabajo vuelve a **otro** agente, que lo revisa buscando bugs, problemas de seguridad, falta de tests, código fuera de scope. Tiene que dejar un veredicto: aprobado o rechazado, con el motivo.
128
+
129
+ El motor **impide** que alguien revise su propio trabajo. Es una regla del sistema, no una sugerencia.
130
+
131
+ ### Paso 5 — El control de calidad
132
+
133
+ Se ejecutan seis controles reales, y se lee el código de salida de cada uno:
134
+
135
+ 1. ¿Compila?
136
+ 2. ¿Los tipos están bien?
137
+ 3. ¿Pasa el linter?
138
+ 4. ¿Pasan los tests?
139
+ 5. ¿Quedó algún dato sensible en el código?
140
+ 6. ¿Se tocó algo que no se debía?
141
+
142
+ **Una fase aplicable que falla = la tarea vuelve al trabajo.** No se promedia, no se pasa, no se ignora.
143
+
144
+ ### Paso 6 — Si algo falla, el sistema reacciona
145
+
146
+ | Qué pasó | Qué hace el sistema |
147
+ |---|---|
148
+ | Primer rechazo | Vuelve al mismo agente, con el motivo exacto que hay que corregir |
149
+ | Segundo rechazo | El Comandante rehace la tarea y **cambia de agente** — si dos intentos fallaron, el problema probablemente no es el código |
150
+ | Tercer rechazo | Te lo pregunta a vos, con 2 o 3 opciones concretas y una recomendación |
151
+
152
+ Nunca te llega un «no pude, algo falló». Te llega: qué intentó, por qué no avanzó, y qué podés hacer.
153
+
154
+ ### Paso 7 — Y sigue hasta terminar
155
+
156
+ Este es el punto que resuelve tu frustration principal.
157
+
158
+ Cuando el modelo termina su turno y la sesión queda quieta, **el sistema revisa si la tarea se terminó**. Si quedó trabajo pendiente, **se retoma solo**. No te pide permiso. No te espera.
159
+
160
+ El modelo no puede decir «listo, terminé» y dar por cerrada la oficina mientras queden tareas sin terminar. **El estado lo dice, no la confianza.**
161
+
162
+ ---
163
+
164
+ ## 5. Quién decide qué
165
+
166
+ No hay un jefe único. Hay **tres coordinadores con terrenos separados**, para que uno no sea cuello de botella:
167
+
168
+ ### El Comandante — el alcance
169
+
170
+ Decide **qué está dentro de tu encargo y qué no**. Qué va primero. Qué es scope creep y qué es deuda que se acepta.
171
+
172
+ Si algo se sale de lo que pediste, lo frena y te lo dice.
173
+
174
+ ### El Arquitecto — lo técnico
175
+
176
+ Decide **qué patrón se usa** y resuelve los conflictos de diseño entre tareas. Si dos personas resolvieron el mismo problema de dos formas distintas, él decide cuál vale.
177
+
178
+ Es el único que puede decir «esto contradice lo que hizo la otra tarea».
179
+
180
+ ### El Integrador — el flujo
181
+
182
+ Decide **quién tiene cada tarea, si pasó el control de calidad, y si el presupuesto aguanta**. Detecta bloqueos, detecte que dos personas tomaron lo mismo, y detecta a los agentes que se quedaron colgados.
183
+
184
+ Es el único que puede decir «esa tarea ya la tiene otro» o «no te paso el control de calidad».
185
+
186
+ ### Y las preguntas no te interrumpen a vos
187
+
188
+ Cuando un agente tiene una duda, **no te pregunta a vos**. Le pregunta al coordinador que corresponde. Ese le contesta. Solo llega hasta vos cuando hay algo que de verdad necesita tu criterio: una decisión de producto, un conflicto que ningún coordinador puede resolver, o el presupuesto agotado.
189
+
190
+ ---
191
+
192
+ ## 6. Los agentes se hablan entre ellos
193
+
194
+ Esta es la parte que más cambia el resultado, y la que menos se ve.
195
+
196
+ Los subagentes de OpenCode son **procesos aislados**: no comparten memoria, no se ven entre sí. Por eso, en la práctica, cuando delegás, cada agente trabaja a ciegas.
197
+
198
+ AI-OFFICE les da **un canal de comunicación propio**, que es un tablón de avisos en disco:
199
+
200
+ - Un agente escribe: «necesito que alguien convierte este componente a streaming SSR, tengo el contexto del componente pero no el del servidor».
201
+ - Ese mensaje **queda disponible** para los demás.
202
+ - Los que pueden ayudar, **lo evalúan y responden**. Y acá está lo bueno: **no aceptan por cortesía**. Antes de decir que sí, se hacen seis preguntas: ¿entiendo la tarea? ¿está en mi alcance? ¿puedo hacerlo ahora sin romper lo mío? ¿tengo el contexto? ¿vale la pena? ¿tengo presupuesto?
203
+ - Si no pueden, **dicen a quién conviene preguntarle** en lugar de quedarse mudos.
204
+
205
+ Y hay dos protecciones:
206
+
207
+ - **No se enreda**: una cadena de ayuda tiene máximo dos saltos. Si se alarga, la resuelve el Integrador.
208
+ - **No se vuelven predecibles**: si dos agentes ya se ayudaron dos veces, el tercero pedido se lo derivan a otro. Se rompe la monotonía.
209
+
210
+ ### Y cuando alguien termina, va a ayudar
211
+
212
+ Cuando un agente termina su tarea, no queda esperando. Entra en un **pool de disponibles** y puede:
213
+
214
+ 1. Atender un pedido que lo apunta específicamente
215
+ 2. Atender un pedido general (el primero que puede, toma el trabajo)
216
+ 3. **Ir a buscar trabajo él mismo** si hay tareas sin dueño que le quedan bien
217
+
218
+ El punto 3 es el que cambia la naturaleza del sistema: deja de ser «N tareas corriendo en paralelo» y pasa a ser «N personas acomodándose solas según la carga».
219
+
220
+ ---
221
+
222
+ ## 7. Las cinco cosas que no puede hacer mal
223
+
224
+ Estas reglas están escritas en código, no en el prompt. El modelo no puede saltárselas.
225
+
226
+ | Regla | Qué previene |
227
+ |---|---|
228
+ | **Ninguna tarea se da por terminada sin el control de calidad en verde** | «Listo, terminado» sin que funcione |
229
+ | **Nadie revisa su propio trabajo** | Auto-aprobación |
230
+ | **Los archivos de cada agente están delimitados** | Que dos agentes se pisen el mismo archivo |
231
+ | **Máximo 3 rechazos antes de preguntarte** | Que el sistema gire en loop quemando presupuesto |
232
+ | **Hay un tope de tareas y de invocaciones** | Que la corrida se dispare sola |
233
+
234
+ Y hay una más, que es la que hace que todo lo demás sea confiable:
235
+
236
+ > **El control de calidad revisa los cambios de todos, incluido el del Director.** Si alguien toca algo fuera de su territorio, se detecta.
237
+
238
+ El sistema no confía en la disciplina: **la audita**.
239
+
240
+ ---
241
+
242
+ ## 8. Qué vas a ver en pantalla
243
+
244
+ No es un firehose de texto. Es un ritmo:
245
+
246
+ **Al arrancar** — el plan de tareas en 5-8 líneas. Ves el objetivo, cuántas tareas, qué se hace primero.
247
+
248
+ **Cada 3 tareas** — un parte:
249
+
250
+ ```
251
+ OFICINA — Agregar autenticación JWT
252
+ Progreso: 3/6 tareas
253
+
254
+ T-00 [✓] Mapear el sistema de auth actual
255
+ T-01 [✓] Diseñar el esquema de tokens
256
+ T-02 [→] Implementar el login
257
+ T-03 [ ] Tests de regresión
258
+ T-04 [ ] Verificación de seguridad
259
+ T-05 [ ] Revisión final
260
+
261
+ Agentes: 3 trabajando · 2 disponibles
262
+ Presupuesto: 3/20 tareas · 11/40 invocaciones
263
+ ```
264
+
265
+ **Cuando algo se bloquea** — no un error genérico. Una causa, tres intentos, y opciones con recomendación.
266
+
267
+ **Al terminar** — el informe de entrega: qué se hizo, qué se probó, qué archivos se tocaron, qué decisiones se tomaron, **qué NO se hizo y por qué**, qué deuda quedó, y qué harías distinto la próxima vez.
268
+
269
+ Y si querés mirar por debajo, todo está en `.oficina/`: el tablero, el historial, los mensajes entre agentes, los artefactos de cada tarea, y los logs de cada control con la salida real.
270
+
271
+ ---
272
+
273
+ ## 9. Lo que NO hace (con honestidad)
274
+
275
+ - **No adivina tu objetivo.** Si el encargo es ambiguo en un punto que cambia qué construye, te lo pregunta. En el resto, hace las inferencias razonables y las anota.
276
+ - **No es un chatbot de empresa.** No trae tus datos, no se conecta a tus APIs, no se integra con tu CRM. Es un motor de orquestación: vos lo apuntás a tu código.
277
+ - **No reemplaza la revisión humana.** Automatiza la parte mecánica de la verificación (compila, pasa los tests, filtra secretos, revisa el diff). La decisión de si el producto está bien sigue siendo tuya.
278
+ - **No es gratis.** Corre agentes de verdad, consume tokens. El presupuesto por defecto es 20 tareas y 40 invocaciones por corrida, y te avisa antes de agotarse.
279
+ - **Necesita que configures una cosa**: `subagent_depth: 3` en la config de OpenCode. Sin eso, un subagente no puede delegar y la malla no arranca.
280
+ - **El bus vive en tu disco.** Es una decisión de diseño (auditabilidad, portabilidad, cero dependencias), pero implica que el estado de la corrida es visible para cualquier proceso con acceso a esa carpeta.
281
+
282
+ ---
283
+
284
+ ## 10. Cómo probarlo
285
+
286
+ ### La prueba rápida (5 minutos)
287
+
288
+ ```bash
289
+ npm install -g oficina-opencode
290
+ oficina install --target ~/.config/opencode
291
+ ```
292
+
293
+ Y en `~/.config/opencode/opencode.json`:
294
+
295
+ ```json
296
+ { "experimental": { "subagent_depth": 3 } }
297
+ ```
298
+
299
+ Después, en un proyecto tuyo:
300
+
301
+ ```text
302
+ /oficina Agregar un endpoint de health check que devuelva el estado de la DB
303
+ ```
304
+
305
+ Mirá cómo el plan aparece, cómo se reparten las tareas, cómo alguien pide ayuda, y cómo el control de calidad frena lo que no está listo.
306
+
307
+ ### La prueba honesta
308
+
309
+ Elegí un encargo real pero **acotado** (un bug, una función, un endpoint). Y prestá atención a tres cosas:
310
+
311
+ 1. ¿Se repartió solo, o tuviste que pedir que delegue?
312
+ 2. ¿Los controles de calidad encontraron algo que vos no habías visto?
313
+ 3. ¿Terminó sin que tuvieras que recordarle lo que ya sabía?
314
+
315
+ Si las tres respuestas son buenas, la oficina funciona.
316
+
317
+ ---
318
+
319
+ ## 11. En resumen
320
+
321
+ **AI-OFFICE es un equipo de agentes de IA con la disciplina de una oficina real.**
322
+
323
+ - Vos das **un objetivo**, no una lista de instrucciones.
324
+ - El sistema **descompone, reparte, coordina y verifica** solo.
325
+ - Los agentes **se hablan entre sí** y se piden ayuda.
326
+ - El trabajo **se revisa entre pares**, nunca se auto-aprueba.
327
+ - **Pasa controles de calidad reales** antes de darse por terminado.
328
+ - **No para hasta terminar**, y si no puede, te lo pregunta con opciones.
329
+ - **Todo queda registrado** en disco, auditable y portable.
330
+
331
+ Es la diferencia entre un asistente que responde y una oficina que entrega.
332
+
333
+ ---
334
+
335
+ **¿Querés ver los detalles técnicos?** → [`docs/ARCHITECTURE.md`](ARCHITECTURE.md)
336
+ **¿Querés ver cómo se usa?** → [`README.md`](../README.md)
337
+ **¿Querés ver el protocolo completo?** → [`skills/oficina/`](../skills/oficina/)