oh-my-muse 0.2.0 → 0.2.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.
package/bin/lib.mjs CHANGED
@@ -258,7 +258,7 @@ export const NOTIFY_SETUP_OPTIONS = [
258
258
  name: "message",
259
259
  aliases: ["text"],
260
260
  value: "<text>",
261
- desc: "Default message template (supports {{projectName}} {{event}} {{date}} and $ENV).",
261
+ desc: "Default message template (supports {{projectName}} {{event}} {{date}} and $ENV; $ENV expands only from the CLI, never from the hook — Muse filters hook env).",
262
262
  channels: ["telegram", "discord", "slack", "file"],
263
263
  required: false,
264
264
  secret: false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oh-my-muse",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Native Muse Code plugin: specialist skills, orchestrator commands, and turn-end notifications",
5
5
  "keywords": [
6
6
  "muse",
@@ -34,6 +34,6 @@
34
34
  "node": ">=20"
35
35
  },
36
36
  "scripts": {
37
- "test": "node --test test/cli.test.mjs test/e2e.test.mjs test/validators.test.mjs test/tarball.test.mjs test/notify-config.test.mjs"
37
+ "test": "node --test test/cli.test.mjs test/e2e.test.mjs test/validators.test.mjs test/tarball.test.mjs test/notify-config.test.mjs test/orchestration.test.mjs test/hygiene.test.mjs"
38
38
  }
39
39
  }
@@ -2,7 +2,7 @@
2
2
  "schemaVersion": 1,
3
3
  "name": "oh-my-muse",
4
4
  "displayName": "Oh My Muse",
5
- "version": "0.2.0",
5
+ "version": "0.2.1",
6
6
  "description": "Specialist skills and orchestrator commands for Muse Code, with turn-end notifications.",
