@tacuchi/agent-workflow-cli 15.2.0 → 16.1.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.
Files changed (43) hide show
  1. package/dist/application/templates/session.js +1 -1
  2. package/package.json +1 -1
  3. package/skills/w/README.md +14 -14
  4. package/skills/w/SKILL.md +94 -82
  5. package/skills/w/artifacts/README.md +1 -1
  6. package/skills/w/artifacts/artifacts-core/CHECKPOINT.md +15 -13
  7. package/skills/w/artifacts/artifacts-core/SESSION.md +1 -1
  8. package/skills/w/artifacts/artifacts-core/TASKS.md +1 -1
  9. package/skills/w/artifacts/artifacts-research/CONCLUSIONS.md +1 -1
  10. package/skills/w/commands/README.md +22 -22
  11. package/skills/w/commands/export-diagrams.md +9 -9
  12. package/skills/w/commands/export-manuals.md +9 -9
  13. package/skills/w/commands/export-reports.md +9 -9
  14. package/skills/w/commands/export-scripts.md +9 -9
  15. package/skills/w/commands/fix-git.md +12 -12
  16. package/skills/w/commands/plan-exec.md +19 -19
  17. package/skills/w/commands/plan-new.md +18 -18
  18. package/skills/w/commands/plan-refine.md +22 -22
  19. package/skills/w/commands/quick.md +16 -16
  20. package/skills/w/commands/spec-new.md +35 -34
  21. package/skills/w/commands/spec-refine.md +16 -16
  22. package/skills/w/commands/status.md +18 -16
  23. package/skills/w/commands/workspace-init.md +14 -14
  24. package/skills/w/exports/README.md +5 -5
  25. package/skills/w/exports/export-diagrams/SKILL.md +58 -58
  26. package/skills/w/exports/export-manuals/SKILL.md +61 -61
  27. package/skills/w/exports/export-reports/SKILL.md +51 -51
  28. package/skills/w/exports/export-scripts/SKILL.md +60 -60
  29. package/skills/w/harness/SKILL.md +48 -47
  30. package/skills/w/loops/CHASSIS.md +103 -98
  31. package/skills/w/loops/CODE-POLICIES.md +21 -21
  32. package/skills/w/loops/README.md +30 -29
  33. package/skills/w/loops/plan-exec-loop/SKILL.md +77 -77
  34. package/skills/w/loops/plan-new-loop/SKILL.md +80 -80
  35. package/skills/w/loops/plan-refine-loop/SKILL.md +62 -62
  36. package/skills/w/loops/quick-loop/SKILL.md +79 -79
  37. package/skills/w/loops/spec-refine-loop/SKILL.md +93 -94
  38. package/skills/w/roles/README.md +2 -2
  39. package/skills/w/roles/diagrams/SKILL.md +50 -47
  40. package/skills/w/roles/git/SKILL.md +58 -58
  41. package/skills/w/roles/research/SKILL.md +65 -62
  42. package/skills/w/roles/sql/SKILL.md +59 -55
  43. package/skills/w/roles/ui-spec/SKILL.md +60 -74
@@ -45,7 +45,7 @@ ${renderOriginSection(values.origin)}
45
45
  ${values.type}
46
46
 
47
47
  ## Success criteria
48
- <!-- Verification-first done-condition, seeded BEFORE executing: falsifiable [ ] items (tests for code, a by-inspection rubric for analysis/design). The loop persists until all are green. -->
48
+ <!-- Verification-first done-condition, seeded BEFORE executing: falsifiable [ ] items (tests for code, a by-inspection rubric for analysis/design). The loop persists until all are green and flips each to [x] at the convergence gate; replace this comment when filling. -->
49
49
  - [ ]
