@tacuchi/agent-workflow-cli 13.0.1 → 13.0.2
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tacuchi/agent-workflow-cli",
|
|
3
|
-
"version": "13.0.
|
|
3
|
+
"version": "13.0.2",
|
|
4
4
|
"description": "Agnostic runtime CLI for AI development workflows — a stages + loops + artifacts harness. Bundles the universal `w` skill set under `skills/w/` (slash commands `/w:*`: spec-new/spec-refine, plan-new/plan-exec, quick, workspace-init, export-*); `self install --target <host>` copies SKILL + commands + hooks into the host. Pluggable capability skills via `.workflow/skills.toml`. Multi-empresa parametrization via `profile.json` cascade. Namespace auto-detected from any `.<ns>/sessions/` dir in CWD; default `workflow`.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -61,7 +61,7 @@ Del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md), sin cambios:
|
|
|
61
61
|
|
|
62
62
|
## Internal sessions (managed)
|
|
63
63
|
|
|
64
|
-
- **plan-exec session** descriptor
|
|
64
|
+
- **plan-exec session** descriptor `<slug>-plan-exec` → `NNN-<slug>-plan-exec` (el `<slug>` sale del plan-doc de entrada `docs/plans/PPP-plan-<slug>.md`): **una sola session por run** (Type = `exec`). Dueña del run; posee `SESSION` + `CHECKPOINT` + `DECISION` + `SCRIPTS.sql` (+ `BACKLOG` solo si difiere). La investigación es **inline** dentro de esta session: produce `ANALYSIS-FILE`/`CONCLUSIONS` (+ `SCRIPTS.sql` read-only si consulta BD) en su propia carpeta.
|
|
65
65
|
|
|
66
66
|
> **Numeración**: el caller pasa solo el descriptor; el CLI antepone el `NNN` global y secuencial sobre `.workflow/sessions/` (ver chasis). No reinicia por tipo.
|
|
67
67
|
|
|
@@ -109,7 +109,7 @@ Distinción por **ejecución**, no por archivo (ver el esquema `SCRIPTS.sql`):
|
|
|
109
109
|
|
|
110
110
|
```
|
|
111
111
|
plan-exec-loop(PPP-plan-<slug>.md):
|
|
112
|
-
session = create_or_resume("plan-exec")
|
|
112
|
+
session = create_or_resume("<slug>-plan-exec") # <slug> del plan-doc; UNA sola session por run; CLI antepone NNN global; CHECKPOINT, resume
|
|
113
113
|
plan = read(PPP-plan-<slug>.md)
|
|
114
114
|
para cada Phase en plan (en orden, respeta deps):
|
|
115
115
|
si Phase done (todas sus Tasks - [x] en el plan): skip # resume vía checkbox del plan-doc
|
|
@@ -43,11 +43,11 @@ PLAN
|
|
|
43
43
|
Del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md), sin cambios:
|
|
44
44
|
|
|
45
45
|
- **Objetivo persistente + verification-first** del chasis: persigue su `SESSION.Objective` hasta que sus `SESSION.Success criteria` están **en verde** (sembrados al inicio; acá la rúbrica = **coherencia del plan**: cada Task traza a un acceptance criterion del spec). El motor es **gap-driven convergente** + **ciclo artifact-first** (sembrar `CHECKPOINT.Pending/Next` ANTES → `detect_gaps` → resolver → integrar → actualizar `Pending→Completed` DESPUÉS; gaps agotados con límite `MAX` no se re-disparan).
|
|
46
|
-
- **Una sola session por run**: descriptor
|
|
46
|
+
- **Una sola session por run**: descriptor `<slug>-plan-new` → `NNN-<slug>-plan-new` (Type = `refine`): `SESSION` + `CHECKPOINT` (+ `BACKLOG` solo si difiere). La **investigación es inline** dentro de esta session (produce `ANALYSIS-FILE`/`CONCLUSIONS` + `SCRIPTS.sql` read-only en su propia carpeta), no una session aparte.
|
|
47
47
|
- **Structured-choice**: ≤3 preguntas de contenido + 1 control `flow` (`Compactar`/`Cerrar`) siempre (capacidad del arnés — ver [`../../harness/SKILL.md`](../../harness/SKILL.md); en Claude Code es `AskUserQuestion`).
|
|
48
48
|
- **Ask-vs-research rule** + **research autónomo inline** + **regla BD** (pregunta MCP si >1 sin default → queries a `SCRIPTS.sql` → ejecuta read-only, `sql-mutation-guard`) + manejo de research **inconclusa** (degrada a humano / difiere a `Open questions` + límite `MAX`).
|
|
49
49
|
- **Compact / resume** y **artefactos como log vivo (ciclo artifact-first)** (`CHECKPOINT` siempre; `BACKLOG` solo si difiere).
|
|
50
|
-
- **Naming + numeración global** del chasis: `<run>` = descriptor `plan-new`. El CLI antepone el `NNN` global y secuencial (sin reiniciar por tipo); el caller pasa solo el descriptor.
|
|
50
|
+
- **Naming + numeración global** del chasis: `<run>` = descriptor `<slug>-plan-new`, donde `<slug>` sale del spec de entrada (`docs/specs/NNN-spec-<slug>.md`) → folder autodescriptivo `NNN-<slug>-plan-new`. El CLI antepone el `NNN` global y secuencial (sin reiniciar por tipo); el caller pasa solo el descriptor.
|
|
51
51
|
|
|
52
52
|
## Delta 1 — Deliverable: PLAN RICO (`PPP-plan-<slug>.md`)
|
|
53
53
|
|
|
@@ -88,7 +88,7 @@ El loop crea y maneja su session en `.workflow/sessions/`. El usuario nunca la c
|
|
|
88
88
|
|
|
89
89
|
| Session | When | Artifacts | Role |
|
|
90
90
|
|---|---|---|---|
|
|
91
|
-
| **refine session** `NNN
|
|
91
|
+
| **refine session** `NNN-<slug>-spec-refine/` | al arrancar el loop (o se reanuda) | `SESSION.md` · `CHECKPOINT.md` (· `BACKLOG.md` solo si difiere) | Dueña del run. Mantiene el avance vivo (CHECKPOINT) y habilita el resume. Type = `refine`. |
|
|
92
92
|
|
|
93
93
|
> **Research INLINE** — la investigación ya **no** es una session aparte: es una actividad **dentro de la session actual** que escribe sus artefactos (`ANALYSIS-FILE`/`CONCLUSIONS`, + `SCRIPTS.sql` read-only si consulta BD) **en la carpeta de la propia session del run**. Ver *Research: autonomy, scope & failure*.
|
|
94
94
|
|
|
@@ -98,14 +98,14 @@ El loop crea y maneja su session en `.workflow/sessions/`. El usuario nunca la c
|
|
|
98
98
|
|
|
99
99
|
### Numeración de sessions (regla dura, heredada por todos los loops)
|
|
100
100
|
|
|
101
|
-
El **CLI es dueño del número**: `aw session-create` antepone un `NNN` **global y secuencial** escaneando **todas** las sessions de `.workflow/sessions/` (cualquier tipo). El caller pasa **solo el descriptor** vía `--name` — **nunca** un número. Así la numeración no se reinicia por tipo ni colisiona (ej.: `
|
|
101
|
+
El **CLI es dueño del número**: `aw session-create` antepone un `NNN` **global y secuencial** escaneando **todas** las sessions de `.workflow/sessions/` (cualquier tipo). El caller pasa **solo el descriptor** vía `--name` — **nunca** un número. Así la numeración no se reinicia por tipo ni colisiona, y cada folder queda **autodescriptivo** con la forma `NNN-<slug>-<flow>` (ej.: `002-correo-otp-spec-refine`, `003-correo-otp-plan-new`, `004-correo-otp-plan-exec`, `005-validacion-correo-quick`).
|
|
102
102
|
|
|
103
|
-
> `<run>` = el **descriptor** (sin número) de la session del run
|
|
103
|
+
> `<run>` = el **descriptor** (sin número) de la session del run, siempre con forma **`<slug>-<flow>`**: `<slug>-spec-refine`, `<slug>-plan-new`, `<slug>-plan-exec`, `<slug>-quick`. El `<slug>` es **descriptivo** y sale del doc de entrada del flujo — `docs/specs/NNN-spec-<slug>.md` para spec-refine/plan-new; `docs/plans/PPP-plan-<slug>.md` para plan-exec; el prompt para quick — para que el folder diga de un vistazo de qué trata, no solo qué flujo lo creó. Como la investigación es **inline** en esta misma session, ya no hay sessions hijas `*-research-*` que numerar (compat: las viejas son históricas).
|
|
104
104
|
>
|
|
105
105
|
> **Resume**: localiza la session existente **escaneando** `.workflow/sessions/` por descriptor + `## Origin` (qué spec/plan), **no** reconstruyendo el número (que es global, no derivable del artefacto). `aw session-resume --code <NNN | folder>` resuelve ambas formas.
|
|
106
106
|
|
|
107
107
|
**CLI**:
|
|
108
|
-
- `aw session-create --type refine --name spec-refine` → crea `NNN
|
|
108
|
+
- `aw session-create --type refine --name <slug>-spec-refine` → crea `NNN-<slug>-spec-refine` / `aw session-resume --code <…>` (detecta `CHECKPOINT`).
|
|
109
109
|
- `aw checkpoint-write` / `aw checkpoint-read` para el resume.
|
|
110
110
|
- `aw session-close` al cerrar (con razón); `aw session-artifacts` para inspeccionar.
|
|
111
111
|
- **Reabrir para continuar** (contexto operativo, fila 2): `aw session-resume --code <NNN> --reopen` reactiva una sesión **cerrada** (quita `.closed` → activa) para seguir trabajando en ella; sin `--reopen`, el resume es read-only. Para detectar cuál es la más reciente cerrada: `aw resume-summary --include-recent-closed` (o `aw sessions --state all`).
|
|
@@ -205,7 +205,7 @@ La investigación es **inline**: una actividad **dentro de la session actual del
|
|
|
205
205
|
```
|
|
206
206
|
spec-refine-loop(spec):
|
|
207
207
|
input = glob(NNN-spec*.md) | argumento (ruta) # siempre el spec mismo (in place)
|
|
208
|
-
refine_session = create_or_resume("spec-refine")
|
|
208
|
+
refine_session = create_or_resume("<slug>-spec-refine") # <slug> del spec de entrada; CLI antepone NNN global; resume localiza por descriptor/origin
|
|
209
209
|
seed SESSION.Success criteria = acceptance criteria + checklist del analyze gate # verification-first: ANTES de iterar
|
|
210
210
|
work = read(input) (+ aplicar avance del checkpoint si reanuda)
|
|
211
211
|
attempts = {} # anti-relanzamiento por gap
|