7
7
  "compat": {
8
8
  "source": "native",
@@ -5,28 +5,82 @@ argument-hint: <question>
5
5
 
6
6
  # OMM Advisor
7
7
 
8
- Answer the requested question with three independent advisors reconciled
9
- into one decision: $ARGUMENTS
8
+ Responde la pregunta con tres asesores independientes reconciliados en
9
+ una decisión: $ARGUMENTS
10
+
11
+ ## Reglas de orquestación (obligatorias)
12
+
13
+ 1. DEBES empezar llamando a `read_skill bundled:workflow-authoring` y
14
+ seguir su perfil Workflow API V1 con el esquema
15
+ `complete/evidence/unresolved`. Sin esta lectura no hay oleadas.
16
+ Tras esa lectura, OBLIGATORIO: `read_skill
17
+ plugin:oh-my-muse:omm-narration` y obedecer sus cuatro plantillas
18
+ (arranque, cabecera de oleada, tarjeta de oleada, cierre) en el
19
+ idioma del usuario.
20
+ 2. DEBES orquestar con la herramienta Workflow. PROHIBIDO implementar,
21
+ investigar o editar en el hilo principal: el hilo principal solo
22
+ anuncia el plan, lanza Workflows, narra entre oleadas e integra el
23
+ resultado al final.
24
+ 3. Si la herramienta Workflow no está disponible en tu sesión, DEBES
25
+ decirlo explícitamente ("Workflow no disponible: paro sin ejecutar")
26
+ y parar. PROHIBIDO seguir en silencio en el hilo principal.
27
+ 4. Un Workflow por oleada: DEBES lanzar una llamada a la herramienta
28
+ Workflow POR CADA oleada del plan (nunca un único Workflow para
29
+ todo). Un Workflow solo devuelve su resultado al terminar y el padre
30
+ no puede narrar mientras se ejecuta; entre oleadas, narra el
31
+ progreso.
32
+ 5. PROHIBIDO encadenar dos llamadas a Workflow sin haber escrito antes
33
+ la tarjeta de fin de oleada (`✔`/`⚠`/`✖` + `**Gate:**` +
34
+ `**Siguiente:**`) y la cabecera `▶` de la siguiente oleada. La
35
+ narración va en el hilo principal: el resultado del Workflow es
36
+ para el padre, el usuario ve la tarjeta.
37
+
38
+ ## Contrato de progreso (visible para el usuario)
39
+
40
+ - Antes de lanzar: publica el plan con las oleadas, los roles de cada
41
+ oleada y el gate de cada una.
42
+ - Tras cada oleada: por cada hijo informa rol + hallazgos clave (2-3
43
+ líneas) + archivos tocados + `unresolved`. Después anuncia la
44
+ decisión del gate (avanza / reintenta / para).
45
+ - Al final: informe con qué se hizo, verificación (gates del repo) y
46
+ pendientes (`unresolved` restantes).
47
+
48
+ ## Forma de cada `input` (obligatoria)
49
+
50
+ - El `input` de cada hijo DEBE empezar con "Primero llama a read_skill plugin:oh-my-muse:<rol>." (sustituye `<rol>` por el rol de ese hijo:
51
+ `architect`, `critic`, `security-reviewer` asesores, `planner`
52
+ reconciliador) y pedir el esquema
53
+ `complete/evidence/unresolved/summary/files/decisions`
54
+ (`complete:boolean`, `evidence:string[]`, `unresolved:string[]`,
55
+ `summary:string` — máx. 2 líneas, `files:string[]`,
56
+ `decisions:string[]`).
57
+ - Cada `input` completo DEBE respetar el límite de 4096 bytes UTF-8
58
+ (texto + refs + contexto compacto + `summary`/`files`/`decisions`
59
+ juntos).
60
+ - Cada llamada de hijo lleva `label: "w<N>-<rol>"` (p. ej.
61
+ `w2-implementer`).
10
62
 
11
63
  ## Setup
12
64
 
13
- 1. Load the `workflow-authoring` skill and follow its Workflow API V1 profile.
14
- Subagents exist only inside the Workflow you author here.
15
- 2. Load the `harness` and `verify` skills and obey them for the whole run.
16
- 3. Use only these specialists: `architect`, `critic`, `security-reviewer`
17
- (advisors), `planner` (reconciler). There are no tiers and no per-agent
18
- models; the session model does all the work.
65
+ Usa solo estos especialistas: `architect`, `critic`,
66
+ `security-reviewer` (asesores), `planner` (reconciliador). No hay
67
+ niveles ni modelos por agente; el modelo de la sesión hace todo el
68
+ trabajo. Carga además las skills `harness` y `verify` y obedécelas
69
+ durante toda la ejecución.
70
+
71
+ ## Oleadas
19
72
 
20
- ## Wave plan
73
+ Una llamada a Workflow por oleada:
21
74
 
22
- 1. **Independent advisors**: consult exactly three advisors independently
23
- (`architect`, `critic`, `security-reviewer`). Advisors must not see each
24
- other's output before writing their own.
25
- 2. **Reconcile**: `planner` merges the three outputs afterwards — keep what
26
- they agree on, resolve disagreements with evidence from the repository,
27
- and record any remaining dissent explicitly.
75
+ 1. **Asesores independientes**: consulta exactamente a tres asesores
76
+ (`architect`, `critic`, `security-reviewer`) en un Workflow. Los
77
+ asesores no deben ver la salida de los otros antes de escribir la
78
+ suya.
79
+ 2. **Reconciliación**: `planner` fusiona las tres salidas en un
80
+ segundo Workflow — conserva lo acordado, resuelve desacuerdos con
81
+ evidencia del repo y registra el disenso restante explícitamente.
28
82
 
29
83
  ## Gate
30
84
 
31
- The reconciled decision must cite each advisor and resolve every
32
- disagreement. Never present a single advisor's view as the consensus.
85
+ La decisión reconciliada debe citar a cada asesor y resolver cada
86
+ desacuerdo. Nunca presentes la visión de un solo asesor como consenso.
@@ -5,27 +5,85 @@ argument-hint: <change>
5
5
 
6
6
  # OMM Autopilot
7
7
 
8
- Run the requested change with a single driver owning it end to end: $ARGUMENTS
8
+ Ejecuta el cambio con un único conductor responsable de principio a
9
+ fin: $ARGUMENTS
10
+
11
+ ## Reglas de orquestación (obligatorias)
12
+
13
+ 1. DEBES empezar llamando a `read_skill bundled:workflow-authoring` y
14
+ seguir su perfil Workflow API V1 con el esquema
15
+ `complete/evidence/unresolved`. Sin esta lectura no hay oleadas.
16
+ Tras esa lectura, OBLIGATORIO: `read_skill
17
+ plugin:oh-my-muse:omm-narration` y obedecer sus cuatro plantillas
18
+ (arranque, cabecera de oleada, tarjeta de oleada, cierre) en el
19
+ idioma del usuario.
20
+ 2. DEBES orquestar con la herramienta Workflow. PROHIBIDO implementar,
21
+ investigar o editar en el hilo principal: el hilo principal solo
22
+ anuncia el plan, lanza Workflows, narra entre oleadas e integra el
23
+ resultado al final.
24
+ 3. Si la herramienta Workflow no está disponible en tu sesión, DEBES
25
+ decirlo explícitamente ("Workflow no disponible: paro sin ejecutar")
26
+ y parar. PROHIBIDO seguir en silencio en el hilo principal.
27
+ 4. Un Workflow por oleada: DEBES lanzar una llamada a la herramienta
28
+ Workflow POR CADA oleada del plan (nunca un único Workflow para
29
+ todo). Un Workflow solo devuelve su resultado al terminar y el padre
30
+ no puede narrar mientras se ejecuta; entre oleadas, narra el
31
+ progreso.
32
+ 5. PROHIBIDO encadenar dos llamadas a Workflow sin haber escrito antes
33
+ la tarjeta de fin de oleada (`✔`/`⚠`/`✖` + `**Gate:**` +
34
+ `**Siguiente:**`) y la cabecera `▶` de la siguiente oleada. La
35
+ narración va en el hilo principal: el resultado del Workflow es
36
+ para el padre, el usuario ve la tarjeta.
37
+
38
+ ## Contrato de progreso (visible para el usuario)
39
+
40
+ - Antes de lanzar: publica el plan con las oleadas, los roles de cada
41
+ oleada y el gate de cada una.
42
+ - Tras cada oleada: por cada hijo informa rol + hallazgos clave (2-3
43
+ líneas) + archivos tocados + `unresolved`. Después anuncia la
44
+ decisión del gate (avanza / reintenta / para).
45
+ - Al final: informe con qué se hizo, verificación (gates del repo) y
46
+ pendientes (`unresolved` restantes).
47
+
48
+ ## Forma de cada `input` (obligatoria)
49
+
50
+ - El `input` de cada hijo DEBE empezar con "Primero llama a read_skill plugin:oh-my-muse:<rol>." (sustituye `<rol>` por el rol de ese hijo:
51
+ `implementer` conductor, `researcher`, `tester`, `debugger`,
52
+ `docs-writer` ayudantes) y pedir el esquema
53
+ `complete/evidence/unresolved/summary/files/decisions`
54
+ (`complete:boolean`, `evidence:string[]`, `unresolved:string[]`,
55
+ `summary:string` — máx. 2 líneas, `files:string[]`,
56
+ `decisions:string[]`).
57
+ - Cada `input` completo DEBE respetar el límite de 4096 bytes UTF-8
58
+ (texto + refs + contexto compacto + `summary`/`files`/`decisions`
59
+ juntos).
60
+ - Cada llamada de hijo lleva `label: "w<N>-<rol>"` (p. ej.
61
+ `w2-implementer`).
9
62
 
10
63
  ## Setup
11
64
 
12
- 1. Load the `workflow-authoring` skill and follow its Workflow API V1 profile.
13
- Subagents exist only inside the Workflow you author here.
14
- 2. Load the `harness` and `verify` skills and obey them for the whole run.
15
- 3. Use only these specialists: `implementer` (driver), `researcher`,
16
- `tester`, `debugger`, `docs-writer` (helpers). There are no tiers and no
17
- per-agent models; the session model does all the work.
65
+ Usa solo estos especialistas: `implementer` (conductor), `researcher`,
66
+ `tester`, `debugger`, `docs-writer` (ayudantes). No hay niveles ni
67
+ modelos por agente; el modelo de la sesión hace todo el trabajo. Carga
68
+ además las skills `harness` y `verify` y obedécelas durante toda la
69
+ ejecución.
70
+
71
+ ## Oleadas
18
72
 
19
- ## Wave plan
73
+ Un único conductor (`implementer`) es dueño del cambio de principio a
74
+ fin. Ejecuta estas oleadas, una llamada a Workflow por oleada:
20
75
 
21
- 1. **Driver step**: exactly one driver (`implementer`) owns the change end
22
- to end and drives it to completion.
23
- 2. **Helper wave**: helpers (`researcher`, `tester`, `debugger`,
24
- `docs-writer`) support the driver in parallel and never take over the diff.
76
+ 1. **Ayudantes investigan**: `researcher` (y `debugger` si hay un fallo
77
+ que reproducir) trabajan en paralelo en un Workflow y devuelven
78
+ evidencia al conductor. No tocan el diff.
79
+ 2. **El conductor implementa**: un Workflow con el `implementer` que
80
+ aplica el cambio de principio a fin.
81
+ 3. **Ayudantes verifican**: `tester`, `debugger` y `docs-writer` en
82
+ paralelo en un Workflow; el conductor integra sus salidas en el
83
+ diff final, verifica con los gates propios del repo e informa.
25
84
 
26
85
  ## Gate
27
86
 
28
- The driver owns the final diff; helpers never commit over the driver. If
29
- helpers disagree, the driver decides and records why. The driver integrates
30
- helper outputs, verifies the result with the repository's own gates, and
31
- reports done.
87
+ El conductor es dueño del diff final; los ayudantes nunca escriben
88
+ sobre él. Si los ayudantes discrepan, el conductor decide y registra
89
+ por qué.
@@ -5,24 +5,75 @@ argument-hint: <work>
5
5
 
6
6
  # OMM Pipeline
7
7
 
8
- Run the requested work as a strict sequence, one step at a time: $ARGUMENTS
8
+ Ejecuta el trabajo en secuencia estricta, un paso cada vez: $ARGUMENTS
9
+
10
+ ## Reglas de orquestación (obligatorias)
11
+
12
+ 1. DEBES empezar llamando a `read_skill bundled:workflow-authoring` y
13
+ seguir su perfil Workflow API V1 con el esquema
14
+ `complete/evidence/unresolved`. Sin esta lectura no hay oleadas.
15
+ Tras esa lectura, OBLIGATORIO: `read_skill
16
+ plugin:oh-my-muse:omm-narration` y obedecer sus cuatro plantillas
17
+ (arranque, cabecera de oleada, tarjeta de oleada, cierre) en el
18
+ idioma del usuario.
19
+ 2. DEBES orquestar con la herramienta Workflow. PROHIBIDO implementar,
20
+ investigar o editar en el hilo principal: el hilo principal solo
21
+ anuncia el plan, lanza Workflows, narra entre oleadas e integra el
22
+ resultado al final.
23
+ 3. Si la herramienta Workflow no está disponible en tu sesión, DEBES
24
+ decirlo explícitamente ("Workflow no disponible: paro sin ejecutar")
25
+ y parar. PROHIBIDO seguir en silencio en el hilo principal.
26
+ 4. Un Workflow por oleada: DEBES lanzar una llamada a la herramienta
27
+ Workflow POR CADA oleada del plan (nunca un único Workflow para
28
+ todo). Un Workflow solo devuelve su resultado al terminar y el padre
29
+ no puede narrar mientras se ejecuta; entre oleadas, narra el
30
+ progreso.
31
+ 5. PROHIBIDO encadenar dos llamadas a Workflow sin haber escrito antes
32
+ la tarjeta de fin de oleada (`✔`/`⚠`/`✖` + `**Gate:**` +
33
+ `**Siguiente:**`) y la cabecera `▶` de la siguiente oleada. La
34
+ narración va en el hilo principal: el resultado del Workflow es
35
+ para el padre, el usuario ve la tarjeta.
36
+
37
+ ## Contrato de progreso (visible para el usuario)
38
+
39
+ - Antes de lanzar: publica el plan con las oleadas, los roles de cada
40
+ oleada y el gate de cada una.
41
+ - Tras cada oleada: por cada hijo informa rol + hallazgos clave (2-3
42
+ líneas) + archivos tocados + `unresolved`. Después anuncia la
43
+ decisión del gate (avanza / reintenta / para).
44
+ - Al final: informe con qué se hizo, verificación (gates del repo) y
45
+ pendientes (`unresolved` restantes).
46
+
47
+ ## Forma de cada `input` (obligatoria)
48
+
49
+ - El `input` de cada hijo DEBE empezar con "Primero llama a read_skill plugin:oh-my-muse:<rol>." (sustituye `<rol>` por el rol de ese hijo:
50
+ `planner`, `implementer`, `tester`, `reviewer`) y pedir el esquema
51
+ `complete/evidence/unresolved/summary/files/decisions`
52
+ (`complete:boolean`, `evidence:string[]`, `unresolved:string[]`,
53
+ `summary:string` — máx. 2 líneas, `files:string[]`,
54
+ `decisions:string[]`).
55
+ - Cada `input` completo DEBE respetar el límite de 4096 bytes UTF-8
56
+ (texto + refs + contexto compacto + `summary`/`files`/`decisions`
57
+ juntos).
58
+ - Cada llamada de hijo lleva `label: "w<N>-<rol>"` (p. ej.
59
+ `w2-implementer`).
9
60
 
10
61
  ## Setup
11
62
 
12
- 1. Load the `workflow-authoring` skill and follow its Workflow API V1 profile.
13
- Subagents exist only inside the Workflow you author here.
14
- 2. Load the `harness` and `verify` skills and obey them for the whole run.
15
- 3. Use only these specialists: `planner`, `implementer`, `tester`,
16
- `reviewer`. There are no tiers and no per-agent models; the session model
17
- does all the work.
63
+ Usa solo estos especialistas: `planner`, `implementer`, `tester`,
64
+ `reviewer`. No hay niveles ni modelos por agente; el modelo de la
65
+ sesión hace todo el trabajo. Carga además las skills `harness` y
66
+ `verify` y obedécelas durante toda la ejecución.
18
67
 
19
- ## Wave plan
68
+ ## Oleadas
20
69
 
21
- Run steps in the given order, exactly one at a time. After every step, run
22
- its `verifyCommand` (default: `npm test`) and require exit code 0 before
23
- advancing. Never skip, reorder, or parallelize steps.
70
+ Cada paso es una oleada: un Workflow por paso, en el orden dado, de
71
+ uno en uno. Nunca saltes, reordenes ni paralelices pasos. Tras cada
72
+ oleada ejecuta su `verifyCommand` (por defecto `npm test`) y exige
73
+ código de salida 0 antes de avanzar. Narra el progreso entre oleadas.
24
74
 
25
75
  ## Gate
26
76
 
27
- Each step must end with `verifyCommand` exit 0; any nonzero exit blocks the
28
- pipeline. Fix the step and re-verify before advancing.
77
+ Cada paso debe terminar con `verifyCommand` en 0; cualquier salida no
78
+ cero bloquea el pipeline. Corrige el paso y re-verifica antes de
79
+ avanzar.
@@ -5,25 +5,78 @@ argument-hint: <work>
5
5
 
6
6
  # OMM Ralph
7
7
 
8
- Advance the requested work in a single-check loop: $ARGUMENTS
8
+ Avanza el trabajo en un bucle de un solo chequeo: $ARGUMENTS
9
+
10
+ ## Reglas de orquestación (obligatorias)
11
+
12
+ 1. DEBES empezar llamando a `read_skill bundled:workflow-authoring` y
13
+ seguir su perfil Workflow API V1 con el esquema
14
+ `complete/evidence/unresolved`. Sin esta lectura no hay oleadas.
15
+ Tras esa lectura, OBLIGATORIO: `read_skill
16
+ plugin:oh-my-muse:omm-narration` y obedecer sus cuatro plantillas
17
+ (arranque, cabecera de oleada, tarjeta de oleada, cierre) en el
18
+ idioma del usuario.
19
+ 2. DEBES orquestar con la herramienta Workflow. PROHIBIDO implementar,
20
+ investigar o editar en el hilo principal: el hilo principal solo
21
+ anuncia el plan, lanza Workflows, narra entre oleadas e integra el
22
+ resultado al final.
23
+ 3. Si la herramienta Workflow no está disponible en tu sesión, DEBES
24
+ decirlo explícitamente ("Workflow no disponible: paro sin ejecutar")
25
+ y parar. PROHIBIDO seguir en silencio en el hilo principal.
26
+ 4. Un Workflow por oleada: DEBES lanzar una llamada a la herramienta
27
+ Workflow POR CADA oleada del plan (nunca un único Workflow para
28
+ todo). Un Workflow solo devuelve su resultado al terminar y el padre
29
+ no puede narrar mientras se ejecuta; entre oleadas, narra el
30
+ progreso.
31
+ 5. PROHIBIDO encadenar dos llamadas a Workflow sin haber escrito antes
32
+ la tarjeta de fin de oleada (`✔`/`⚠`/`✖` + `**Gate:**` +
33
+ `**Siguiente:**`) y la cabecera `▶` de la siguiente oleada. La
34
+ narración va en el hilo principal: el resultado del Workflow es
35
+ para el padre, el usuario ve la tarjeta.
36
+
37
+ ## Contrato de progreso (visible para el usuario)
38
+
39
+ - Antes de lanzar: publica el plan con las oleadas, los roles de cada
40
+ oleada y el gate de cada una.
41
+ - Tras cada oleada: por cada hijo informa rol + hallazgos clave (2-3
42
+ líneas) + archivos tocados + `unresolved`. Después anuncia la
43
+ decisión del gate (avanza / reintenta / para).
44
+ - Al final: informe con qué se hizo, verificación (gates del repo) y
45
+ pendientes (`unresolved` restantes).
46
+
47
+ ## Forma de cada `input` (obligatoria)
48
+
49
+ - El `input` de cada hijo DEBE empezar con "Primero llama a read_skill plugin:oh-my-muse:<rol>." (sustituye `<rol>` por el rol de ese hijo:
50
+ `planner`, `implementer`, `tester`, `reviewer`, `debugger`) y pedir
51
+ el esquema
52
+ `complete/evidence/unresolved/summary/files/decisions`
53
+ (`complete:boolean`, `evidence:string[]`, `unresolved:string[]`,
54
+ `summary:string` — máx. 2 líneas, `files:string[]`,
55
+ `decisions:string[]`).
56
+ - Cada `input` completo DEBE respetar el límite de 4096 bytes UTF-8
57
+ (texto + refs + contexto compacto + `summary`/`files`/`decisions`
58
+ juntos).
59
+ - Cada llamada de hijo lleva `label: "w<N>-<rol>"` (p. ej.
60
+ `w2-implementer`).
9
61
 
10
62
  ## Setup
11
63
 
12
- 1. Load the `workflow-authoring` skill and follow its Workflow API V1 profile.
13
- Subagents exist only inside the Workflow you author here.
14
- 2. Load the `harness` and `verify` skills and obey them for the whole run.
15
- 3. Use only these specialists: `planner`, `implementer`, `tester`,
16
- `reviewer`, `debugger`. There are no tiers and no per-agent models; the
17
- session model does all the work.
64
+ Usa solo estos especialistas: `planner`, `implementer`, `tester`,
65
+ `reviewer`, `debugger`. No hay niveles ni modelos por agente; el
66
+ modelo de la sesión hace todo el trabajo. Carga además las skills
67
+ `harness` y `verify` y obedécelas durante toda la ejecución.
18
68
 
19
- ## Wave plan
69
+ ## Oleadas
20
70
 
21
- Pick the next unfinished step and run only that step. End the iteration with
22
- one check: pass (advance) or fail (retry with a fix). Keep each iteration
23
- small and self-contained; never batch multiple steps. Loop until every step
24
- passes its check.
71
+ Cada iteración del bucle es una oleada: un Workflow por iteración.
72
+ Elige el siguiente paso sin terminar y ejecuta solo ese paso. Termina
73
+ la iteración con un único chequeo: pasa (avanza) o falla (reintenta
74
+ con una corrección). Mantén cada iteración pequeña y autocontenida;
75
+ nunca agrupes varios pasos. Repite hasta que todos los pasos pasen su
76
+ chequeo, narrando el progreso entre iteraciones.
25
77
 
26
78
  ## Gate
27
79
 
28
- One step per loop iteration; each iteration ends with a single pass/fail
29
- check. The run is done only when every step has passed.
80
+ Un paso por iteración; cada iteración termina con un único chequeo
81
+ pasa/falla. La ejecución termina solo cuando todos los pasos han
82
+ pasado.
@@ -5,33 +5,86 @@ argument-hint: <goal>
5
5
 
6
6
  # OMM Team
7
7
 
8
- Run the requested goal as an orchestrated team effort: $ARGUMENTS
8
+ Ejecuta el objetivo como un equipo orquestado: $ARGUMENTS
9
+
10
+ ## Reglas de orquestación (obligatorias)
11
+
12
+ 1. DEBES empezar llamando a `read_skill bundled:workflow-authoring` y
13
+ seguir su perfil Workflow API V1 con el esquema
14
+ `complete/evidence/unresolved`. Sin esta lectura no hay oleadas.
15
+ Tras esa lectura, OBLIGATORIO: `read_skill
16
+ plugin:oh-my-muse:omm-narration` y obedecer sus cuatro plantillas
17
+ (arranque, cabecera de oleada, tarjeta de oleada, cierre) en el
18
+ idioma del usuario.
19
+ 2. DEBES orquestar con la herramienta Workflow. PROHIBIDO implementar,
20
+ investigar o editar en el hilo principal: el hilo principal solo
21
+ anuncia el plan, lanza Workflows, narra entre oleadas e integra el
22
+ resultado al final.
23
+ 3. Si la herramienta Workflow no está disponible en tu sesión, DEBES
24
+ decirlo explícitamente ("Workflow no disponible: paro sin ejecutar")
25
+ y parar. PROHIBIDO seguir en silencio en el hilo principal.
26
+ 4. Un Workflow por oleada: DEBES lanzar una llamada a la herramienta
27
+ Workflow POR CADA oleada del plan (nunca un único Workflow para
28
+ todo). Un Workflow solo devuelve su resultado al terminar y el padre
29
+ no puede narrar mientras se ejecuta; entre oleadas, narra el
30
+ progreso.
31
+ 5. PROHIBIDO encadenar dos llamadas a Workflow sin haber escrito antes
32
+ la tarjeta de fin de oleada (`✔`/`⚠`/`✖` + `**Gate:**` +
33
+ `**Siguiente:**`) y la cabecera `▶` de la siguiente oleada. La
34
+ narración va en el hilo principal: el resultado del Workflow es
35
+ para el padre, el usuario ve la tarjeta.
36
+
37
+ ## Contrato de progreso (visible para el usuario)
38
+
39
+ - Antes de lanzar: publica el plan con las oleadas, los roles de cada
40
+ oleada y el gate de cada una.
41
+ - Tras cada oleada: por cada hijo informa rol + hallazgos clave (2-3
42
+ líneas) + archivos tocados + `unresolved`. Después anuncia la
43
+ decisión del gate (avanza / reintenta / para).
44
+ - Al final: informe con qué se hizo, verificación (gates del repo) y
45
+ pendientes (`unresolved` restantes).
46
+
47
+ ## Forma de cada `input` (obligatoria)
48
+
49
+ - El `input` de cada hijo DEBE empezar con "Primero llama a read_skill plugin:oh-my-muse:<rol>." (sustituye `<rol>` por el rol de ese hijo:
50
+ `researcher`, `planner`, `implementer`, `tester`, `reviewer`,
51
+ `critic`) y pedir el esquema
52
+ `complete/evidence/unresolved/summary/files/decisions`
53
+ (`complete:boolean`, `evidence:string[]`, `unresolved:string[]`,
54
+ `summary:string` — máx. 2 líneas, `files:string[]`,
55
+ `decisions:string[]`).
56
+ - Cada `input` completo DEBE respetar el límite de 4096 bytes UTF-8
57
+ (texto + refs + contexto compacto + `summary`/`files`/`decisions`
58
+ juntos).
59
+ - Cada llamada de hijo lleva `label: "w<N>-<rol>"` (p. ej.
60
+ `w2-implementer`).
9
61
 
10
62
  ## Setup
11
63
 
12
- 1. Load the `workflow-authoring` skill and follow its Workflow API V1 profile.
13
- Subagents exist only inside the Workflow you author here.
14
- 2. Load the `harness` and `verify` skills and obey them for the whole run.
15
- 3. Use only these specialists: `researcher`, `planner`, `implementer`,
16
- `tester`, `reviewer`, `critic`. There are no tiers and no per-agent models;
17
- the session model does all the work.
64
+ Usa solo estos especialistas: `researcher`, `planner`, `implementer`,
65
+ `tester`, `reviewer`, `critic`. No hay niveles ni modelos por agente;
66
+ el modelo de la sesión hace todo el trabajo. Carga además las skills
67
+ `harness` y `verify` y obedécelas durante toda la ejecución.
18
68
 
19
- ## Wave plan
69
+ ## Oleadas
20
70
 
21
- Represent the goal as typed steps (id, title, agent, files, verifyCommand),
22
- then run them in these waves:
71
+ Representa el objetivo como pasos tipados (id, título, agente,
72
+ archivos, verifyCommand) y ejecútalos en estas oleadas, una llamada a
73
+ Workflow por oleada:
23
74
 
24
- 1. **Parallel research**: all read-only steps (`researcher`, or steps with no
25
- agent assigned) run together.
26
- 2. **Serialized same-file edits**: steps touching the same files run in order,
27
- one group per distinct file set, never in parallel.
28
- 3. **File-independent writes**: steps with no files, or disjoint file sets,
29
- run in parallel.
30
- 4. **Reviewer loop**: send the resulting diff to `reviewer` and fix blocking
31
- findings until the verdict is `approve`.
75
+ 1. **Investigación paralela**: todos los pasos de solo lectura
76
+ (`researcher`, o pasos sin agente asignado) juntos en un Workflow.
77
+ 2. **Ediciones del mismo archivo, en serie**: los pasos que tocan los
78
+ mismos archivos van en orden, un Workflow por grupo de archivos.
79
+ Nunca en paralelo.
80
+ 3. **Escrituras independientes**: pasos sin archivos o con archivos
81
+ disjuntos, en paralelo en un Workflow.
82
+ 4. **Bucle de revisión**: un Workflow por iteración que envía el diff
83
+ a `reviewer`; corrige los hallazgos bloqueantes hasta que el
84
+ veredicto sea `approve`.
32
85
 
33
86
  ## Gate
34
87
 
35
- `reviewer` must approve, and same-file edits must never run in parallel.
36
- Never report done while reviewer findings are open. Prove every wave with
37
- the repository's own gates before finishing.
88
+ `reviewer` debe aprobar, y las ediciones del mismo archivo nunca van en
89
+ paralelo. Nunca informes "hecho" con hallazgos abiertos. Demuestra cada
90
+ oleada con los gates propios del repo antes de terminar.
@@ -5,27 +5,83 @@ argument-hint: <change>
5
5
 
6
6
  # OMM UltraQA
7
7
 
8
- Quality-gate the requested change with zero failures allowed: $ARGUMENTS
8
+ Pasa el cambio por la puerta de calidad: cero fallos permitidos:
9
+ $ARGUMENTS
10
+
11
+ ## Reglas de orquestación (obligatorias)
12
+
13
+ 1. DEBES empezar llamando a `read_skill bundled:workflow-authoring` y
14
+ seguir su perfil Workflow API V1 con el esquema
15
+ `complete/evidence/unresolved`. Sin esta lectura no hay oleadas.
16
+ Tras esa lectura, OBLIGATORIO: `read_skill
17
+ plugin:oh-my-muse:omm-narration` y obedecer sus cuatro plantillas
18
+ (arranque, cabecera de oleada, tarjeta de oleada, cierre) en el
19
+ idioma del usuario.
20
+ 2. DEBES orquestar con la herramienta Workflow. PROHIBIDO implementar,
21
+ investigar o editar en el hilo principal: el hilo principal solo
22
+ anuncia el plan, lanza Workflows, narra entre oleadas e integra el
23
+ resultado al final.
24
+ 3. Si la herramienta Workflow no está disponible en tu sesión, DEBES
25
+ decirlo explícitamente ("Workflow no disponible: paro sin ejecutar")
26
+ y parar. PROHIBIDO seguir en silencio en el hilo principal.
27
+ 4. Un Workflow por oleada: DEBES lanzar una llamada a la herramienta
28
+ Workflow POR CADA oleada del plan (nunca un único Workflow para
29
+ todo). Un Workflow solo devuelve su resultado al terminar y el padre
30
+ no puede narrar mientras se ejecuta; entre oleadas, narra el
31
+ progreso.
32
+ 5. PROHIBIDO encadenar dos llamadas a Workflow sin haber escrito antes
33
+ la tarjeta de fin de oleada (`✔`/`⚠`/`✖` + `**Gate:**` +
34
+ `**Siguiente:**`) y la cabecera `▶` de la siguiente oleada. La
35
+ narración va en el hilo principal: el resultado del Workflow es
36
+ para el padre, el usuario ve la tarjeta.
37
+
38
+ ## Contrato de progreso (visible para el usuario)
39
+
40
+ - Antes de lanzar: publica el plan con las oleadas, los roles de cada
41
+ oleada y el gate de cada una.
42
+ - Tras cada oleada: por cada hijo informa rol + hallazgos clave (2-3
43
+ líneas) + archivos tocados + `unresolved`. Después anuncia la
44
+ decisión del gate (avanza / reintenta / para).
45
+ - Al final: informe con qué se hizo, verificación (gates del repo) y
46
+ pendientes (`unresolved` restantes).
47
+
48
+ ## Forma de cada `input` (obligatoria)
49
+
50
+ - El `input` de cada hijo DEBE empezar con "Primero llama a read_skill plugin:oh-my-muse:<rol>." (sustituye `<rol>` por el rol de ese hijo:
51
+ `tester`, `reviewer`, `security-reviewer`, `critic`) y pedir el
52
+ esquema
53
+ `complete/evidence/unresolved/summary/files/decisions`
54
+ (`complete:boolean`, `evidence:string[]`, `unresolved:string[]`,
55
+ `summary:string` — máx. 2 líneas, `files:string[]`,
56
+ `decisions:string[]`).
57
+ - Cada `input` completo DEBE respetar el límite de 4096 bytes UTF-8
58
+ (texto + refs + contexto compacto + `summary`/`files`/`decisions`
59
+ juntos).
60
+ - Cada llamada de hijo lleva `label: "w<N>-<rol>"` (p. ej.
61
+ `w2-implementer`).
9
62
 
10
63
  ## Setup
11
64
 
12
- 1. Load the `workflow-authoring` skill and follow its Workflow API V1 profile.
13
- Subagents exist only inside the Workflow you author here.
14
- 2. Load the `harness` and `verify` skills and obey them for the whole run.
15
- 3. Use only these specialists: `tester`, `reviewer`, `security-reviewer`,
16
- `critic`. There are no tiers and no per-agent models; the session model
17
- does all the work.
65
+ Usa solo estos especialistas: `tester`, `reviewer`,
66
+ `security-reviewer`, `critic`. No hay niveles ni modelos por agente;
67
+ el modelo de la sesión hace todo el trabajo. Carga además las skills
68
+ `harness` y `verify` y obedécelas durante toda la ejecución.
69
+
70
+ ## Oleadas
18
71
 
19
- ## Wave plan
72
+ Una llamada a Workflow por oleada:
20
73
 
21
- 1. **Parallel checks**: fan out to `tester`, `reviewer`,
22
- `security-reviewer` (and `critic` for the plan) all at once.
23
- 2. **Zero-failure gate**: apply the gate below as a final sequential step.
74
+ 1. **Chequeos en paralelo**: `tester`, `reviewer`,
75
+ `security-reviewer` (y `critic` para el plan) a la vez en un
76
+ Workflow.
77
+ 2. **Gate de cero fallos**: aplica el gate siguiente como paso final
78
+ secuencial en un segundo Workflow.
24
79
 
25
80
  ## Gate
26
81
 
27
- Zero failures allowed: every check must pass with no errors, no skipped
28
- assertions, and no open blockers. One failure anywhere fails the whole run;
29
- failed runs return to the owner with file:line findings. Never waive a
30
- blocker. Report the full failure list, ordered by severity, with
31
- reproduction steps.
82
+ Cero fallos: cada chequeo debe pasar sin errores, sin aserciones
83
+ omitidas y sin bloqueantes abiertos. Un fallo en cualquier punto falla
84
+ la ejecución entera; las ejecuciones fallidas vuelven al dueño con
85
+ hallazgos archivo:línea. Nunca dispenses un bloqueante. Informa la
86
+ lista completa de fallos ordenada por severidad, con pasos de
87
+ reproducción.
@@ -5,26 +5,82 @@ argument-hint: <work>
5
5
 
6
6
  # OMM Ultrawork
7
7
 
8
- Run the requested work with maximum parallelism: $ARGUMENTS
8
+ Ejecuta el trabajo con el máximo paralelismo: $ARGUMENTS
9
+
10
+ ## Reglas de orquestación (obligatorias)
11
+
12
+ 1. DEBES empezar llamando a `read_skill bundled:workflow-authoring` y
13
+ seguir su perfil Workflow API V1 con el esquema
14
+ `complete/evidence/unresolved`. Sin esta lectura no hay oleadas.
15
+ Tras esa lectura, OBLIGATORIO: `read_skill
16
+ plugin:oh-my-muse:omm-narration` y obedecer sus cuatro plantillas
17
+ (arranque, cabecera de oleada, tarjeta de oleada, cierre) en el
18
+ idioma del usuario.
19
+ 2. DEBES orquestar con la herramienta Workflow. PROHIBIDO implementar,
20
+ investigar o editar en el hilo principal: el hilo principal solo
21
+ anuncia el plan, lanza Workflows, narra entre oleadas e integra el
22
+ resultado al final.
23
+ 3. Si la herramienta Workflow no está disponible en tu sesión, DEBES
24
+ decirlo explícitamente ("Workflow no disponible: paro sin ejecutar")
25
+ y parar. PROHIBIDO seguir en silencio en el hilo principal.
26
+ 4. Un Workflow por oleada: DEBES lanzar una llamada a la herramienta
27
+ Workflow POR CADA oleada del plan (nunca un único Workflow para
28
+ todo). Un Workflow solo devuelve su resultado al terminar y el padre
29
+ no puede narrar mientras se ejecuta; entre oleadas, narra el
30
+ progreso.
31
+ 5. PROHIBIDO encadenar dos llamadas a Workflow sin haber escrito antes
32
+ la tarjeta de fin de oleada (`✔`/`⚠`/`✖` + `**Gate:**` +
33
+ `**Siguiente:**`) y la cabecera `▶` de la siguiente oleada. La
34
+ narración va en el hilo principal: el resultado del Workflow es
35
+ para el padre, el usuario ve la tarjeta.
36
+
37
+ ## Contrato de progreso (visible para el usuario)
38
+
39
+ - Antes de lanzar: publica el plan con las oleadas, los roles de cada
40
+ oleada y el gate de cada una.
41
+ - Tras cada oleada: por cada hijo informa rol + hallazgos clave (2-3
42
+ líneas) + archivos tocados + `unresolved`. Después anuncia la
43
+ decisión del gate (avanza / reintenta / para).
44
+ - Al final: informe con qué se hizo, verificación (gates del repo) y
45
+ pendientes (`unresolved` restantes).
46
+
47
+ ## Forma de cada `input` (obligatoria)
48
+
49
+ - El `input` de cada hijo DEBE empezar con "Primero llama a read_skill plugin:oh-my-muse:<rol>." (sustituye `<rol>` por el rol de ese hijo:
50
+ `researcher`, `implementer`, `tester`, `refactorer`, `file-picker`,
51
+ `docs-writer`) y pedir el esquema
52
+ `complete/evidence/unresolved/summary/files/decisions`
53
+ (`complete:boolean`, `evidence:string[]`, `unresolved:string[]`,
54
+ `summary:string` — máx. 2 líneas, `files:string[]`,
55
+ `decisions:string[]`).
56
+ - Cada `input` completo DEBE respetar el límite de 4096 bytes UTF-8
57
+ (texto + refs + contexto compacto + `summary`/`files`/`decisions`
58
+ juntos).
59
+ - Cada llamada de hijo lleva `label: "w<N>-<rol>"` (p. ej.
60
+ `w2-implementer`).
9
61
 
10
62
  ## Setup
11
63
 
12
- 1. Load the `workflow-authoring` skill and follow its Workflow API V1 profile.
13
- Subagents exist only inside the Workflow you author here.
14
- 2. Load the `harness` and `verify` skills and obey them for the whole run.
15
- 3. Use only these specialists: `researcher`, `implementer`, `tester`,
16
- `refactorer`, `file-picker`, `docs-writer`. There are no tiers and no
17
- per-agent models; the session model does all the work.
64
+ Usa solo estos especialistas: `researcher`, `implementer`, `tester`,
65
+ `refactorer`, `file-picker`, `docs-writer`. No hay niveles ni modelos
66
+ por agente; el modelo de la sesión hace todo el trabajo. Carga además
67
+ las skills `harness` y `verify` y obedécelas durante toda la ejecución.
68
+
69
+ ## Oleadas
18
70
 
19
- ## Wave plan
71
+ Optimiza el tiempo de reloj, no el número de pasos. Una llamada a
72
+ Workflow por oleada:
20
73
 
21
- Run every independent step at once in a single parallel wave. Order steps
22
- only when there is a true data dependency, and state what the dependency is.
23
- Merge parallel results at the end and resolve conflicts explicitly. Optimize
24
- for wall-clock time, not for step count.
74
+ 1. **Oleada paralela**: todos los pasos independientes a la vez en un
75
+ Workflow. Ordena pasos solo ante una dependencia real de datos, y
76
+ di cuál es.
77
+ 2. **Oleada de dependientes** (solo si la 1 declaró dependencias):
78
+ los pasos que esperaban datos de la oleada 1, en un Workflow.
79
+ Fusiona los resultados paralelos al final y resuelve los conflictos
80
+ explícitamente.
25
81
 
26
82
  ## Gate
27
83
 
28
- The run completes when every step reports done. Every step must still pass
29
- the repository's own gates for its touched area before the run is reported
30
- done.
84
+ La ejecución termina cuando todos los pasos informan hecho. Cada paso
85
+ debe pasar los gates propios del repo de su área antes de informar
86
+ hecho.
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: omm-narration
3
+ description: Narration cards for orchestrator commands (start, wave, close). Do not use for single-step edits, and never show raw Workflow JSON to the user.
4
+ user-invocable: false
5
+ ---
6
+
7
+ # OMM Narration
8
+
9
+ You are the narrator, not just the orchestrator. The user never sees raw
10
+ Workflow JSON: the Workflow result is for the parent, the user sees the
11
+ card. Write every card in the user's language.
12
+
13
+ Fixed sober icons only: 🏮 ▶ ✔ ⚠ ✖ ✅. No other emoji, no JSON dumps.
14
+
15
+ ## Arranque (once, before the first Workflow)
16
+
17
+ 1. First call `read_skill bundled:table-fit`, then keep every table narrow.
18
+ 2. Publish exactly:
19
+
20
+ ```text
21
+ ## 🏮 OMM <Orquestador> · <objetivo en una línea>
22
+
23
+ <una frase de enfoque: qué va a cambiar cuando termine.>
24
+
25
+ | Oleada | Roles | Paralelo | Gate |
26
+ | ------ | ----- | -------- | ---- |
27
+ | 1/M … | … | sí/no | … |
28
+ ```
29
+
30
+ ## Antes de cada oleada (always, right before launching its Workflow)
31
+
32
+ ```text
33
+ ### ▶ Oleada N/M · <nombre>
34
+
35
+ <una línea con el porqué de esta oleada ahora.>
36
+
37
+ - <rol> → <encargo en una línea>
38
+ ```
39
+
40
+ Give each child call the readable label `w<N>-<rol>` (e.g.
41
+ `w2-implementer`) via `label` / `phase("…")`: per-child labels are the
42
+ only naming knob with a durable surface (see `docs/OPEN-QUESTIONS.md`
43
+ D4). At milestones each child MAY emit `[<rol>] <acción>` via `log()`,
44
+ but never depend on it being seen (O5): the cards are the guaranteed
45
+ surface.
46
+
47
+ ## Tras cada oleada (always, before launching the next Workflow)
48
+
49
+ Pick the header that matches the gate: `### ✔ Oleada N/M completada`,
50
+ `### ⚠ Oleada N/M con pendientes` or `### ✖ Oleada N/M fallida`.
51
+ Then exactly:
52
+
53
+ ```text
54
+ | Rol | Resultado | Archivos | Pendiente |
55
+ | --- | --------- | -------- | --------- |
56
+ | … | <máx. 2 líneas> | … | … |
57
+
58
+ **Gate:** avanza | reintenta | para — <motivo>
59
+ **Siguiente:** <oleada siguiente o "nada: cierre">
60
+ ```
61
+
62
+ Hard rule: PROHIBIDO lanzar el siguiente Workflow sin haber escrito
63
+ antes esta tarjeta y la cabecera `▶` de la siguiente oleada.
64
+
65
+ ## Cierre (once, after the last gate)
66
+
67
+ ```text
68
+ ## ✅ Hecho
69
+
70
+ | Oleada | Estado | Gate |
71
+ | ------ | ------ | ---- |
72
+ | … | ✔/⚠/✖ | … |
73
+ ```
74
+
75
+ Then, in this order, with real observed output only:
76
+
77
+ 1. `git diff --stat` real (run it, paste it).
78
+ 2. Resultado literal de los tests (paste the gate output, never a
79
+ paraphrase).
80
+ 3. Pendientes (`unresolved` restantes, or "ninguno").
81
+ 4. Siguiente paso sugerido (one line).