50
50
  `;
51
51
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tacuchi/agent-workflow-cli",
3
- "version": "15.2.0",
3
+ "version": "16.1.0",
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": {
@@ -1,26 +1,26 @@
1
1
  # w — agent-workflow skill bundle
2
2
 
3
- > El bundle `w` (`w` = *workflow*) empaqueta el arnés agent-workflow como skills de Claude Code + slash commands `/w:`. Runtime: [`@tacuchi/agent-workflow-cli`](../../README.md) (`agent-workflow` / `aw`).
3
+ > The `w` bundle (`w` = *workflow*) packages the agent-workflow harness as Claude Code skills + `/w:` slash commands. Runtime: [`@tacuchi/agent-workflow-cli`](../../README.md) (`agent-workflow` / `aw`).
4
4
 
5
- Implementa el modelo **stages + loops + artifacts**. La fuente de diseño vive en `docs/referencias/` del hub de agent-workflow. Este README es el índice del bundle; la normativa vive en sus docs canónicos:
5
+ It implements the **stages + loops + artifacts** model. The design source lives under `docs/referencias/` in the agent-workflow hub. This README is the bundle index; the normative text lives in its canonical docs:
6
6
 
7
- - **Modelo completo** — 3 capas + zona `docs/`, los 3 flujos (SPEC/PLAN/QUICK), comandos, capacidades componibles y los 6 invariantes duros: [`SKILL.md`](SKILL.md) (la skill de orientación `workflow`).
8
- - **Motor de los loops** — objetivo persistente + verification-first, gap-driven, sessions, structured-choice, compact/resume, políticas git/BD/gate de revisión: [`loops/CHASSIS.md`](loops/CHASSIS.md) (los 5 loops son heirs).
9
- - **Binding capacidad→arnés** (Claude Code / Codex / Gemini-Antigravity / OpenCode / Crush / Warp): [`harness/SKILL.md`](harness/SKILL.md).
7
+ - **Full model** — 3 layers + `docs/` zone, the 3 flows (SPEC/PLAN/QUICK), commands, composable capabilities and the 6 hard invariants: [`SKILL.md`](SKILL.md) (the `workflow` orientation skill).
8
+ - **Loop engine** — persistent objective + verification-first, gap-driven, sessions, structured-choice, compact/resume, git/DB/review-gate policies: [`loops/CHASSIS.md`](loops/CHASSIS.md) (the 5 loops are heirs) + [`loops/CODE-POLICIES.md`](loops/CODE-POLICIES.md).
9
+ - **Capability→harness binding** (Claude Code / Codex / Gemini-Antigravity / OpenCode / Crush / Warp): [`harness/SKILL.md`](harness/SKILL.md).
10
10
 
11
11
  ## Folders
12
12
 
13
13
  | Folder | Layer | Contains |
14
14
  |---|---|---|
15
- | [`commands/`](commands/) | 1 | Los slash commands `/w:` que invoca el usuario |
16
- | [`loops/`](loops/) | 2 | [`CHASSIS.md`](loops/CHASSIS.md) (el motor) + los 5 loop heirs que corre la IA |
17
- | [`exports/`](exports/) | 1 | La familia `export-*` — única vía artefacto→`docs/` |
18
- | [`roles/`](roles/) | cross-cutting | Capacidades enchufables (defaults built-in; rebindeables vía `.workflow/skills.toml`) |
19
- | [`harness/`](harness/SKILL.md) | cross-cutting | Binding capacidadmecanismo por arnés |
20
- | [`artifacts/`](artifacts/) | 3 | Plantillas de artefactos de session que manejan los loops |
21
- | [`hooks/`](hooks/) | — | Plantilla de hooks del host (branch-check, sql-mutation-guard, checkpoint, …) |
22
- | [`SKILL.md`](SKILL.md) | overview | La skill de orientación `workflow` (guía del modelo completo) |
15
+ | [`commands/`](commands/) | 1 | The `/w:` slash commands the user invokes |
16
+ | [`loops/`](loops/) | 2 | [`CHASSIS.md`](loops/CHASSIS.md) (the engine) + the 5 loop heirs the AI runs |
17
+ | [`exports/`](exports/) | 1 | The `export-*` family the only artifact→`docs/` path |
18
+ | [`roles/`](roles/) | cross-cutting | Pluggable capabilities (built-in defaults; rebindable via `.workflow/skills.toml`) |
19
+ | [`harness/`](harness/SKILL.md) | cross-cutting | Capabilitymechanism binding per harness |
20
+ | [`artifacts/`](artifacts/) | 3 | Session artifact templates the loops manage |
21
+ | [`hooks/`](hooks/) | — | Host hook template (branch-check, sql-mutation-guard, checkpoint, …) |
22
+ | [`SKILL.md`](SKILL.md) | overview | The `workflow` orientation skill (guide to the full model) |
23
23
 
24
24
  ## Bootstrap
25
25
 
26
- Correr [`/w:workspace-init`](commands/workspace-init.md) una vez para convertir una carpeta en workspace (`.workflow/` + taxonomía `docs/` + bloque `WORKSPACE` + `.workflow/skills.toml`). Sin distinción project/hub — un workspace tiene 1+ fuentes.
26
+ Run [`/w:workspace-init`](commands/workspace-init.md) once to turn a folder into a workspace (`.workflow/` + `docs/` taxonomy + `WORKSPACE` block + `.workflow/skills.toml`). No project/hub distinction a workspace has 1+ sources.
package/skills/w/SKILL.md CHANGED
@@ -19,116 +19,116 @@ description: >-
19
19
 
20
20
  ## Purpose
21
21
 
22
- Explicar el **modelo completo** de agent-workflow para que un agente sepa: qué invoca el usuario, qué corre la IA, dónde aterriza cada entregable, y qué reglas no se rompen. Es el mapa; el detalle fino vive en cada loop/command/export/role.
22
+ Explain the **complete model** of agent-workflow so an agent knows: what the user invokes, what the AI runs, where every deliverable lands, and which rules never break. This is the map; the fine detail lives in each loop/command/export/role.
23
23
 
24
24
  ## Composed by
25
25
 
26
- Cualquiera que necesite orientación un loop al arrancar, un agente nuevo en el workspace, o el usuario preguntando "¿cómo funciona esto?".
26
+ Anyone needing orientationa loop at start, a new agent in the workspace, or the user asking "how does this work?".
27
27
 
28
28
  ## Knowledge
29
29
 
30
- ### Workspace (sin modos)
30
+ ### Workspace (no modes)
31
31
 
32
- Un solo concepto: **workspace**. No hay project/hub. La carpeta donde arranca el agente se vuelve workspace con `/w:workspace-init` (scaffolding `.workflow/` + `docs/` + bloque `WORKSPACE` en CLAUDE.md + `.workflow/skills.toml`). Tiene 1+ fuentes (repos); "standalone" = una sola fuente.
32
+ A single concept: **workspace**. There is no project/hub split. The folder where the agent starts becomes a workspace with `/w:workspace-init` (scaffolding `.workflow/` + `docs/` + the `WORKSPACE` block in CLAUDE.md + `.workflow/skills.toml`). It has 1+ sources (repos); "standalone" = a single source.
33
33
 
34
34
  ### The 3-layer architecture + `docs/` zone
35
35
 
36
36
  ```
37
- USUARIO invoca
38
- LAYER 1 · COMMANDS (lo único que el usuario invoca)
37
+ USER invokes
38
+ LAYER 1 · COMMANDS (the only thing the user invokes)
39
39
  FLOWS: spec-new · spec-refine · plan-new · plan-refine · plan-exec · quick
40
40
  EXPORTS: export-scripts · export-manuals · export-diagrams · export-reports
41
- arranca / delega
41
+ starts / delegates
42
42
 
43
- LAYER 2 · LOOPS (los corre la IA, gap-driven; motor: loops/CHASSIS.md)
43
+ LAYER 2 · LOOPS (the AI runs them, gap-driven; engine: loops/CHASSIS.md)
44
44
  spec-refine-loop · plan-new-loop · plan-refine-loop · plan-exec-loop · quick-loop
45
- crea / lee / escribe
45
+ creates / reads / writes
46
46
 
47
- LAYER 3 · SESSIONS + ARTIFACTS (.workflow/sessions/ — efímero, interno)
48
- los export-* leen artefactos
47
+ LAYER 3 · SESSIONS + ARTIFACTS (.workflow/sessions/ — ephemeral, internal)
48
+ the export-* read the artifacts
49
49
 
