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 +1 -1
- package/package.json +2 -2
- package/plugin/.muse-plugin/plugin.json +1 -1
- package/plugin/commands/omm-advisor.md +71 -17
- package/plugin/commands/omm-autopilot.md +74 -16
- package/plugin/commands/omm-pipeline.md +64 -13
- package/plugin/commands/omm-ralph.md +67 -14
- package/plugin/commands/omm-team.md +74 -21
- package/plugin/commands/omm-ultraqa.md +72 -16
- package/plugin/commands/omm-ultrawork.md +71 -15
- package/plugin/skills/omm-narration/SKILL.md +81 -0
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.
|
|
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
|
}
|
|
@@ -5,28 +5,82 @@ argument-hint: <question>
|
|
|
5
5
|
|
|
6
6
|
# OMM Advisor
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
73
|
+
Una llamada a Workflow por oleada:
|
|
21
74
|
|
|
22
|
-
1. **
|
|
23
|
-
(`architect`, `critic`, `security-reviewer`)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
32
|
-
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
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. **
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
##
|
|
68
|
+
## Oleadas
|
|
20
69
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
28
|
-
pipeline.
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
##
|
|
69
|
+
## Oleadas
|
|
20
70
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
29
|
-
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
##
|
|
69
|
+
## Oleadas
|
|
20
70
|
|
|
21
|
-
|
|
22
|
-
|
|
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. **
|
|
25
|
-
|
|
26
|
-
2. **
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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`
|
|
36
|
-
|
|
37
|
-
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
72
|
+
Una llamada a Workflow por oleada:
|
|
20
73
|
|
|
21
|
-
1. **
|
|
22
|
-
`security-reviewer` (
|
|
23
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
|
|
71
|
+
Optimiza el tiempo de reloj, no el número de pasos. Una llamada a
|
|
72
|
+
Workflow por oleada:
|
|
20
73
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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).
|