@tacuchi/agent-workflow-cli 14.6.0 → 14.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/dist/adapters/node-process.d.ts.map +1 -1
- package/dist/adapters/node-process.js +7 -3
- package/dist/adapters/node-process.js.map +1 -1
- package/dist/application/plugin-doctor/skills.d.ts +1 -0
- package/dist/application/plugin-doctor/skills.d.ts.map +1 -1
- package/dist/application/plugin-doctor/skills.js +1 -1
- package/dist/application/plugin-doctor/skills.js.map +1 -1
- package/dist/application/self/install-plugin-skills-git.js +2 -1
- package/dist/application/self/install-plugin-skills-git.js.map +1 -1
- package/dist/application/self/install-plugin-skills.d.ts.map +1 -1
- package/dist/application/self/install-plugin-skills.js +2 -2
- package/dist/application/self/install-plugin-skills.js.map +1 -1
- package/dist/application/self/install-skill.d.ts +2 -1
- package/dist/application/self/install-skill.d.ts.map +1 -1
- package/dist/application/self/install-skill.js +5 -32
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/install-targets.d.ts +10 -0
- package/dist/application/self/install-targets.d.ts.map +1 -0
- package/dist/application/self/install-targets.js +19 -0
- package/dist/application/self/install-targets.js.map +1 -0
- package/dist/application/self/plugin-cache-clear.d.ts +2 -1
- package/dist/application/self/plugin-cache-clear.d.ts.map +1 -1
- package/dist/application/self/plugin-cache-clear.js +5 -2
- package/dist/application/self/plugin-cache-clear.js.map +1 -1
- package/dist/application/self/plugin-cache-reload.js.map +1 -1
- package/dist/application/self/uninstall-skill.d.ts.map +1 -1
- package/dist/application/self/uninstall-skill.js +4 -2
- package/dist/application/self/uninstall-skill.js.map +1 -1
- package/dist/application/source-launch-scripts-service.d.ts +6 -0
- package/dist/application/source-launch-scripts-service.d.ts.map +1 -1
- package/dist/application/source-launch-scripts-service.js +15 -2
- package/dist/application/source-launch-scripts-service.js.map +1 -1
- package/dist/application/source-launch-service.d.ts +4 -2
- package/dist/application/source-launch-service.d.ts.map +1 -1
- package/dist/application/source-launch-service.js +7 -3
- package/dist/application/source-launch-service.js.map +1 -1
- package/dist/cli/commands/check-branch.js +2 -1
- package/dist/cli/commands/check-branch.js.map +1 -1
- package/dist/cli/commands/git-flow.d.ts.map +1 -1
- package/dist/cli/commands/git-flow.js +3 -7
- package/dist/cli/commands/git-flow.js.map +1 -1
- package/dist/cli/commands/merge-state.d.ts.map +1 -1
- package/dist/cli/commands/merge-state.js +2 -5
- package/dist/cli/commands/merge-state.js.map +1 -1
- package/dist/cli/commands/release-data.d.ts.map +1 -1
- package/dist/cli/commands/release-data.js +6 -2
- package/dist/cli/commands/release-data.js.map +1 -1
- package/dist/cli/commands/session-artifacts.d.ts.map +1 -1
- package/dist/cli/commands/session-artifacts.js +8 -0
- package/dist/cli/commands/session-artifacts.js.map +1 -1
- package/dist/cli/commands/session-resume.d.ts.map +1 -1
- package/dist/cli/commands/session-resume.js +8 -0
- package/dist/cli/commands/session-resume.js.map +1 -1
- package/dist/cli/parser.d.ts +6 -0
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +18 -0
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/tui/components/logs-section.d.ts.map +1 -1
- package/dist/cli/tui/components/logs-section.js +12 -1
- package/dist/cli/tui/components/logs-section.js.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/skills-tab.js +7 -10
- package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
- package/package.json +1 -1
- package/skills/w/README.md +2 -2
- package/skills/w/SKILL.md +5 -3
- package/skills/w/artifacts/README.md +6 -3
- package/skills/w/artifacts/artifacts-core/SESSION.md +1 -1
- package/skills/w/artifacts/artifacts-design/SPEC.md +42 -0
- package/skills/w/commands/README.md +1 -1
- package/skills/w/commands/plan-exec.md +1 -0
- package/skills/w/commands/plan-new.md +4 -0
- package/skills/w/commands/plan-refine.md +4 -0
- package/skills/w/commands/quick.md +1 -0
- package/skills/w/commands/workspace-init.md +1 -1
- package/skills/w/exports/export-diagrams/SKILL.md +1 -1
- package/skills/w/exports/export-manuals/SKILL.md +1 -1
- package/skills/w/exports/export-reports/SKILL.md +1 -1
- package/skills/w/exports/export-scripts/SKILL.md +1 -1
- package/skills/w/loops/README.md +3 -2
- package/skills/w/loops/plan-exec-loop/SKILL.md +32 -20
- package/skills/w/loops/plan-new-loop/SKILL.md +17 -16
- package/skills/w/loops/plan-refine-loop/SKILL.md +16 -14
- package/skills/w/loops/quick-loop/SKILL.md +18 -18
- package/skills/w/loops/spec-refine-loop/SKILL.md +2 -0
- package/skills/w/roles/README.md +3 -1
- package/skills/w/roles/ui-spec/SKILL.md +22 -7
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan-new-loop
|
|
3
3
|
description: >-
|
|
4
|
-
Genera un plan de implementación rico (docs/plans/PPP-plan-<slug>.md) a
|
|
5
|
-
de un spec (docs/specs/NNN-spec-<slug>.md). Heir del chasis spec-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
(
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
refinado de borrador por la presencia de Refinement decisions/Q&A traceability
|
|
15
|
-
(si faltan → soft-suggest correr spec-refine antes). Lo arranca el comando
|
|
16
|
-
/w:plan-new y es reanudable. Invocar cuando un spec deba convertirse en un plan
|
|
17
|
-
ejecutable antes de implementar.
|
|
4
|
+
Genera un plan de implementación rico (docs/plans/PPP-plan-<slug>.md) a
|
|
5
|
+
partir de un spec (docs/specs/NNN-spec-<slug>.md). Heir del chasis spec-
|
|
6
|
+
refine-loop (motor gap-driven convergente, session única, research inline,
|
|
7
|
+
structured-choice, artefactos como log vivo); sus deltas viven en el cuerpo:
|
|
8
|
+
el plan absorbe el nivel TECHNICAL-NOTE + Phases/Tasks con estado vivo,
|
|
9
|
+
research de mapeo código/impacto, gap taxonomy de planificación, y si el
|
|
10
|
+
plan incluye UI compone ui-design para autorar design SPECs por pantalla
|
|
11
|
+
(NNN-SPEC-<SLUG>.md). Si el spec no está refinado sugiere spec-refine antes.
|
|
12
|
+
Lo arranca /w:plan-new y es reanudable. Invocar cuando un spec deba
|
|
13
|
+
convertirse en un plan ejecutable antes de implementar.
|
|
18
14
|
---
|
|
19
15
|
|
|
20
16
|
# plan-new-loop
|
|
@@ -34,7 +30,7 @@ PLAN
|
|
|
34
30
|
`docs/specs/NNN-spec-*.md` (glob — localiza el spec por número; o la ruta exacta del argumento del comando). **Refinado vs borrador** se distingue por la **presencia** de `## Refinement decisions` / `## Q&A traceability` en el spec: si faltan → **soft-suggest** correr `/w:spec-refine` primero (planificar sobre un spec sólido produce mejores planes), pero el usuario puede proceder.
|
|
35
31
|
|
|
36
32
|
## Writes
|
|
37
|
-
`docs/plans/PPP-plan-<slug>.md` (`generate`; **sobrescribe con confirmación** si existe). Solo escribe `docs/plans` — nunca otras carpetas `docs/` ni auto-export.
|
|
33
|
+
`docs/plans/PPP-plan-<slug>.md` (`generate`; **sobrescribe con confirmación** si existe). Solo escribe `docs/plans` — nunca otras carpetas `docs/` ni auto-export. Si el plan **incluye UI**, además produce **design SPECs** (`NNN-SPEC-<SLUG>.md`) como artefactos **de su sesión** (ver *Delta 4* — no son `docs/`, no hay auto-export).
|
|
38
34
|
|
|
39
35
|
> **slug**: kebab-case corto derivado del Requirement del spec — solo `[a-z0-9-]`, ≤ ~5 palabras / ≤ 40 chars. El CLI solo devuelve el número `PPP`; el loop arma el nombre completo. Para localizar planes, glob `docs/plans/PPP-plan-*.md`.
|
|
40
36
|
|
|
@@ -93,13 +89,18 @@ Reemplaza la gap taxonomy de spec por una orientada a planificación:
|
|
|
93
89
|
| Deps faltantes | orden no claro | research / humano |
|
|
94
90
|
| Criterios del spec sin cubrir | tareas no trazan a acceptance criteria | la IA deriva + humano confirma |
|
|
95
91
|
| Riesgos sin atender | riesgos técnicos sin mitigar/declarar | humano |
|
|
92
|
+
| UI sin design SPEC *(si aplica)* | el plan incluye UI (FE/pantallas en `Impacted`, `## UI spec` en el spec, o tareas UI) sin `NNN-SPEC-*.md` en la sesión | **capacidad `ui-design`** |
|
|
96
93
|
|
|
97
94
|
## Delta 3 — What research investigates here
|
|
98
95
|
|
|
99
96
|
El research **inline** del chasis se especializa: mapear **código/impacto** — componentes FE/BE/BD afectados, wiring AS-IS, dependencias. Alimenta las secciones `Solution`, `Impacted`, `Current state (AS-IS)`. La regla BD del chasis aplica igual (queries read-only a `SCRIPTS.sql`, MCP elegido vía pregunta de contenido si >1 sin default).
|
|
100
97
|
|
|
98
|
+
## Delta 4 — Design SPECs (si el plan incluye UI)
|
|
99
|
+
|
|
100
|
+
El gap **UI sin design SPEC** se resuelve **componiendo** la capacidad **`ui-design`** (default built-in [`ui-spec`](../../roles/ui-spec/SKILL.md); rebindeable vía `.workflow/skills.toml`; `off` → degrada a humano / `Open questions`): autora **un design SPEC por pantalla** como artefacto de la sesión — `NNN-SPEC-<SLUG>.md` (`001-SPEC-MODAL-EXPORT.md`, `002-SPEC-ADMIN-DASHBOARD.md`; numeración local a la sesión, ver [`SPEC.md`](../../artifacts/artifacts-design/SPEC.md)). **Deriva** de la sección `## UI spec` del spec si existe (la parte por pantalla y la eleva a detalle ejecutable); si no, autora desde el `Requirement` (design-system/tema/ambigüedades vía *structured-choice*, cuenta en el batch). Las **Tasks UI del plan referencian** la ruta de su SPEC — esa referencia es la fuente de verdad — y `plan-exec-loop` los lee como referencia de diseño. Es el mismo tercer modo de resolución de gap del chasis (junto a *research* y *humano*).
|
|
101
|
+
|
|
101
102
|
## Convergence / exit
|
|
102
103
|
|
|
103
|
-
Sin gaps materiales → **coherence gate** (read-only) = **`Success criteria` en verde** (*verification-first*; es el "convergence gate" del chasis para PLAN-new): cada `acceptance criterion` del spec **traza** a una fase/tarea, `Final behavior` los cubre, fases XS–S / tareas XS, `deps` sin ciclos, `Impacted` consistente con `Solution
|
|
104
|
+
Sin gaps materiales → **coherence gate** (read-only) = **`Success criteria` en verde** (*verification-first*; es el "convergence gate" del chasis para PLAN-new): cada `acceptance criterion` del spec **traza** a una fase/tarea, `Final behavior` los cubre, fases XS–S / tareas XS, `deps` sin ciclos, `Impacted` consistente con `Solution`; y si el plan incluye UI: cada pantalla/tarea UI **traza a su design SPEC** (`NNN-SPEC-*.md`) y los SPECs no contradicen el `## UI spec` del spec (si existe). Lo que falle **vuelve como gap** — la trazabilidad criterio→tarea es una **invariante chequeada**, no una sección aparte. Si pasa → *structured-choice* (contenido: `Guardar plan` / `Preguntar algo más`; flow: `Compactar`/`Cerrar`) → al `Guardar`, escribe `docs/plans/PPP-plan-<slug>.md` (con confirmación si existe) → `finalize` (persiste `CHECKPOINT`, y `BACKLOG` solo si difiere; cierra la session, reporta). `Cerrar` en cualquier momento → `finalize` igual.
|
|
104
105
|
|
|
105
106
|
> **Después de generar:** el plan puede ir directo a `plan-exec`, o —si surgen cambios antes de ejecutar (nuevos requerimientos, ajustes de alcance)— pasar por [`plan-refine-loop`](../plan-refine-loop/SKILL.md) (`/w:plan-refine`, auxiliar y **no obligatorio**), que lo refina in place.
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan-refine-loop
|
|
3
3
|
description: >-
|
|
4
|
-
Refina un plan existente (docs/plans/PPP-plan-<slug>.md) editándolo IN
|
|
5
|
-
como paso auxiliar y NO obligatorio del flujo PLAN antes de plan-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
contrato de gating: plan-exec corre cualquier plan). Lo arranca /w:plan-refine y
|
|
14
|
-
es reanudable + re-corrible a demanda. Invocar cuando un plan ya generado deba
|
|
4
|
+
Refina un plan existente (docs/plans/PPP-plan-<slug>.md) editándolo IN
|
|
5
|
+
PLACE, como paso auxiliar y NO obligatorio del flujo PLAN antes de plan-
|
|
6
|
+
exec. Es a plan-new lo que spec-refine es a spec-new. Heir del chasis spec-
|
|
7
|
+
refine-loop (motor gap-driven, session única, research inline, structured-
|
|
8
|
+
choice, artefactos como log vivo); reusa la gap taxonomy y el coherence gate
|
|
9
|
+
de plan-new-loop, agrega Refinement decisions/Q&A traceability al plan
|
|
10
|
+
(traza, sin gating), y si el refine toca UI compone ui-design y
|
|
11
|
+
produce/actualiza design SPECs por pantalla. Lo arranca /w:plan-refine;
|
|
12
|
+
reanudable y re-corrible a demanda. Invocar cuando un plan ya generado deba
|
|
15
13
|
ajustarse antes de ejecutarlo.
|
|
16
14
|
---
|
|
17
15
|
|
|
@@ -37,7 +35,7 @@ PLAN
|
|
|
37
35
|
`docs/plans/PPP-plan-*.md` (glob — localiza el plan por número; o la ruta exacta del argumento del comando). **Siempre el plan mismo**: este loop lo edita in place, no hay un archivo "refined" aparte.
|
|
38
36
|
|
|
39
37
|
## Writes
|
|
40
|
-
Actualiza `docs/plans/PPP-plan-<slug>.md` **in place** (cuando el usuario elige `Guardar plan refinado`): completa/ajusta secciones y **agrega** `## Refinement decisions` + `## Q&A traceability`. Como sobrescribe un doc existente, **con confirmación** del usuario. Solo escribe `docs/plans` — nunca otras carpetas `docs/` ni auto-export.
|
|
38
|
+
Actualiza `docs/plans/PPP-plan-<slug>.md` **in place** (cuando el usuario elige `Guardar plan refinado`): completa/ajusta secciones y **agrega** `## Refinement decisions` + `## Q&A traceability`. Como sobrescribe un doc existente, **con confirmación** del usuario. Solo escribe `docs/plans` — nunca otras carpetas `docs/` ni auto-export. Si el refine **toca UI**, además produce/actualiza **design SPECs** (`NNN-SPEC-<SLUG>.md`) como artefactos **de su propia sesión** (ver *Delta 4* — no son `docs/`, no hay auto-export).
|
|
41
39
|
|
|
42
40
|
## Inherits
|
|
43
41
|
|
|
@@ -69,7 +67,7 @@ Cada duda preguntada al humano + la respuesta elegida.
|
|
|
69
67
|
|
|
70
68
|
## Delta 2 — Gap taxonomy (de "plan")
|
|
71
69
|
|
|
72
|
-
Reusa **íntegra** la gap taxonomy de [`plan-new-loop`](../plan-new-loop/SKILL.md) (§ *Delta 2*): Approach/Solution vago, componentes sin identificar, wiring AS-IS desconocido, fase muy grande, tarea no atómica, deps faltantes, criterios del spec sin cubrir, riesgos sin atender. **Diferencia de foco:** plan-new **construye** el plan desde cero; plan-refine **detecta qué cambió** respecto del plan ya escrito (o respecto del spec, si el spec se re-refinó) y cierra **esos** gaps — típicamente menos y más localizados. Un gap extra propio del re-refine:
|
|
70
|
+
Reusa **íntegra** la gap taxonomy de [`plan-new-loop`](../plan-new-loop/SKILL.md) (§ *Delta 2*): Approach/Solution vago, componentes sin identificar, wiring AS-IS desconocido, fase muy grande, tarea no atómica, deps faltantes, criterios del spec sin cubrir, riesgos sin atender, UI sin design SPEC. **Diferencia de foco:** plan-new **construye** el plan desde cero; plan-refine **detecta qué cambió** respecto del plan ya escrito (o respecto del spec, si el spec se re-refinó) y cierra **esos** gaps — típicamente menos y más localizados. Un gap extra propio del re-refine:
|
|
73
71
|
|
|
74
72
|
| Gap | Signal | Resolved by |
|
|
75
73
|
|---|---|---|
|
|
@@ -79,6 +77,10 @@ Reusa **íntegra** la gap taxonomy de [`plan-new-loop`](../plan-new-loop/SKILL.m
|
|
|
79
77
|
|
|
80
78
|
Igual que plan-new (mapea código/impacto: componentes FE/BE/BD, wiring AS-IS, deps), pero **acotado al delta**: re-verifica solo lo que el cambio toca (no re-mapea todo el plan). Regla BD del chasis igual (read-only a `SCRIPTS.sql`, MCP vía pregunta si >1 sin default).
|
|
81
79
|
|
|
80
|
+
## Delta 4 — Design SPECs (si el refine toca UI)
|
|
81
|
+
|
|
82
|
+
Mismo mecanismo que [`plan-new-loop`](../plan-new-loop/SKILL.md) (§ *Delta 4*: capacidad **`ui-design`** → `NNN-SPEC-<SLUG>.md` por pantalla, ver [`SPEC.md`](../../artifacts/artifacts-design/SPEC.md)), **acotado al delta**: solo las pantallas **nuevas o cambiadas** por el refine reciben design SPEC. El SPEC actualizado se escribe en **la sesión propia** del plan-refine (cada loop maneja los artefactos de SU sesión — no edita los de la sesión de plan-new) y el plan **re-apunta** la referencia de la Task UI al SPEC vigente. Pantallas no tocadas conservan su SPEC original.
|
|
83
|
+
|
|
82
84
|
## Compact / resume
|
|
83
85
|
|
|
84
86
|
El resume **keya off el `CHECKPOINT`** de la refine session, no de un archivo "refined". Tres casos al ejecutar `/w:plan-refine` sobre un plan:
|
|
@@ -91,4 +93,4 @@ El resume **keya off el `CHECKPOINT`** de la refine session, no de un archivo "r
|
|
|
91
93
|
|
|
92
94
|
## Convergence / exit
|
|
93
95
|
|
|
94
|
-
Sin gaps materiales → **coherence gate** (read-only) = **`Success criteria` en verde** (*verification-first*; el "convergence gate" del chasis para PLAN, mismo que plan-new): cada `acceptance criterion` del spec **traza** a una fase/tarea, `Final behavior` los cubre, fases XS–S / tareas XS, `deps` sin ciclos, `Impacted` consistente con `Solution`, y —propio del re-refine— **el plan quedó realineado** con lo que cambió. Lo que falle **vuelve como gap**. Si pasa → *structured-choice* (contenido: `Guardar plan refinado` / `Preguntar algo más`; flow: `Compactar`/`Cerrar`) → al `Guardar`, edita `docs/plans/PPP-plan-<slug>.md` in place (con confirmación) + inserta `Refinement decisions`/`Q&A traceability` → `finalize` (persiste `CHECKPOINT`; `BACKLOG` solo si difiere; cierra la session, reporta). `Cerrar` en cualquier momento → `finalize` igual.
|
|
96
|
+
Sin gaps materiales → **coherence gate** (read-only) = **`Success criteria` en verde** (*verification-first*; el "convergence gate" del chasis para PLAN, mismo que plan-new): cada `acceptance criterion` del spec **traza** a una fase/tarea, `Final behavior` los cubre, fases XS–S / tareas XS, `deps` sin ciclos, `Impacted` consistente con `Solution`, si hay UI cada pantalla/tarea UI **traza a su design SPEC vigente**, y —propio del re-refine— **el plan quedó realineado** con lo que cambió. Lo que falle **vuelve como gap**. Si pasa → *structured-choice* (contenido: `Guardar plan refinado` / `Preguntar algo más`; flow: `Compactar`/`Cerrar`) → al `Guardar`, edita `docs/plans/PPP-plan-<slug>.md` in place (con confirmación) + inserta `Refinement decisions`/`Q&A traceability` → `finalize` (persiste `CHECKPOINT`; `BACKLOG` solo si difiere; cierra la session, reporta). `Cerrar` en cualquier momento → `finalize` igual.
|
|
@@ -1,19 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: quick-loop
|
|
3
3
|
description: >-
|
|
4
|
-
El atajo liviano de agent-workflow: resuelve una tarea acotada (
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
una sola session ligera (<slug>-quick), un solo commit; y escalación con
|
|
14
|
-
handoff si la tarea crece (propone subir a SPEC/PLAN dejando el código a
|
|
15
|
-
medias como contexto). NO toca docs/. Lo arranca /w:quick y es reanudable.
|
|
16
|
-
Invocar para cambios pequeños y directos que no ameritan spec ni plan formal.
|
|
4
|
+
El atajo liviano de agent-workflow: resuelve una tarea acotada (fix, ajuste
|
|
5
|
+
chico) directamente desde el prompt, editando código con ceremonia mínima.
|
|
6
|
+
Heir del chasis spec-refine-loop y de plan-exec-loop (git seguro, BD solo-
|
|
7
|
+
scripts, gate de revisión de cierre proporcional, sin auto-export); sus
|
|
8
|
+
deltas viven en el cuerpo: sin fases ni plan-doc (el prompt ES la tarea),
|
|
9
|
+
session ligera única (<slug>-quick), un solo commit, y escalación con
|
|
10
|
+
handoff a SPEC/PLAN si la tarea crece. NO toca docs/. Lo arranca /w:quick y
|
|
11
|
+
es reanudable. Invocar para cambios pequeños y directos que no ameritan spec
|
|
12
|
+
ni plan formal.
|
|
17
13
|
---
|
|
18
14
|
|
|
19
15
|
# quick-loop
|
|
@@ -44,7 +40,7 @@ QUICK
|
|
|
44
40
|
## Inherits
|
|
45
41
|
|
|
46
42
|
- del **chasis** [`spec-refine-loop`](../spec-refine-loop/SKILL.md): **objetivo persistente** (acá el más directo: el prompt *es* el objetivo) + **verification-first** (`SESSION.Success criteria` proporcional), gap-driven (mínimo), *structured-choice* ≤3 preguntas de contenido + 1 control `flow` (`Compactar`/`Cerrar`) (capacidad del arnés — ver [`../../harness/SKILL.md`](../../harness/SKILL.md); en Claude Code es `AskUserQuestion`), `research` **inline** + regla BD read-only (pregunta MCP si >1 sin default → `SCRIPTS.sql` → ejecuta read-only), compact/resume, **artefactos como log vivo (ciclo artifact-first)** (`CHECKPOINT` siempre; `BACKLOG` solo si difiere).
|
|
47
|
-
- de [`plan-exec-loop`](../plan-exec-loop/SKILL.md): **git** (rama segura antes de editar + commit propuesto; nunca `push`/`--amend`/`--no-verify`), **BD** (la IA nunca ejecuta DML; migraciones → `SCRIPTS.sql` de la session), **sin auto-export** (no toca otras carpetas `docs/`).
|
|
43
|
+
- de [`plan-exec-loop`](../plan-exec-loop/SKILL.md): **git** (rama segura antes de editar + commit propuesto; nunca `push`/`--amend`/`--no-verify`), **BD** (la IA nunca ejecuta DML; migraciones → `SCRIPTS.sql` de la session), **sin auto-export** (no toca otras carpetas `docs/`), y el **gate de revisión de cierre** (§ *Delta 5* de plan-exec) en versión **proporcional**: antes de proponer el único commit, re-lectura del diff aplicando las convenciones ambientes instaladas → corregir o diferir justificado.
|
|
48
44
|
|
|
49
45
|
## Composes
|
|
50
46
|
|
|
@@ -56,7 +52,7 @@ QUICK
|
|
|
56
52
|
|
|
57
53
|
- **Sin fases, sin plan-doc**: el prompt **es** la tarea (una sola unidad). No hay roadmap.
|
|
58
54
|
- **Verification-first proporcional** (ceremonia mínima): aun acá se **siembra el check antes**, del tamaño de la tarea. Código: un test (repro del bug → fix) o "build/lint/tests existentes siguen verdes" (chore). **Análisis/diseño**: una **rúbrica falsable corta**, *ratificada por el usuario* antes de perseguirla. Es el `SESSION.Success criteria` del run (ver [chasis § Verification-first](../spec-refine-loop/SKILL.md)).
|
|
59
|
-
- **Una sola session**. **Un solo commit** propuesto al final (solo si hubo cambios de código).
|
|
55
|
+
- **Una sola session**. **Un solo commit** propuesto al final (solo si hubo cambios de código), **tras el gate de revisión de cierre proporcional** (heredado de plan-exec § *Delta 5*): re-lectura del diff + convenciones ambientes; corregir o diferir; nada llega al commit sin revisar.
|
|
60
56
|
- **Escalación + handoff**: si la tarea crece (muchos archivos / ≥2 fuentes / necesita arquitectura) → propone subir a **SPEC/PLAN**. Si el usuario acepta:
|
|
61
57
|
- el **código ya editado queda** en el working tree (no se revierte) **y se registra** en `CHECKPOINT` + `BACKLOG` ("cambios sin commitear en `<fuente>` — código a medias; decidir commit/descartar al retomar") — reusando **ambas** mitades del patrón "commit rechazado" de plan-exec (no revertir **y** registrar lo sin commitear). Crítico en la rama **SPEC**, que no retoma el working tree;
|
|
62
58
|
- la session quick va a `finalize`, persistiendo `CHECKPOINT` + `BACKLOG` con un **puntero** al spec/plan sembrado (Followups: "escalado a `docs/specs/NNN` o `docs/plans/PPP` — retomar ahí");
|
|
@@ -91,7 +87,10 @@ quick-loop(prompt):
|
|
|
91
87
|
si la tarea CRECE → proponer escalar a SPEC/PLAN
|
|
92
88
|
si acepta → handoff (avance queda; BACKLOG→spec/plan sembrado) → goto finalize
|
|
93
89
|
convergence gate: Success criteria en verde # tests verdes si código · rúbrica satisfecha si análisis/diseño
|
|
94
|
-
si hubo cambios de código
|
|
90
|
+
si hubo cambios de código:
|
|
91
|
+
gate de revisión de cierre (proporcional): # re-lectura del diff + convenciones ambientes instaladas
|
|
92
|
+
hallazgos → corregir (re-validar) ó diferir justificado (BACKLOG)
|
|
93
|
+
proponer commit (aprobar antes) # nunca push/amend/--no-verify; solo tras el gate
|
|
95
94
|
structured_choice(contenido: [Cerrar tarea, Preguntar algo más], flow: [Compactar, Cerrar])
|
|
96
95
|
finalize: CHECKPOINT (DESPUÉS: Pending→Completed) + BACKLOG (solo si queda algo diferido) + cerrar session + reportar
|
|
97
96
|
```
|
|
@@ -106,14 +105,15 @@ flowchart TD
|
|
|
106
105
|
GROW -->|sí| ESC["escalar a SPEC/PLAN<br/>avance queda · BACKLOG→spec/plan sembrado"]
|
|
107
106
|
ESC --> FIN
|
|
108
107
|
GROW -->|no| V["convergence gate:<br/>Success criteria en verde"]
|
|
109
|
-
V -->
|
|
108
|
+
V --> RV["si hubo código → gate de revisión de cierre<br/>(diff + convenciones ambientes → corregir/diferir)"]
|
|
109
|
+
RV --> CM["proponer commit (aprobar)"]
|
|
110
110
|
CM --> Q["structured-choice[Cerrar · Preguntar más]<br/>flow[Compactar · Cerrar]"]
|
|
111
111
|
Q --> FIN["finalize: CHECKPOINT + BACKLOG + cerrar"]
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
## Convergence / exit
|
|
115
115
|
|
|
116
|
-
- **Success criteria en verde** (proporcional) + commit propuesto si hubo código (o aprobado saltarlo) → `Cerrar`.
|
|
116
|
+
- **Success criteria en verde** (proporcional) + gate de revisión de cierre pasado y commit propuesto si hubo código (o aprobado saltarlo) → `Cerrar`.
|
|
117
117
|
- `Cerrar`/`Compactar` (control `flow`) → persiste `CHECKPOINT` + `BACKLOG` (reanudable).
|
|
118
118
|
- **Sin export**: nada va a `docs/`. Si algo amerita preservarse → se promueve aparte vía `export-*`, o se escala a SPEC/PLAN.
|
|
119
119
|
|
|
@@ -123,6 +123,8 @@ El **CLI es dueño del número**: `aw session-create` antepone un `NNN` **global
|
|
|
123
123
|
|
|
124
124
|
El gap **UI sin especificar** (cuando el requerimiento involucra UI; ver *Gap taxonomy*) se resuelve **componiendo** la capacidad **`ui-design`** (default built-in `ui-spec`; rebindeable vía `.workflow/skills.toml`): autora el UI spec nativamente (estructura, vocabulario, formato Markdown). Es un tercer modo de resolución de gap (junto a *research* y *humano*): el loop aporta la iteración/Q&A que el viejo servicio no tenía (design-system, tema, variantes, desambiguación) **vía la misma structured-choice**, y lo integra como sección `## UI spec` del spec.
|
|
125
125
|
|
|
126
|
+
> **Dos niveles de la misma capacidad:** aquí (SPEC) produce la sección `## UI spec` del spec — el *qué* de la UI, grano grueso. En PLAN, `plan-new-loop`/`plan-refine-loop` componen la **misma** capacidad para producir **design SPECs por pantalla** (`NNN-SPEC-<SLUG>.md`, artefactos de su sesión — ver [`SPEC.md`](../../artifacts/artifacts-design/SPEC.md)), derivados de esta sección si existe.
|
|
127
|
+
|
|
126
128
|
Otras capacidades transversales que el chasis usa siempre: `research` (research **inline**, ver abajo), `sql` (regla BD en research). Todas se resuelven por config; `off` → el loop sigue sin la capacidad y, si era necesaria, lo dice o pregunta. La **prosa del spec** sigue las convenciones de redacción **ambientes** (el host auto-aplica una skill de writing instalada si está presente), no un rol compuesto.
|
|
127
129
|
|
|
128
130
|
> **Convenciones ambientes (no roles).** Los estándares de código, testing, redacción **y la creación de herramientas** (`creating-tools`) **no son roles** del workflow ni se bindean: son **skills standalone que el host auto-descubre por su `description`** y aplica cuando son relevantes. El workflow es **indiferente** (no las lee ni las busca). Familias útiles viven en plugins del marketplace (`dev-conventions`, `tool-builder`), pero el workflow **no depende** de ellos.
|
package/skills/w/roles/README.md
CHANGED
|
@@ -12,7 +12,7 @@ All 6 roles, their built-in defaults, their tier, and which loops/exports compos
|
|
|
12
12
|
|
|
13
13
|
| Role | Default built-in | Tier | Composed by |
|
|
14
14
|
|---|---|---|---|
|
|
15
|
-
| `ui-design` | [`ui-spec`](ui-spec/SKILL.md) | must | `spec-refine-loop` (when requirement involves UI) |
|
|
15
|
+
| `ui-design` | [`ui-spec`](ui-spec/SKILL.md) | must | `spec-refine-loop` (when requirement involves UI) · `plan-new-loop` / `plan-refine-loop` (per-screen design SPECs) |
|
|
16
16
|
| `sql` | `sql` | must | inline research · `plan-exec-loop` · `quick-loop` · `export-scripts` |
|
|
17
17
|
| `git` | `git` | must | `plan-exec-loop` · `quick-loop` |
|
|
18
18
|
| `research` | [`research`](research/SKILL.md) | should | all loops (on-demand investigation) |
|
|
@@ -24,6 +24,8 @@ All 6 roles, their built-in defaults, their tier, and which loops/exports compos
|
|
|
24
24
|
- `should` — loaded on-demand; active by default but lower priority to override.
|
|
25
25
|
|
|
26
26
|
> **Convenciones ambientes (no roles).** Los estándares de código, testing, redacción **y la creación de herramientas** (`creating-tools`) **no son roles** del workflow ni se bindean: son **skills standalone que el host auto-descubre por su `description`** y aplica cuando son relevantes. El workflow es **indiferente** (no las lee ni las busca). Familias útiles viven en plugins del marketplace (`dev-conventions`, `tool-builder`), pero el workflow **no depende** de ellos.
|
|
27
|
+
>
|
|
28
|
+
> **La revisión de cierre tampoco es un rol** (decisión deliberada — se evaluó y descartó un rol `conventions`/`rules`/`review`): el **gate de revisión de cierre** de `plan-exec-loop`/`quick-loop` (pre-commit) es un **paso del loop**; el loop crea el **momento** y las convenciones ambientes instaladas lo llenan. Un rol que "señale las skills del marketplace" re-acoplaría lo que esta extracción desacopló.
|
|
27
29
|
|
|
28
30
|
---
|
|
29
31
|
|
|
@@ -5,9 +5,12 @@ description: >-
|
|
|
5
5
|
requirement, author a structured, framework-agnostic screen specification as
|
|
6
6
|
**Markdown** (single output format). Knows the conceptual screen structure, the
|
|
7
7
|
kind/region vocabulary, the authoring rules, design-system / theme / variant
|
|
8
|
-
handling, and the exact Markdown render format.
|
|
9
|
-
|
|
10
|
-
`
|
|
8
|
+
handling, and the exact Markdown render format. Two landing zones, same render:
|
|
9
|
+
in SPEC (`spec-refine-loop`) it authors the `## UI spec` section of the spec doc;
|
|
10
|
+
in PLAN (`plan-new-loop`/`plan-refine-loop`) it authors per-screen **design
|
|
11
|
+
SPECs** (`NNN-SPEC-<SLUG>.md`) as session artifacts. Use when a loop is refining
|
|
12
|
+
a spec or building/refining a plan that involves screens, forms, dashboards,
|
|
13
|
+
modals or any UI surface. Recycled from the `ui-spec-generator` service.
|
|
11
14
|
---
|
|
12
15
|
|
|
13
16
|
# ui-spec — UI spec authoring
|
|
@@ -22,13 +25,18 @@ Dado un requerimiento de UI, autorar una **descripción estructurada en Markdown
|
|
|
22
25
|
|
|
23
26
|
## Composed by
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
Dos niveles, misma capacidad:
|
|
29
|
+
|
|
30
|
+
- **`spec-refine-loop`** (ver `../../loops/spec-refine-loop/SKILL.md`) — al resolver el gap **UI sin especificar** (cuando el requerimiento involucra UI): autora la sección `## UI spec` **del spec** (el *qué* de la UI, pantallas a grano grueso).
|
|
31
|
+
- **`plan-new-loop` · `plan-refine-loop`** (ver `../../loops/plan-new-loop/SKILL.md` § *Delta 4*) — al resolver el gap **UI sin design SPEC** (cuando el **plan incluye UI**): autora **design SPECs** por pantalla (`NNN-SPEC-<SLUG>.md`) como **artefactos de la sesión de PLAN** (ver `../../artifacts/artifacts-design/SPEC.md`); derivan de `## UI spec` si existe.
|
|
32
|
+
|
|
33
|
+
En ambos, el loop aporta lo que el servicio viejo no tenía:
|
|
26
34
|
|
|
27
35
|
- **Pregunta al humano** (design-system, tema, ambigüedades de pantalla) vía *structured-choice* (capacidad del arnés — ver `../../harness/SKILL.md`). En **Claude Code** es `AskUserQuestion` (máx 4 preguntas/llamada → **≤3 preguntas de contenido + 1 control `flow`**); en un arnés sin elección estructurada, degrada a **markdown numerado**.
|
|
28
36
|
- **Itera** gap-driven hasta converger.
|
|
29
37
|
- Ofrece **variantes** y **cura** el resultado.
|
|
30
38
|
|
|
31
|
-
Cualquier loop podría componerla;
|
|
39
|
+
Cualquier loop podría componerla; los casos primarios son SPEC y PLAN. En SPEC, la descripción aterriza como sección del documento spec (`docs/specs/NNN-spec-<slug>.md`) — el spec sigue siendo un documento (invariante 3). En PLAN aterriza como **design SPECs** (artefactos de sesión) — que **no** son el requirement-spec: son el detalle de diseño por pantalla, de proceso.
|
|
32
40
|
|
|
33
41
|
## Knowledge
|
|
34
42
|
|
|
@@ -114,9 +122,16 @@ Si el humano no responde, asumir el caso más simple coherente con la descripci
|
|
|
114
122
|
- **Registros** (table)
|
|
115
123
|
```
|
|
116
124
|
|
|
117
|
-
## Output —
|
|
125
|
+
## Output — dos aterrizajes, un solo formato (Markdown)
|
|
126
|
+
|
|
127
|
+
**Salida en un solo formato: Markdown.** La escribe el loop (no esta skill por sí sola). El **render es el mismo** en ambos niveles; cambia dónde aterriza, según el loop que compone:
|
|
128
|
+
|
|
129
|
+
| Loop que compone | Aterriza en | Grano |
|
|
130
|
+
|---|---|---|
|
|
131
|
+
| `spec-refine-loop` | sección `## UI spec` **del spec** (`docs/specs/NNN-spec-<slug>.md`) — documento, in place | todas las pantallas del requerimiento, grano grueso |
|
|
132
|
+
| `plan-new-loop` · `plan-refine-loop` | **design SPECs** `NNN-SPEC-<SLUG>.md` — artefactos en la **sesión de PLAN** (uno **por pantalla**, con encabezado de traza; ver `../../artifacts/artifacts-design/SPEC.md`) | una pantalla por archivo, detalle ejecutable |
|
|
118
133
|
|
|
119
|
-
|
|
134
|
+
Encabezar la sección (o el encabezado de traza del SPEC) con las opciones de diseño elegidas (design system, tema, idioma) en una línea. Luego el render Markdown, con estas reglas exactas (recicladas del `MarkdownFormatter`):
|
|
120
135
|
|
|
121
136
|
- `# {nombre}`
|
|
122
137
|
- `**Tipo**: {tipo} | **Plataforma**: {plataforma}`
|