50
- ZONA docs/ — documentos permanentes, cara al usuario
51
- specs · plans (flujos) · scripts · manuals · diagrams · reports (export-*) · tools (ambiente)
50
+ docs/ ZONE permanent, user-facing documents
51
+ specs · plans (flows) · scripts · manuals · diagrams · reports (export-*) · tools (ambient)
52
52
  ```
53
53
 
54
- - **Layer 1** — alto nivel. Single-pass o arranca un loop. Sin lógica de iteración.
55
- - **Layer 2** — la IA itera entera hasta converger. Sin invocación humana directa.
56
- - **Layer 3** — efímero, interno, process-only. Nadie lo invoca a mano.
54
+ - **Layer 1** — high level. Single-pass or starts a loop. No iteration logic.
55
+ - **Layer 2** — the AI iterates end to end until convergence. No direct human invocation.
56
+ - **Layer 3** — ephemeral, internal, process-only. Nobody invokes it by hand.
57
57
 
58
58
  ### The 3 flows
59
59
 
60
- | Flow | Commands | docs/ propio | Loops |
60
+ | Flow | Commands | Own docs/ | Loops |
61
61
  |---|---|---|---|
62
- | **SPEC** (el *qué*) | `spec-new` *(single-pass)* · `spec-refine` | `docs/specs` | `spec-refine-loop` |
63
- | **PLAN** (el *cómo* + ejecutar) | `plan-new` · `plan-refine` *(aux, opcional)* · `plan-exec` | `docs/plans` | `plan-new-loop` · `plan-refine-loop` · `plan-exec-loop` |
64
- | **QUICK** (atajo liviano) | `quick` | — | `quick-loop` |
62
+ | **SPEC** (the *what*) | `spec-new` *(single-pass)* · `spec-refine` | `docs/specs` | `spec-refine-loop` |
63
+ | **PLAN** (the *how* + execute) | `plan-new` · `plan-refine` *(aux, optional)* · `plan-exec` | `docs/plans` | `plan-new-loop` · `plan-refine-loop` · `plan-exec-loop` |
64
+ | **QUICK** (lightweight shortcut) | `quick` | — | `quick-loop` |
65
65
 
66
- Cadena típica: prompt → `spec-new` genera `docs/specs/NNN-spec-<slug>.md` → `spec-refine` corre el loop y refina **ese mismo spec in place** → `plan-new` → `docs/plans/PPP-plan-<slug>.md` → *(opcional)* `plan-refine` ajusta **ese mismo plan in place** si hay cambios antes de ejecutar → `plan-exec` ejecuta y actualiza el plan (living doc) + artefactos en sesiones. La promoción del resto a `docs/` es **siempre** un paso aparte vía `export-*`.
66
+ Typical chain: prompt → `spec-new` generates `docs/specs/NNN-spec-<slug>.md` → `spec-refine` runs the loop and refines **that same spec in place** → `plan-new` → `docs/plans/PPP-plan-<slug>.md` → *(optional)* `plan-refine` adjusts **that same plan in place** if changes arise before executing → `plan-exec` executes and updates the plan (living doc) + artifacts in sessions. Promoting anything else to `docs/` is **always** a separate step via `export-*`.
67
67
 
68
- QUICK puede **escalar en vivo a SPEC** si el objetivo excede un quick (gate de tamaño a la entrada) o la tarea crece mid-loop: con consentimiento vía structured-choice, la línea de trabajo pasa al flujo SPEC (borrador por procedimiento `spec-new` + `spec-refine-loop` directo); a PLAN la escalación queda **diferida** (siembra + puntero). Ver `loops/quick-loop/SKILL.md` § *Delta QUICK*.
68
+ QUICK can **escalate live to SPEC** when the objective exceeds a quick (entry size gate) or the task grows mid-loop: with consent via structured-choice, the work line moves to the SPEC flow (draft via the `spec-new` procedure + `spec-refine-loop` directly); escalation to PLAN stays **deferred** (seed + pointer). See `loops/quick-loop/SKILL.md` § *QUICK delta*.
69
69
 
70
- ### Contexto operativodónde aterriza cada cosa
70
+ ### Operating contextwhere everything lands
71
71
 
72
- Antes de cualquier loop, la IA resuelve su **contexto operativo** en **cada prompt** con dos detecciones: **¿workspace?** (existe `.<ns>/sessions/`) + **¿sesión a continuar?** (una activa, o una reciente que este prompt continúa). Eso decide el comportamiento y **dónde aterrizan los artefactos** (SQL, scripts, decisiones, …):
72
+ Before any loop, the AI resolves its **operating context** on **every prompt** with two detections: **workspace?** (`.<ns>/sessions/` exists) + **session to continue?** (an active one, or a recent one this prompt continues). That decides the behavior and **where artifacts land** (SQL, scripts, decisions, …):
73
73
 
74
- | ¿Workspace? | Trigger | → Comportamiento + ruteo |
74
+ | Workspace? | Trigger | → Behavior + routing |
75
75
  |---|---|---|
76
- | **Sí** | **comando de flujo** (`quick`·`spec-*`·`plan-*`) | **nueva línea de trabajo** → crea sesión **nueva** (salvo re-run del mismo flujo sobre la misma entrada: `create_or_resume` reabre la existente), arranca el loop → artefactos a **esa** sesión (`SCRIPTS.sql`, …) |
77
- | **Sí** | **prompt sin comando** (relacionado) | **continúa/reabre la sesión más reciente** → los scripts editan **su** `SCRIPTS.sql` (no crea otra) |
78
- | **Sí** | **prompt sin comando** (no-relacionado / sin sesión) | **sin flujo**: trabajo directoescribe en `docs/` por convención + numeración (`aw next-number`) |
79
- | **No** | cualquiera | **vanilla** — sin workspace ni flujo, la IA es libre (nativo) |
76
+ | **Yes** | **flow command** (`quick`·`spec-*`·`plan-*`) | **new work line** → creates a **new** session (except re-running the same flow over the same input: `create_or_resume` reopens the existing one), starts the loop → artifacts go to **that** session (`SCRIPTS.sql`, …) |
77
+ | **Yes** | **prompt with no command** (related) | **continues/reopens the most recent session** → scripts edit **its** `SCRIPTS.sql` (no new session) |
78
+ | **Yes** | **prompt with no command** (unrelated / no session) | **no flow**: direct workwrites into `docs/` by convention + numbering (`aw next-number`) |
79
+ | **No** | anything | **vanilla** — no workspace, no flow; the AI is free (native) |
80
80
 
81
- **Regla de continuidad** (fuente únicael chasis y los loops referencian acá):
81
+ **Continuity rule** (single sourcethe chassis and the loops reference here):
82
82
 
83
- 1. **Comando de flujo** = **nueva línea de trabajo** → sesión nueva.
84
- 2. **Excepción — re-run:** el mismo comando sobre la **misma entrada** (ej. `/w:spec-refine` sobre el mismo spec) **no** abre otra línea: `create_or_resume` localiza la sesión de ese flujo (descriptor + `## Origin`) y la **reanuda o reabre** (quita `.closed`), sin duplicarla.
85
- 3. **Excepción consentidaescalación:** la **escalación aceptada** dentro de un loop (ej. quick → SPEC) abre una **nueva línea de trabajo sin comando**; la señal es el **consentimiento explícito** del usuario en la structured-choice, equivalente a haber invocado el comando del flujo destino.
86
- 4. **Prompt sin comando** = "sigo en la misma" → continúa/reabre la sesión **más reciente** (la *última iniciada*).
87
- 5. Solo si el prompt es claramente **no-relacionado**: ofrecer elegir (`continuar NNN` | `trabajo nuevo`) o caer a "sin flujo".
88
- 6. La **convergencia cierra** la sesión; un prompt relacionado posterior la **reabre** (el resume quita `.closed`).
83
+ 1. **Flow command** = **new work line** → new session.
84
+ 2. **Exception — re-run:** the same command over the **same input** (e.g. `/w:spec-refine` over the same spec) does **not** open another line: `create_or_resume` locates that flow's session (descriptor + `## Origin`) and **resumes or reopens** it (removes `.closed`), never duplicating it.
85
+ 3. **Consented exceptionescalation:** an **accepted escalation** inside a loop (e.g. quick → SPEC) opens a **new work line without a command**; the signal is the user's **explicit consent** in the structured-choice, equivalent to having invoked the destination flow's command.
86
+ 4. **Prompt with no command** = "same line" → continue/reopen the **most recent** session (the *last started*).
87
+ 5. Only if the prompt is clearly **unrelated**: offer choosing (`continuar NNN` | `trabajo nuevo`) or fall to "no flow".
88
+ 6. **Convergence closes** the session; a later related prompt **reopens** it (resume removes `.closed`).
89
89
 
90
- Es la cara **inter-turno** del *objetivo persistente* (mismo `CHECKPOINT`+resume, aplicado al próximo prompt) — doctrina agnóstica, no un hook del host. Aplica a **todo artefacto** (`SCRIPTS.sql` es el ejemplo trabajado; caso QUICK: `loops/quick-loop/SKILL.md`).
90
+ It is the **inter-turn** face of the *persistent objective* (same `CHECKPOINT`+resume, applied to the next prompt) — agnostic doctrine, not a host hook. It applies to **every artifact** (`SCRIPTS.sql` is the worked example; QUICK case: `loops/quick-loop/SKILL.md`).
91
91
 
92
92
  ### The commands (`/w:` namespace)
93
93
 
94
- - `/w:workspace-init` — inicializa el workspace.
95
- - `/w:spec-new` — genera un spec inicial (single-pass, sin loop).
96
- - `/w:spec-refine` — arranca `spec-refine-loop` para refinar el spec.
97
- - `/w:plan-new` — arranca `plan-new-loop` para derivar un plan ejecutable del spec refinado.
98
- - `/w:plan-refine` — arranca `plan-refine-loop` para refinar el plan in place (auxiliar, **no obligatorio**) antes de ejecutar.
99
- - `/w:plan-exec` — arranca `plan-exec-loop` para ejecutar y mantener el plan.
100
- - `/w:quick` — arranca `quick-loop` (atajo, sin `docs/`; escala en vivo a SPEC si el objetivo excede un quick).
101
- - `/w:export-scripts` · `/w:export-manuals` · `/w:export-diagrams` · `/w:export-reports` — promueven artefactos a `docs/`.
94
+ - `/w:workspace-init` — initializes the workspace.
95
+ - `/w:spec-new` — generates an initial spec (single-pass, no loop).
96
+ - `/w:spec-refine` — starts `spec-refine-loop` to refine the spec.
97
+ - `/w:plan-new` — starts `plan-new-loop` to derive an executable plan from the refined spec.
98
+ - `/w:plan-refine` — starts `plan-refine-loop` to refine the plan in place (auxiliary, **not mandatory**) before executing.
99
+ - `/w:plan-exec` — starts `plan-exec-loop` to execute and maintain the plan.
100
+ - `/w:quick` — starts `quick-loop` (shortcut, no `docs/`; escalates live to SPEC when the objective exceeds a quick).
101
+ - `/w:export-scripts` · `/w:export-manuals` · `/w:export-diagrams` · `/w:export-reports` — promote artifacts to `docs/`.
102
102
 
103
103
  ### Transversal skills (no flow) — `/w:status` · `/w:fix-git`
104
104
 
105
- Skills **invocables independientes de flujo**: se disparan con `/w:` igual que un comando, pero **no** pertenecen a SPEC/PLAN/QUICK, **no** manejan `docs/`, y **no** entran en el conteo **6 comandos de flow / 5 loops**. *(En el bundle se empaquetan bajo `commands/` para que `/w:` las invoque; en el diseño son la categoría `workflow-skills/`.)*
105
+ **Flow-independent invocable** skills: triggered with `/w:` like any command, but they do **not** belong to SPEC/PLAN/QUICK, do **not** manage `docs/`, and do **not** count in **6 flow commands / 5 loops**. *(In the bundle they are packaged under `commands/` so `/w:` can invoke them; in the design they are the `workflow-skills/` category.)*
106
106
 
107
- - `/w:status` — dashboard read-only del workspace (Hecho/Falta/Descartó, con fechas en español). No escribe nada; se apoya en `aw status`.
108
- - `/w:fix-git` — resuelve conflictos de un merge en curso en cualquier repo (identifica origendestino, analiza intención, *structured-choice* ante ambigüedad). No crea session, no toca `docs/`; git-safe; se apoya en `aw merge-state`.
107
+ - `/w:status` — read-only workspace dashboard (Done/Missing/Discarded, dates humanized in the user's language). Writes nothing; backed by `aw status`.
108
+ - `/w:fix-git` — resolves an in-progress merge's conflicts in any repo (identifies origindestination, analyzes intent, *structured-choice* on ambiguity). No session, never touches `docs/`; git-safe; backed by `aw merge-state`.
109
109
 
110
110
  ### The loops (Layer 2)
111
111
 
112
- Un loop es una skill que enseña a la IA **cómo iterar** hasta un entregable: detecta huecos, los resuelve (humano vía structured-choice, research inline o una capacidad compuesta), integra y repite hasta converger. Los 5 loops corren el mismo **motor común** — objetivo persistente + verification-first, gap-driven convergente, session única por run, structured-choice + control `flow` (`Compactar`/`Cerrar`), compact/resume, artefactos como log vivo, convergence gate — cuyo canon vive en [`loops/CHASSIS.md`](loops/CHASSIS.md); cada loop es un **heir** que agrega solo sus deltas.
112
+ A loop is a skill that teaches the AI **how to iterate** to a deliverable: detect gaps, resolve them (human via structured-choice, inline research or a composed capability), integrate and repeat until convergence. The 5 loops run the same **common engine** — persistent objective + verification-first, gap-driven convergent, single session per run, structured-choice + `flow` control (`Compactar`/`Cerrar`), compact/resume, artifacts as a live log, convergence gate — whose canon lives in [`loops/CHASSIS.md`](loops/CHASSIS.md); each loop is an **heir** adding only its deltas.
113
113
 
114
- Los loops que **editan código** (`plan-exec-loop`, `quick-loop`) aplican además las *Políticas de loops que editan código*: git seguro, BD solo-scripts y el **gate de revisión de cierre** pre-commit (nada llega a un commit propuesto sin revisar) — ver [`loops/CODE-POLICIES.md`](loops/CODE-POLICIES.md) (doc hermano del chasis; los loops de documento no lo cargan).
114
+ The **code-editing** loops (`plan-exec-loop`, `quick-loop`) additionally apply the *code-editing loop policies*: safe git, DB scripts-only and the pre-commit **closing review gate** (nothing reaches a proposed commit unreviewed) — see [`loops/CODE-POLICIES.md`](loops/CODE-POLICIES.md) (the chassis' sibling doc; document loops do not load it).
115
115
 
116
- `spec-new` no tiene loop (single-pass): **6 comandos / 5 loops**.
116
+ `spec-new` has no loop (single-pass): **6 commands / 5 loops**.
117
117
 
118
- ### The `export-*` family (única vía artefacto → `docs/`)
118
+ ### The `export-*` family (the only artifact → `docs/` path)
119
119
 
120
- | Export | Lee | Produce |
120
+ | Export | Reads | Produces |
121
121
  |---|---|---|
122
- | `export-scripts` | `SCRIPTS.sql` (migraciones) de N sesiones | `docs/scripts/` (forwards numerados + `00-ROLLBACK.sql`) |
123
- | `export-manuals` | sesiones + decisiones + plan + código | `docs/manuals/` |
124
- | `export-diagrams` | código de las fuentes + plan (AS-IS/TO-BE) | `docs/diagrams/` (C4 / mermaid) |
125
- | `export-reports` | corpus de sesiones + plan + `docs/` | `docs/reports/` (informe ejecutivo/funcional) |
122
+ | `export-scripts` | `SCRIPTS.sql` (migrations) from N sessions | `docs/scripts/` (numbered forwards + `00-ROLLBACK.sql`) |
123
+ | `export-manuals` | sessions + decisions + plan + code | `docs/manuals/` |
124
+ | `export-diagrams` | source code + plan (AS-IS/TO-BE) | `docs/diagrams/` (C4 / mermaid) |
125
+ | `export-reports` | session corpus + plan + `docs/` | `docs/reports/` (executive/functional report) |
126
126
 
127
- Comunes: Capa 1, explícitos (los invoca el usuario, nunca un loop) · single-pass, read-only sobre sesiones · cross-session (consolidan N sesiones + `docs/`) · sin loop ni sessions internas (opciones por args).
127
+ Common: Layer 1, explicit (user-invoked, never by a loop) · single-pass, read-only over sessions · cross-session (consolidate N sessions + `docs/`) · no loop, no internal sessions (options via args).
128
128
 
129
129
  ### Capability skills + `.workflow/skills.toml`
130
130
 
131
- Un loop **no** compone una skill concreta; compone una **capacidad por su rol** (ej. `ui-design`). Qué skill cumple el rol lo decide la config, no el loop. Cambiar de implementación = una línea del config.
131
+ A loop does **not** compose a concrete skill; it composes a **capability by its role** (e.g. `ui-design`). Which skill fulfills the role is decided by config, never by the loop. Swapping implementations = one config line.
132
132
 
133
133
  ```toml
134
134
  [skills]
@@ -136,54 +136,66 @@ ui-design = "ui-spec" # built-in default
136
136
  sql = "sql"
137
137
  git = "git"
138
138
  research = "research"
139
- # diagrams = "off" # ← capacidad desactivada
140
- # ui-design = "acme/figma-spec" # ← skill de tercero (vía skills.sh)
139
+ # diagrams = "off" # ← capability disabled
140
+ # ui-design = "acme/figma-spec" # ← third-party skill (via skills.sh)
141
141
  ```
142
142
 
143
- **Cascada de resolución**: built-in default → `~/.workflow/skills.toml` (global, PC) → `.workflow/skills.toml` (workspace). El workspace pisa al global; el global al default. Rol sin binding → built-in default. `off` → desactivada (el loop sigue sin ella; si era necesaria, lo dice o pregunta).
143
+ **Resolution cascade**: built-in default → `~/.workflow/skills.toml` (global, machine) → `.workflow/skills.toml` (workspace). Workspace overrides global; global overrides default. Unbound role → built-in default. `off` → disabled (the loop continues without it; if it was needed, it says so or asks).
144
144
 
145
- Catálogo de roles y su default:
145
+ Role catalog and defaults:
146
146
 
147
147
  | Role | Default | Tier | Composed by |
148
148
  |---|---|---|---|
149
149
  | `ui-design` | `ui-spec` | must | `spec-refine-loop` (UI) · `plan-new-loop` / `plan-refine-loop` (design SPECs) |
150
150
  | `sql` | `sql` | must | research · `plan-exec-loop` · `quick-loop` · `export-scripts` |
151
151
  | `git` | `git` | must | `plan-exec-loop` · `quick-loop` |
152
- | `research` | `research` | should | todos los loops (capacidad inline) |
152
+ | `research` | `research` | should | every loop (inline capability) |
153
153
  | `diagrams` | `diagrams` | should | `export-diagrams` |
154
- | `overview` | `workflow` | should | cualquiera (orientación) |
154
+ | `overview` | `workflow` | should | anyone (orientation) |
155
155
 
156
- > **Convenciones ambientes (no roles):** estándares de código/testing/redacción y `creating-tools` son skills standalone que el host auto-descubre por su `description` — el workflow no las bindea ni depende de ellas. Doctrina completa: [roles/README.md](roles/README.md).
156
+ > **Ambient conventions (not roles):** code/testing/writing standards and `creating-tools` are standalone skills the host auto-discovers by `description` — the workflow neither binds nor depends on them. Full doctrine: [roles/README.md](roles/README.md).
157
157
 
158
- El **chasis del loop** NO se bindea: es el motor común de los 5 loops ([`loops/CHASSIS.md`](loops/CHASSIS.md), un doc referenciado), no una capacidad enchufable.
158
+ The **loop chassis** is NOT bound: it is the common engine of the 5 loops ([`loops/CHASSIS.md`](loops/CHASSIS.md), a referenced doc), not a pluggable capability.
159
159
 
160
- ### Harness (agnóstico al arnés)
160
+ ### Harness (harness-agnostic)
161
161
 
162
- La doctrina nombra **capacidades** abstractas, no tools concretos de un arnés. Un solo doc —`harness/SKILL.md`— liga cada capacidad al mecanismo de cada arnés (Claude Code, Codex, Gemini/Antigravity, OpenCode, Crush, Warp, genérico). Dos principios: **capacidad-no-tool** (los loops/comandos referencian la capacidad por nombre) y **progressive-enhancement** (usar el mecanismo más rico del arnés; degradar a un fallback universal cuando no exista).
162
+ The doctrine names abstract **capabilities**, never a concrete harness tool. A single doc —`harness/SKILL.md`— binds each capability to each harness's mechanism (Claude Code, Codex, Gemini/Antigravity, OpenCode, Crush, Warp, generic). Two principles: **capability-not-tool** (loops/commands reference the capability by name) and **progressive-enhancement** (use the harness's richest mechanism; degrade to a universal fallback when it does not exist).
163
163
 
164
- Capacidades clave:
164
+ Key capabilities:
165
165
 
166
- - **structured-choice** — preguntar al humano ≤3 preguntas de contenido + 1 control `flow`. Claude Code: `AskUserQuestion`. Fallback: markdown numerado.
167
- - **compaction** — encoger el contexto sin perder el hilo. Claude Code: `/compact`. Fallback: `CHECKPOINT` + resume.
166
+ - **structured-choice** — ask the human ≤3 content questions + 1 `flow` control. Claude Code: `AskUserQuestion`. Fallback: numbered markdown.
167
+ - **compaction** — shrink the context without losing the thread. Claude Code: `/compact`. Fallback: `CHECKPOINT` + resume.
168
168
  - **command-invocation** · **procedure-loading** · **subagent-dispatch** (opt.) · **persistent-context** · **external-data** (MCP) · **dry-run/preview**.
169
169
 
170
- Las únicas `must` para el ciclo de un loop son **structured-choice** y **compaction**, y ambas degradan a textocualquier arnés con chat + archivos corre el modelo completo. Detalle, matriz de binding y distribución (`AGENTS.md` canónico + symlink `CLAUDE.md`): ver `harness/SKILL.md`.
170
+ The only `must` capabilities for a loop's cycle are **structured-choice** and **compaction**, and both degrade to textany harness with chat + files runs the full model. Detail, binding matrix and distribution (canonical `AGENTS.md` + `CLAUDE.md` symlink): see `harness/SKILL.md`.
171
+
172
+ ### Language policy (per surface)
173
+
174
+ One language per plane — never mix them:
175
+
176
+ | Surface | Language |
177
+ |---|---|
178
+ | Doctrine (this bundle: chassis, loops, commands, roles, exports, harness) | **English** |
179
+ | **Section headings** of artifacts and docs (`## Requirement`, `## Completed`, …) | **English** (parse contract) |
180
+ | Everything **user-facing**: structured-choice questions, reports, dashboards, the **content** the AI writes into artifacts and `docs/` deliverables, commit messages | **the user's language** (this product: Spanish) |
181
+ | Literal option labels (`Compactar`, `Cerrar`, `Guardar plan`, …) | canonical product strings — use them **verbatim** |
182
+ | Domain terms (class/route/table names, e.g. the QTC fleet) | the domain's ubiquitous language (Spanish) — never translated |
171
183
 
172
184
  ### The 6 hard invariants
173
185
 
174
- 1. **Sin auto-export** — los loops nunca graduan/exportan a `docs/`. Solo `export-*` lo hace, explícito.
175
- 2. **Cada flujo toca solo sus carpetas `docs/`** — SPEC→`specs` · PLAN→`plans` · QUICK→ninguna · resto→`export-*`. (`docs/tools` no es de un flujo: lo escribe la skill ambiente `creating-tools`.)
176
- 3. **El spec y el plan son documentos** (`docs/`), no artefactos de sesión. *(No confundir con los **design SPECs** `NNN-SPEC-<SLUG>.md`: artefactos de diseño de UI **por pantalla** que las sesiones de PLAN producen vía la capacidad `ui-design` cuando el plan incluye UI — ver `artifacts/artifacts-design/` — no son el requirement-spec.)*
177
- 4. **BD solo-scripts** — la IA nunca ejecuta DML/DDL; las migraciones quedan en `SCRIPTS.sql` y las aplica el usuario. Solo lecturas read-only vía MCP.
178
- 5. **Git seguro** — rama esperada verificada antes de editar; commits propuestos por fuente; nunca `push`/`--amend`/`--no-verify`.
179
- 6. **Chasis de loops** — los 5 loops corren el mismo **motor común**; cada loop es un heir que agrega solo sus deltas, nada del motor se re-declara. Detalle: `loops/CHASSIS.md`.
186
+ 1. **No auto-export** — loops never graduate/export to `docs/`. Only `export-*` does, explicitly.
187
+ 2. **Each flow touches only its `docs/` folders** — SPEC→`specs` · PLAN→`plans` · QUICK→none · rest→`export-*`. (`docs/tools` belongs to no flow: the ambient skill `creating-tools` writes it.)
188
+ 3. **The spec and the plan are documents** (`docs/`), not session artifacts. *(Not to be confused with the **design SPECs** `NNN-SPEC-<SLUG>.md`: **per-screen** UI design artifacts that PLAN sessions produce via the `ui-design` capability when the plan includes UI — see `artifacts/artifacts-design/` — they are not the requirement-spec.)*
189
+ 4. **DB scripts-only** — the AI never executes DML/DDL; migrations stay in `SCRIPTS.sql` and the user applies them. Only read-only reads via MCP.
190
+ 5. **Safe git** — expected branch verified before editing; proposed commits per source; never `push`/`--amend`/`--no-verify`.
191
+ 6. **Loop chassis** — the 5 loops run the same **common engine**; each loop is an heir adding only its deltas, nothing of the engine is re-declared. Detail: `loops/CHASSIS.md`.
180
192
 
181
- > **Alcance de #1/#2:** gobiernan el plano **sesión → `docs/`** (solo `export-*` lo cruza). El *authoring directo sin flujo* (ver § *Contexto operativo*) es **otro plano**: sin sesión activa, `docs/` es la única superficie gestionadala IA escribe ahí por convención + numeración. No es auto-export (no hay sesión de la cual graduar).
193
+ > **Scope of #1/#2:** they govern the **session → `docs/`** plane (only `export-*` crosses it). *Direct no-flow authoring* (see § *Operating context*) is **another plane**: with no active session, `docs/` is the only managed surfacethe AI writes there by convention + numbering. It is not auto-export (there is no session to graduate from).
182
194
 
183
195
  ## Output
184
196
 
185
- Ninguno. Es orientación pura: no escribe documentos ni artefactos.
197
+ None. Pure orientation: it writes no documents or artifacts.
186
198
 
187
199
  ## Source
188
200
 
189
- Autorada del modelo de diseño (`docs/referencias/`): README de arquitectura (3 capas + 6 invariantes), `workflow-commands/`, `workflow-loops/`, `workflow-artifacts/`, `workflow-exports/`, `workflow-roles/`, `workflow-skills/`, `workflow-harness/`. Modelo actual, desplegado. (Compat: reemplaza la orientación del bundle legacy `session` + flows dev/design/analyze.)
201
+ Authored from the design model (`docs/referencias/`): architecture README (3 layers + 6 invariants), `workflow-commands/`, `workflow-loops/`, `workflow-artifacts/`, `workflow-exports/`, `workflow-roles/`, `workflow-skills/`, `workflow-harness/`. Current, deployed model. (Compat: replaces the legacy `session` bundle orientation + dev/design/analyze flows.)
@@ -43,7 +43,7 @@ Sessions are created by the loops as needed — **one session per run**. The ses
43
43
 
44
44
  ## Common artifacts (any session)
45
45
 
46
- `SESSION` (descriptor: Objective / Origin / Type / **Success criteria** = verification-first done-condition, formerly research-only) · `CHECKPOINT` (resume) · `SCRIPTS.sql` (read-only queries **executable** + DDL/DML migrations **deliverable**, not executed) · `TASKS` · `BACKLOG` (only when there's something to defer).
46
+ `SESSION` (descriptor: Objective / Origin / Type / **Success criteria** the verification-first done-condition; the convergence gate flips them green) · `CHECKPOINT` (resume — **fixed headings, updated in place, never duplicated**; see its contract) · `SCRIPTS.sql` (read-only queries **executable** + DDL/DML migrations **deliverable**, not executed) · `TASKS` · `BACKLOG` (only when there's something to defer).
47
47
 
48
48
  ---
49
49
 
@@ -1,23 +1,25 @@
1
1
  # CHECKPOINT.md — session resume state (common)
2
2
 
3
3
  > What it is: the live resume state of a session — lets the loop resume exactly where it left off.
4
- > **Live log (artifact-first):** `Pending`/`Next` = the intent (what is about to be done, seeded BEFORE executing); `Completed` = the result (AFTER). Updated at every gap/phase boundary, not only on `Compactar`/`Cerrar`.
5
- > Owned by: **every session** (`refine` · `exec` · `quick`). Persisted **always** on close/compact (the resume key — invariant #6), unlike `BACKLOG` which is written only when something is deferred.
4
+ > **Live log (artifact-first):** `Pending / Next` = the intent (what is about to be done, seeded BEFORE executing); `Completed` = the result (AFTER). Updated at every gap/phase boundary, not only on `Compactar`/`Cerrar`.
5
+ > Owned by: **every session** (`refine` · `exec` · `quick`). Persisted **always** on close/compact (the resume key), unlike `BACKLOG`, which is written only when something is deferred.
6
6
 
7
- ## Activity
8
- Summary of the activity done so far.
7
+ ## Contract (hard rules)
9
8
 
10
- ## Critical context
11
- Key decisions / references to other artifacts or documents needed to continue.
9
+ 1. **Fixed headings, exactly these three**: `## Completed` · `## Pending / Next` · `## Open questions` (plus the optional ones below).
10
+ 2. **Update in place NEVER duplicate a section.** Every update edits the existing section's content; appending a second `## <same heading>` is a contract violation.
11
+ 3. New entries go at the top of their section (most recent first) or extend an existing bullet — each section stays a single block.
12
12
 
13
13
  ## Completed
14
- Completed phases/tasks (ref: plan-doc `docs/plans/PPP-plan.md`; or `TASKS.md` if the session created its own breakdown).
14
+ What already happened: finished phases/tasks/gaps with their outcome (ref: plan-doc `docs/plans/PPP-plan.md`, the spec's gaps, or `TASKS.md` if the session created its own split). Fold the key context a resume needs (settled decisions, discoveries) into these bullets.
15
15
 
16
- ## Excluded
17
- Excluded phases/tasks (ref: plan-doc; or `TASKS.md`) with reason.
16
+ ## Pending / Next
17
+ The intent: what remains and what comes immediately next (seeded BEFORE executing — artifact-first). A resume starts here.
18
18
 
19
- ## Pending
20
- Pending phases/tasks (ref: plan-doc; or `TASKS.md`) still to do.
19
+ ## Open questions
20
+ Live doubts not yet resolved (ideally "None"). Deferred ones move to the session's `BACKLOG` or the flow doc's `## Open questions`.
21
21
 
22
- ## Next
23
- Next phase/task (ref: plan-doc; or `TASKS.md`) to continue from on resume.
22
+ ### Optional sections
23
+
24
+ - `## Excluded` — phases/tasks explicitly excluded, with reason (the `aw status` dashboard reads it for the discarded list).
25
+ - The `checkpoint-write` hook (PreCompact/SessionEnd) may write a **machine snapshot** with its own headings (`Last action`, `Next step`, `Files touched`, `Refs`, …) and `_[AI: …]_` placeholders — complete the placeholders; the loop-owned contract above still governs what the loop writes.
@@ -21,4 +21,4 @@ Session type, **set by the parent loop** (not the user). Authoritative catalog:
21
21
  > `research` is **not** a session type the loops create. Research is an **inline** activity: ANALYSIS-FILE / CONCLUSIONS are written into whatever session is active (`refine`/`exec`/`quick`) when it does investigation.
22
22
 
23
23
  ## Success criteria
24
- The run's **done-condition**, seeded at session creation: a checklist `[ ]` of **falsifiable** items. Executable deliverable → runnable tests/checks; non-executable → inspection rubric (the human ratifies it if subjective). Spec/plan sessions may **reference** the doc's acceptance criteria instead of duplicating them. Full doctrine: [`../../loops/CHASSIS.md`](../../loops/CHASSIS.md) § *Verification-first*.
24
+ The run's **done-condition**, seeded at session creation: a checklist `[ ]` of **falsifiable** items. Executable deliverable → runnable tests/checks; non-executable → inspection rubric (the human ratifies it if subjective). Spec/plan sessions may **reference** the doc's acceptance criteria instead of duplicating them. The convergence gate **flips** each criterion to `- [x]` as it turns green — on close the checklist reflects the real final state. Full doctrine: [`../../loops/CHASSIS.md`](../../loops/CHASSIS.md) § *Verification-first*.
@@ -1,6 +1,6 @@
1
1
  # TASKS.md — internal task breakdown (optional, common)
2
2
 
3
- > What it is: an internal phases/tasks breakdown for sessions that need their own desglose. **Optional artifact** — in the PLAN flow, phases and tasks live in the **plan-doc** (`docs/plans/PPP-plan.md`, living). Use this only when a session needs a breakdown that is not covered by the plan-doc.
3
+ > What it is: an internal phases/tasks breakdown for sessions that need their own split. **Optional artifact** — in the PLAN flow, phases and tasks live in the **plan-doc** (`docs/plans/PPP-plan.md`, living). Use this only when a session needs a breakdown that is not covered by the plan-doc.
4
4
 
5
5
  ## Phases
6
6
  Grouping phases. Phases should have a complexity between XS and S.
@@ -1,6 +1,6 @@
1
1
  # CONCLUSIONS.md — research conclusions
2
2
 
3
- > What it is: the conclusions of an **inline research** activity, written into the active session (`refine`/`exec`/`quick`). Produced when the research concludes (success or `inconcluso`). The parent loop reads this to resolve the gap that triggered the research.
3
+ > What it is: the conclusions of an **inline research** activity, written into the active session (`refine`/`exec`/`quick`). Produced when the research concludes (success or `inconclusive`). The parent loop reads this to resolve the gap that triggered the research.
4
4
 
5
5
  ## Conclusion
6
6
  Direct answer to the initial question.
@@ -1,44 +1,44 @@
1
1
  # w — Command map (Layer 1)
2
2
 
3
- > README del namespace `/w:` (`w` = *workflow*): todo lo listado acá es lo **único que el usuario invoca** directamente. Los comandos son la **Capa 1** — single-pass o arrancan un loop; sin lógica de iteración.
3
+ > README of the `/w:` namespace (`w` = *workflow*): everything listed here is the **only thing the user invokes** directly. Commands are **Layer 1** — single-pass or they start a loop; no iteration logic.
4
4
  >
5
- > **Canon**: el modelo completo (3 capas + zona `docs/`, los 3 flujos, invariantes duros) vive en [`../SKILL.md`](../SKILL.md); el **motor de los loops** en [`../loops/CHASSIS.md`](../loops/CHASSIS.md). Este README es solo el índice de la carpeta.
5
+ > **Canon**: the full model (3 layers + `docs/` zone, the 3 flows, hard invariants) lives in [`../SKILL.md`](../SKILL.md); the **loop engine** in [`../loops/CHASSIS.md`](../loops/CHASSIS.md). This README is only the folder index.
6
6
 
7
7
  ---
8
8
 
9
9
  ## Bootstrap
10
10
 
11
- [`/w:workspace-init`](workspace-init.md) convierte la carpeta actual en un **workspace** (`.workflow/` + `docs/` + bloque `WORKSPACE` + `.workflow/skills.toml`). Sin distinción project/hub; correr una vez antes de cualquier flujo.
11
+ [`/w:workspace-init`](workspace-init.md) turns the current folder into a **workspace** (`.workflow/` + `docs/` + `WORKSPACE` block + `.workflow/skills.toml`). No project/hub distinction; run once before any flow.
12
12
 
13
13
  ## Index
14
14
 
15
- | Command | Qué hace | Mode |
15
+ | Command | What it does | Mode |
16
16
  |---|---|---|
17
- | [`workspace-init`](workspace-init.md) | Bootstrap del workspace | single-pass, interactivo |
18
- | [`spec-new`](spec-new.md) | Genera el borrador de spec (`docs/specs/NNN-spec-<slug>.md`) | single-pass, sin loop |
19
- | [`spec-refine`](spec-refine.md) | Refina el spec **in place** hasta desambiguarlo | arranca `spec-refine-loop` |
20
- | [`plan-new`](plan-new.md) | Deriva el plan ejecutable (`docs/plans/PPP-plan-<slug>.md`) del spec | arranca `plan-new-loop` |
21
- | [`plan-refine`](plan-refine.md) | Refina el plan **in place** antes de ejecutar (aux, opcional) | arranca `plan-refine-loop` |
22
- | [`plan-exec`](plan-exec.md) | Ejecuta el plan (código/BD/git) y lo mantiene como living doc | arranca `plan-exec-loop` |
23
- | [`quick`](quick.md) | Atajo liviano para trabajo acotado; no toca `docs/` | arranca `quick-loop` |
24
- | [`status`](status.md) | Dashboard read-only del workspace | single-pass (transversal) |
25
- | [`fix-git`](fix-git.md) | Resuelve un merge en curso, git-safe | single-pass (transversal) |
26
- | [`export-scripts`](export-scripts.md) | Promueve migraciones SQL de sesiones a `docs/scripts/` | single-pass, read-only |
27
- | [`export-manuals`](export-manuals.md) | Genera manuales en `docs/manuals/` | single-pass, read-only |
28
- | [`export-diagrams`](export-diagrams.md) | Genera diagramas C4/mermaid en `docs/diagrams/` | single-pass, read-only |
29
- | [`export-reports`](export-reports.md) | Genera informes en `docs/reports/` | single-pass, read-only |
30
-
31
- > **Asimetría intencional:** en SPEC, `spec-new` genera el borrador en single-pass (sin loop) y el loop está en `spec-refine`; en PLAN, los 3 comandos arrancan loops. Total: **6 comandos de flow / 5 loops**.
17
+ | [`workspace-init`](workspace-init.md) | Workspace bootstrap | single-pass, interactive |
18
+ | [`spec-new`](spec-new.md) | Generates the spec draft (`docs/specs/NNN-spec-<slug>.md`) | single-pass, no loop |
19
+ | [`spec-refine`](spec-refine.md) | Refines the spec **in place** until unambiguous | starts `spec-refine-loop` |
20
+ | [`plan-new`](plan-new.md) | Derives the executable plan (`docs/plans/PPP-plan-<slug>.md`) from the spec | starts `plan-new-loop` |
21
+ | [`plan-refine`](plan-refine.md) | Refines the plan **in place** before executing (aux, optional) | starts `plan-refine-loop` |
22
+ | [`plan-exec`](plan-exec.md) | Executes the plan (code/DB/git) and maintains it as a living doc | starts `plan-exec-loop` |
23
+ | [`quick`](quick.md) | Lightweight shortcut for scoped work; never touches `docs/` | starts `quick-loop` |
24
+ | [`status`](status.md) | Read-only workspace dashboard | single-pass (transversal) |
25
+ | [`fix-git`](fix-git.md) | Resolves an in-progress merge, git-safe | single-pass (transversal) |
26
+ | [`export-scripts`](export-scripts.md) | Promotes session SQL migrations to `docs/scripts/` | single-pass, read-only |
27
+ | [`export-manuals`](export-manuals.md) | Generates manuals in `docs/manuals/` | single-pass, read-only |
28
+ | [`export-diagrams`](export-diagrams.md) | Generates C4/mermaid diagrams in `docs/diagrams/` | single-pass, read-only |
29
+ | [`export-reports`](export-reports.md) | Generates reports in `docs/reports/` | single-pass, read-only |
30
+
31
+ > **Intentional asymmetry:** in SPEC, `spec-new` generates the draft single-pass (no loop) and the loop lives in `spec-refine`; in PLAN, all 3 commands start loops. Total: **6 flow commands / 5 loops**.
32
32
  >
33
- > **Transversales (no flow):** `status` y `fix-git` no pertenecen a SPEC/PLAN/QUICK ni cuentan en 6/5. En el diseño son su propia categoría (`workflow-skills/`); acá se empaquetan bajo `commands/` para que `/w:` las invoquever [`../harness/SKILL.md`](../harness/SKILL.md) § *Command packaging*.
33
+ > **Transversal (no flow):** `status` and `fix-git` belong to no SPEC/PLAN/QUICK flow and do not count in 6/5. In the design they are their own category (`workflow-skills/`); here they are packaged under `commands/` so `/w:` can invoke them see [`../harness/SKILL.md`](../harness/SKILL.md) § *Command packaging*.
34
34
 
35
35
  ## Schema of each command file
36
36
 
37
- Cada `<command>.md` de esta carpeta usa este frontmatter + estructura de cuerpo el esquema (incluidos `allowed-tools:` y el tool `Skill`) es el **binding Claude Code**; otros arneses envuelven el mismo contrato en su formato (ver [`../harness/SKILL.md`](../harness/SKILL.md) § *Command packaging*):
37
+ Every `<command>.md` in this folder uses this frontmatter + body structurethe schema (including `allowed-tools:` and the `Skill` tool) is the **Claude Code binding**; other harnesses wrap the same contract in their format (see [`../harness/SKILL.md`](../harness/SKILL.md) § *Command packaging*):
38
38
 
39
39
  | Field | Description |
40
40
  |---|---|
41
- | `description:` | One line: what + when (drives discovery in `/`-picker) |
41
+ | `description:` | One line: what + when (drives discovery in the `/`-picker) |
42
42
  | `argument-hint:` | Argument signature for the user |
43
43
  | `allowed-tools:` | YAML list (typically `Bash`/`Read`/`Write`/`Edit`). Loops/exports are **read-and-followed**, not invoked with `Skill:` — so `Skill` is **not** in `allowed-tools`. |
44
44
  | Body | 1-3 orienting lines, then the invocation: **read-and-follow** the sibling loop/export `SKILL.md`, or call the `aw` CLI; then `## Plan mode`, `## Resources` |