@tacuchi/agent-workflow-cli 14.8.0 → 14.10.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 (195) hide show
  1. package/dist/adapters/git-cli.d.ts +2 -0
  2. package/dist/adapters/git-cli.d.ts.map +1 -1
  3. package/dist/adapters/git-cli.js +32 -24
  4. package/dist/adapters/git-cli.js.map +1 -1
  5. package/dist/adapters/node-process.d.ts.map +1 -1
  6. package/dist/adapters/node-process.js +41 -10
  7. package/dist/adapters/node-process.js.map +1 -1
  8. package/dist/application/logging/log-events.d.ts +6 -0
  9. package/dist/application/logging/log-events.d.ts.map +1 -1
  10. package/dist/application/logging/log-events.js +10 -0
  11. package/dist/application/logging/log-events.js.map +1 -1
  12. package/dist/application/mcp-host-paths.d.ts +17 -0
  13. package/dist/application/mcp-host-paths.d.ts.map +1 -0
  14. package/dist/application/mcp-host-paths.js +30 -0
  15. package/dist/application/mcp-host-paths.js.map +1 -0
  16. package/dist/application/mcp-host-reader.d.ts.map +1 -1
  17. package/dist/application/mcp-host-reader.js +15 -5
  18. package/dist/application/mcp-host-reader.js.map +1 -1
  19. package/dist/application/mcp-host-writer.d.ts.map +1 -1
  20. package/dist/application/mcp-host-writer.js +19 -5
  21. package/dist/application/mcp-host-writer.js.map +1 -1
  22. package/dist/application/mcp-remove-service.js +3 -3
  23. package/dist/application/mcp-remove-service.js.map +1 -1
  24. package/dist/application/mcp-setup-service.js +3 -3
  25. package/dist/application/mcp-setup-service.js.map +1 -1
  26. package/dist/application/plugin-doctor/skills.d.ts +1 -0
  27. package/dist/application/plugin-doctor/skills.d.ts.map +1 -1
  28. package/dist/application/plugin-doctor/skills.js +1 -1
  29. package/dist/application/plugin-doctor/skills.js.map +1 -1
  30. package/dist/application/release-data/artifacts.d.ts.map +1 -1
  31. package/dist/application/release-data/artifacts.js +5 -1
  32. package/dist/application/release-data/artifacts.js.map +1 -1
  33. package/dist/application/self/detect-hosts.d.ts.map +1 -1
  34. package/dist/application/self/detect-hosts.js +12 -8
  35. package/dist/application/self/detect-hosts.js.map +1 -1
  36. package/dist/application/self/install-plugin-skills-git.js +2 -1
  37. package/dist/application/self/install-plugin-skills-git.js.map +1 -1
  38. package/dist/application/self/install-plugin-skills.d.ts.map +1 -1
  39. package/dist/application/self/install-plugin-skills.js +2 -2
  40. package/dist/application/self/install-plugin-skills.js.map +1 -1
  41. package/dist/application/self/install-skill.d.ts +2 -1
  42. package/dist/application/self/install-skill.d.ts.map +1 -1
  43. package/dist/application/self/install-skill.js +5 -32
  44. package/dist/application/self/install-skill.js.map +1 -1
  45. package/dist/application/self/install-targets.d.ts +10 -0
  46. package/dist/application/self/install-targets.d.ts.map +1 -0
  47. package/dist/application/self/install-targets.js +19 -0
  48. package/dist/application/self/install-targets.js.map +1 -0
  49. package/dist/application/self/plugin-cache-clear.d.ts +2 -1
  50. package/dist/application/self/plugin-cache-clear.d.ts.map +1 -1
  51. package/dist/application/self/plugin-cache-clear.js +5 -2
  52. package/dist/application/self/plugin-cache-clear.js.map +1 -1
  53. package/dist/application/self/plugin-cache-reload.js.map +1 -1
  54. package/dist/application/self/uninstall-skill.d.ts.map +1 -1
  55. package/dist/application/self/uninstall-skill.js +4 -2
  56. package/dist/application/self/uninstall-skill.js.map +1 -1
  57. package/dist/application/source-launch-scripts-service.d.ts +6 -0
  58. package/dist/application/source-launch-scripts-service.d.ts.map +1 -1
  59. package/dist/application/source-launch-scripts-service.js +15 -2
  60. package/dist/application/source-launch-scripts-service.js.map +1 -1
  61. package/dist/application/source-launch-service.d.ts +4 -2
  62. package/dist/application/source-launch-service.d.ts.map +1 -1
  63. package/dist/application/source-launch-service.js +7 -3
  64. package/dist/application/source-launch-service.js.map +1 -1
  65. package/dist/cli/commands/check-branch.d.ts.map +1 -1
  66. package/dist/cli/commands/check-branch.js +4 -2
  67. package/dist/cli/commands/check-branch.js.map +1 -1
  68. package/dist/cli/commands/checkpoint-read.d.ts.map +1 -1
  69. package/dist/cli/commands/checkpoint-read.js +2 -1
  70. package/dist/cli/commands/checkpoint-read.js.map +1 -1
  71. package/dist/cli/commands/checkpoint-write.d.ts.map +1 -1
  72. package/dist/cli/commands/checkpoint-write.js +2 -1
  73. package/dist/cli/commands/checkpoint-write.js.map +1 -1
  74. package/dist/cli/commands/code-scan.d.ts.map +1 -1
  75. package/dist/cli/commands/code-scan.js +9 -10
  76. package/dist/cli/commands/code-scan.js.map +1 -1
  77. package/dist/cli/commands/compress-checkpoint.d.ts.map +1 -1
  78. package/dist/cli/commands/compress-checkpoint.js +2 -1
  79. package/dist/cli/commands/compress-checkpoint.js.map +1 -1
  80. package/dist/cli/commands/dev-only.js +2 -2
  81. package/dist/cli/commands/dev-only.js.map +1 -1
  82. package/dist/cli/commands/git-flow.d.ts.map +1 -1
  83. package/dist/cli/commands/git-flow.js +3 -7
  84. package/dist/cli/commands/git-flow.js.map +1 -1
  85. package/dist/cli/commands/history-data.d.ts.map +1 -1
  86. package/dist/cli/commands/history-data.js +2 -1
  87. package/dist/cli/commands/history-data.js.map +1 -1
  88. package/dist/cli/commands/history-update.d.ts.map +1 -1
  89. package/dist/cli/commands/history-update.js +3 -1
  90. package/dist/cli/commands/history-update.js.map +1 -1
  91. package/dist/cli/commands/index.d.ts +5 -0
  92. package/dist/cli/commands/index.d.ts.map +1 -0
  93. package/dist/cli/commands/index.js +89 -0
  94. package/dist/cli/commands/index.js.map +1 -0
  95. package/dist/cli/commands/mcp.d.ts +8 -0
  96. package/dist/cli/commands/mcp.d.ts.map +1 -1
  97. package/dist/cli/commands/mcp.js +9 -8
  98. package/dist/cli/commands/mcp.js.map +1 -1
  99. package/dist/cli/commands/merge-state.d.ts.map +1 -1
  100. package/dist/cli/commands/merge-state.js +2 -5
  101. package/dist/cli/commands/merge-state.js.map +1 -1
  102. package/dist/cli/commands/multiroot.d.ts.map +1 -1
  103. package/dist/cli/commands/multiroot.js +8 -14
  104. package/dist/cli/commands/multiroot.js.map +1 -1
  105. package/dist/cli/commands/plugin-doctor.d.ts.map +1 -1
  106. package/dist/cli/commands/plugin-doctor.js +3 -1
  107. package/dist/cli/commands/plugin-doctor.js.map +1 -1
  108. package/dist/cli/commands/project-md-upsert.d.ts.map +1 -1
  109. package/dist/cli/commands/project-md-upsert.js +4 -1
  110. package/dist/cli/commands/project-md-upsert.js.map +1 -1
  111. package/dist/cli/commands/release-data.d.ts.map +1 -1
  112. package/dist/cli/commands/release-data.js +6 -2
  113. package/dist/cli/commands/release-data.js.map +1 -1
  114. package/dist/cli/commands/resume-summary.d.ts.map +1 -1
  115. package/dist/cli/commands/resume-summary.js +2 -1
  116. package/dist/cli/commands/resume-summary.js.map +1 -1
  117. package/dist/cli/commands/session-artifacts.d.ts.map +1 -1
  118. package/dist/cli/commands/session-artifacts.js +61 -1
  119. package/dist/cli/commands/session-artifacts.js.map +1 -1
  120. package/dist/cli/commands/session-close.d.ts.map +1 -1
  121. package/dist/cli/commands/session-close.js +2 -1
  122. package/dist/cli/commands/session-close.js.map +1 -1
  123. package/dist/cli/commands/session-resume.d.ts.map +1 -1
  124. package/dist/cli/commands/session-resume.js +10 -1
  125. package/dist/cli/commands/session-resume.js.map +1 -1
  126. package/dist/cli/commands/sessions.d.ts.map +1 -1
  127. package/dist/cli/commands/sessions.js +2 -1
  128. package/dist/cli/commands/sessions.js.map +1 -1
  129. package/dist/cli/commands/skill-index.d.ts.map +1 -1
  130. package/dist/cli/commands/skill-index.js +2 -1
  131. package/dist/cli/commands/skill-index.js.map +1 -1
  132. package/dist/cli/commands/sources.d.ts.map +1 -1
  133. package/dist/cli/commands/sources.js +2 -1
  134. package/dist/cli/commands/sources.js.map +1 -1
  135. package/dist/cli/commands/stack.d.ts.map +1 -1
  136. package/dist/cli/commands/stack.js +2 -1
  137. package/dist/cli/commands/stack.js.map +1 -1
  138. package/dist/cli/help-groups.d.ts +12 -1
  139. package/dist/cli/help-groups.d.ts.map +1 -1
  140. package/dist/cli/help-groups.js +44 -8
  141. package/dist/cli/help-groups.js.map +1 -1
  142. package/dist/cli/main.js +8 -5
  143. package/dist/cli/main.js.map +1 -1
  144. package/dist/cli/parser.d.ts +6 -0
  145. package/dist/cli/parser.d.ts.map +1 -1
  146. package/dist/cli/parser.js +77 -2
  147. package/dist/cli/parser.js.map +1 -1
  148. package/dist/cli/tui/app.js +4 -2
  149. package/dist/cli/tui/app.js.map +1 -1
  150. package/dist/cli/tui/components/logs-section.d.ts.map +1 -1
  151. package/dist/cli/tui/components/logs-section.js +12 -1
  152. package/dist/cli/tui/components/logs-section.js.map +1 -1
  153. package/dist/cli/tui/data/workflow-content.d.ts.map +1 -1
  154. package/dist/cli/tui/data/workflow-content.js +6 -3
  155. package/dist/cli/tui/data/workflow-content.js.map +1 -1
  156. package/dist/cli/tui/notification-center.d.ts +11 -1
  157. package/dist/cli/tui/notification-center.d.ts.map +1 -1
  158. package/dist/cli/tui/notification-center.js +9 -2
  159. package/dist/cli/tui/notification-center.js.map +1 -1
  160. package/dist/cli/tui/tabs/mcp-tab.d.ts.map +1 -1
  161. package/dist/cli/tui/tabs/mcp-tab.js +9 -0
  162. package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
  163. package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -1
  164. package/dist/cli/tui/tabs/project-tab.js +21 -17
  165. package/dist/cli/tui/tabs/project-tab.js.map +1 -1
  166. package/dist/cli/tui/tabs/skills-tab.d.ts.map +1 -1
  167. package/dist/cli/tui/tabs/skills-tab.js +11 -10
  168. package/dist/cli/tui/tabs/skills-tab.js.map +1 -1
  169. package/dist/cli/types.d.ts +7 -0
  170. package/dist/cli/types.d.ts.map +1 -1
  171. package/dist/domain/harnesses.d.ts.map +1 -1
  172. package/dist/domain/harnesses.js +3 -1
  173. package/dist/domain/harnesses.js.map +1 -1
  174. package/dist/domain/mcp-entry.d.ts +1 -1
  175. package/dist/domain/mcp-entry.d.ts.map +1 -1
  176. package/dist/domain/mcp-entry.js +9 -3
  177. package/dist/domain/mcp-entry.js.map +1 -1
  178. package/dist/ports/process.d.ts +3 -2
  179. package/dist/ports/process.d.ts.map +1 -1
  180. package/package.json +1 -1
  181. package/skills/w/README.md +1 -1
  182. package/skills/w/SKILL.md +2 -2
  183. package/skills/w/exports/README.md +1 -1
  184. package/skills/w/exports/export-diagrams/SKILL.md +3 -3
  185. package/skills/w/exports/export-manuals/SKILL.md +3 -3
  186. package/skills/w/exports/export-reports/SKILL.md +3 -3
  187. package/skills/w/exports/export-scripts/SKILL.md +3 -3
  188. package/skills/w/loops/README.md +1 -1
  189. package/skills/w/loops/plan-exec-loop/SKILL.md +12 -18
  190. package/skills/w/loops/plan-new-loop/SKILL.md +10 -16
  191. package/skills/w/loops/plan-refine-loop/SKILL.md +9 -13
  192. package/skills/w/loops/quick-loop/SKILL.md +11 -17
  193. package/skills/w/loops/spec-refine-loop/SKILL.md +1 -1
  194. package/skills/w/roles/README.md +1 -1
  195. package/skills/w/roles/git/SKILL.md +3 -3
@@ -33,7 +33,7 @@ ZONE docs/ — permanent, user-facing deliverables
33
33
  | [`loops/`](loops/) | 2 | The 5 loops (chassis `spec-refine-loop` + heirs) the AI runs |
34
34
  | [`exports/`](exports/) | 1 | The `export-*` family — the only artifact→`docs/` promotion path |
35
35
  | [`roles/`](roles/) | cross-cutting | Pluggable capability skills (built-in defaults; rebindable via `.workflow/skills.toml`) |
36
- | [`harness/`](harness/SKILL.md) | cross-cutting | Capability→harness-mechanism binding (agnostic across Claude Code / Codex / opencode / Gemini) |
36
+ | [`harness/`](harness/SKILL.md) | cross-cutting | Capability→harness-mechanism binding (agnostic across Claude Code / Codex / Gemini-Antigravity / OpenCode / Crush / Warp) |
37
37
  | [`artifacts/`](artifacts/) | 3 | Session artifact templates the loops manage |
38
38
  | [`hooks/`](hooks/) | — | Host hook template (branch-check, sql-mutation-guard, checkpoint, …) |
39
39
  | [`SKILL.md`](SKILL.md) | overview | The `workflow` orientation skill (whole-model guide) |
package/skills/w/SKILL.md CHANGED
@@ -154,13 +154,13 @@ Catálogo de roles y su default:
154
154
  | `diagrams` | `diagrams` | should | `export-diagrams` |
155
155
  | `overview` | `workflow` | should | cualquiera (orientación) |
156
156
 
157
- > **Convenciones ambientes (no roles).** Los estándares de código, testing, redacción **y la creación de herramientas** (`creating-tools`, escribe `docs/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.
157
+ > **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).
158
158
 
159
159
  El **chasis del loop** NO se bindea: **es** el loop, no es enchufable.
160
160
 
161
161
  ### Harness (agnóstico al arnés)
162
162
 
163
- 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, opencode, Gemini, 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).
163
+ 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).
164
164
 
165
165
  Capacidades clave:
166
166
 
@@ -64,7 +64,7 @@ Exports read the corpus through the CLI — **never hard-coded paths**:
64
64
 
65
65
  - `aw sessions` — list sessions (counts + next correlative) to enumerate the corpus.
66
66
  - `aw release-data [--since sessionNNN] [--source alias]` — consolidated dump of sessions (corpus enumeration).
67
- - `aw session-artifacts --code <NNN>`lazy read of a session's artifacts.
67
+ - `aw session-artifacts --code <NNN> [--dump [kinds]]` counts by default; `--dump` returns `{path, content, size}` per artifact (objetivo, decisiones, conclusiones, tasks, checkpoint, backlog, scripts).
68
68
  - `aw next-number docs/<category>` — deterministic numbering of the output.
69
69
 
70
70
  > The destination-folder resolution (workspace root, single- vs multi-source) is handled by the CLI internally. If a specific flag is uncertain at implementation time, it is noted inline in each SKILL.
@@ -50,7 +50,7 @@ En plan mode **describe**, no escribe: el motor resuelto, los niveles/secciones
50
50
  **CLI `agent-workflow` (alias `aw`)** — no leer paths hardcodeados:
51
51
 
52
52
  - `aw sessions` / `aw release-data [--since sessionNNN] [--source <alias>]` — enumera el corpus (insumo del delta AS-IS/TO-BE).
53
- - `aw session-artifacts --code <NNN>`lee el plan-doc (`AS-IS`/`TO-BE`/`Impacted`) por sesión.
53
+ - `aw session-artifacts --code <NNN> --dump objetivo` ubica la sesión y su referencia al plan-doc; `AS-IS`/`TO-BE`/`Impacted` se leen del plan-doc por su path.
54
54
  - `aw next-number docs/diagrams` — numeración determinística (la resolución de la carpeta destino la maneja el CLI).
55
55
 
56
56
  **Filesystem / código**:
@@ -70,7 +70,7 @@ En plan mode **describe**, no escribe: el motor resuelto, los niveles/secciones
70
70
  | Flag | Comportamiento |
71
71
  |---|---|
72
72
  | `--sessions NNN[,NNN]` | Filtro discreto por código (precede a `--since`); afecta el delta AS-IS/TO-BE |
73
- | `--since sessionNNN` | Solo sesiones posteriores a NNN (inclusive) |
73
+ | `--since sessionNNN` | Solo sesiones posteriores a NNN (exclusivo: la propia NNN no entra; usá `--sessions` para incluirla) |
74
74
  | `--source <alias>` | Limita a una fuente (workspace multi-fuente) |
75
75
  | `--engine mermaid\|c4` | Default `mermaid` (render en GitHub); `c4` = Structurizr DSL opt-in |
76
76
  | `--scope` | Qué secciones aparecen: `c4` (contexto/contenedores/componentes), `integrations`, `data` (solo si MCP), `todo` (default) |
@@ -90,7 +90,7 @@ Por cada fuente: estructura básica, componentes internos (módulos, servicios,
90
90
 
91
91
  ### Paso 3 — Leer el delta del corpus
92
92
 
93
- Por sesión filtrada (`aw session-artifacts --code <NNN>`): `Current state (AS-IS)` / `Target state (TO-BE)` y `Impacted` del plan-doc. Sirve para resaltar lo que cambió sobre el snapshot vigente.
93
+ Por sesión filtrada (`aw session-artifacts --code <NNN> --dump objetivo`): seguir la referencia al plan-doc y leer `Current state (AS-IS)` / `Target state (TO-BE)` e `Impacted`. Sirve para resaltar lo que cambió sobre el snapshot vigente.
94
94
 
95
95
  ### Paso 4 — Inspeccionar MCP (opcional)
96
96
 
@@ -51,7 +51,7 @@ En plan mode **describe**, no escribe: el modo resuelto, los temas detectados (c
51
51
  **CLI `agent-workflow` (alias `aw`)** — no leer paths hardcodeados:
52
52
 
53
53
  - `aw sessions` / `aw release-data [--since sessionNNN] [--source <alias>]` — enumera el corpus.
54
- - `aw session-artifacts --code <NNN>`lee `DECISION`, el plan-doc y `SESSION` (su `## Objective`, lazy) por sesión.
54
+ - `aw session-artifacts --code <NNN> --dump objetivo,decisiones` devuelve `{path, content, size}` por artefacto (`SESSION` con su `## Objective`, `DECISION`); el plan-doc se lee por su path.
55
55
  - `aw next-number docs/manuals` — numeración determinística (solo modo `regenerate`).
56
56
 
57
57
  **Filesystem**:
@@ -70,7 +70,7 @@ En plan mode **describe**, no escribe: el modo resuelto, los temas detectados (c
70
70
  | Flag | Comportamiento |
71
71
  |---|---|
72
72
  | `--sessions NNN[,NNN]` | Filtro discreto por código (precede a `--since`) |
73
- | `--since sessionNNN` | Solo sesiones posteriores a NNN (inclusive) |
73
+ | `--since sessionNNN` | Solo sesiones posteriores a NNN (exclusivo: la propia NNN no entra; usá `--sessions` para incluirla) |
74
74
  | `--source <alias>` | Limita a una fuente (workspace multi-fuente) |
75
75
  | `--mode complement\|regenerate` | Default `complement` |
76
76
  | `--topics slug1,slug2` | Limita a los temas declarados |
@@ -97,7 +97,7 @@ Listar `docs/manuals/*.md` (excluyendo `INDEX.md` y subdirectorios `NNN-export-m
97
97
 
98
98
  ### Paso 3 — Detectar temas
99
99
 
100
- Por cada sesión del corpus filtrado (`aw session-artifacts --code <NNN>`): leer `DECISION` + plan-doc (`Solution`/`Final behavior`/`Validations`) + el código tocado. Tema **primario**: la sección de temas en `SESSION` (su `## Objective`). **Secundario**: inferencia por keywords operativos ("configurar", "instalar", "paso a paso", "cómo …"). Filtrar por `--topics` si está presente. Listar (slug, confidence, sesiones de origen).
100
+ Por cada sesión del corpus filtrado (`aw session-artifacts --code <NNN> --dump objetivo,decisiones`): tomar `DECISION` del dump + plan-doc (`Solution`/`Final behavior`/`Validations`) + el código tocado. Tema **primario**: la sección de temas en `SESSION` (su `## Objective`). **Secundario**: inferencia por keywords operativos ("configurar", "instalar", "paso a paso", "cómo …"). Filtrar por `--topics` si está presente. Listar (slug, confidence, sesiones de origen).
101
101
 
102
102
  ### Paso 4 — Sintetizar (prosa: convenciones ambientes)
103
103
 
@@ -50,7 +50,7 @@ En plan mode **describe**, no escribe: la audiencia/longitud resuelta, las sesio
50
50
  **CLI `agent-workflow` (alias `aw`)** — no leer paths hardcodeados:
51
51
 
52
52
  - `aw sessions` / `aw release-data [--since sessionNNN] [--source <alias>]` — enumera + filtra el corpus.
53
- - `aw session-artifacts --code <NNN>`lee spec referido, `CONCLUSIONS`, `DECISION` y estado del plan-doc (lazy) por sesión.
53
+ - `aw session-artifacts --code <NNN> --dump objetivo,conclusiones,decisiones` devuelve `{path, content, size}` de `SESSION` (spec referido), `CONCLUSIONS` y `DECISION`; el estado del plan-doc se lee por su path.
54
54
  - `aw next-number docs/reports` — numeración determinística (la resolución de la carpeta destino la maneja el CLI).
55
55
 
56
56
  **Filesystem**:
@@ -68,7 +68,7 @@ En plan mode **describe**, no escribe: la audiencia/longitud resuelta, las sesio
68
68
  | Flag | Comportamiento |
69
69
  |---|---|
70
70
  | `--sessions NNN[,NNN]` | Filtro discreto por código (precede a `--since`/`--period`) |
71
- | `--since sessionNNN` | Solo sesiones posteriores a NNN (inclusive) |
71
+ | `--since sessionNNN` | Solo sesiones posteriores a NNN (exclusivo: la propia NNN no entra; usá `--sessions` para incluirla) |
72
72
  | `--source <alias>` | Limita a una fuente (workspace multi-fuente) |
73
73
  | `--period` | Ventana temporal (`last-month`/`last-quarter`/rango `YYYY-MM..YYYY-MM`) |
74
74
  | `--audience gerencia\|tecnica` | Modula longitud/léxico: `gerencia` ≈ corto/ejecutivo; `tecnica` ≈ detallado |
@@ -85,7 +85,7 @@ Sin args: todo el corpus, audiencia ejecutiva por default. *(Si algún flag exac
85
85
 
86
86
  ### Paso 2 — Recolectar inputs por sesión
87
87
 
88
- Por sesión filtrada (`aw session-artifacts --code <NNN>`): el spec referido (qué se planteó), `CONCLUSIONS` (cierre técnico / R-items), `DECISION` (qué se decidió), estado del plan-doc (qué se entregó / qué queda). Recoger también componentes impactados (fuentes tocadas) para la tabla de síntesis.
88
+ Por sesión filtrada (`aw session-artifacts --code <NNN> --dump objetivo,conclusiones,decisiones`): el spec referido (qué se planteó), `CONCLUSIONS` (cierre técnico / R-items), `DECISION` (qué se decidió), estado del plan-doc (qué se entregó / qué queda). Recoger también componentes impactados (fuentes tocadas) para la tabla de síntesis.
89
89
 
90
90
  ### Paso 3 — Dedup de recomendaciones (cross-session)
91
91
 
@@ -51,7 +51,7 @@ En plan mode **describe**, no escribe: el `NNN` resuelto, las fuentes detectadas
51
51
  **CLI `agent-workflow` (alias `aw`)** — no leer paths hardcodeados:
52
52
 
53
53
  - `aw sessions` / `aw release-data [--since sessionNNN] [--source <alias>]` — enumera el corpus de sesiones.
54
- - `aw session-artifacts --code <NNN>`lee `SCRIPTS.sql` de cada sesión (lazy). Si no existe → skip silencioso.
54
+ - `aw session-artifacts --code <NNN> --dump scripts` lista los `.sql` de la sesión con path y size (el contenido se lee por path). Si no hay scripts lista vacía, skip silencioso.
55
55
  - `aw next-number docs/scripts` — numeración determinística del directorio del bundle (la resolución de la carpeta destino la maneja el CLI).
56
56
 
57
57
  **Filesystem**:
@@ -68,7 +68,7 @@ En plan mode **describe**, no escribe: el `NNN` resuelto, las fuentes detectadas
68
68
  | Flag | Comportamiento |
69
69
  |---|---|
70
70
  | `--sessions NNN[,NNN]` | Filtro discreto por código (precede a `--since`) |
71
- | `--since sessionNNN` | Solo sesiones posteriores a NNN (inclusive) |
71
+ | `--since sessionNNN` | Solo sesiones posteriores a NNN (exclusivo: la propia NNN no entra; usá `--sessions` para incluirla) |
72
72
  | `--source <alias>` | Limita a una fuente (workspace multi-fuente) |
73
73
  | `--skip-standalone` | Omite la lectura de `docs/scripts/*.sql` standalone |
74
74
  | `--dry-run` | Reporte propositivo sin escribir archivos |
@@ -79,7 +79,7 @@ Sin args: todas las sesiones del corpus + todos los `.sql` standalone (excluyend
79
79
 
80
80
  ### Paso 1 — Recolección de fuentes SQL
81
81
 
82
- **Fuente A — sesiones**: por cada sesión del corpus (`aw sessions` / `release-data` + `session-artifacts --code <NNN>`), leer `.workflow/sessions/<folder>/SCRIPTS.sql` si existe. Tomar **solo** las sentencias tipo-B (migraciones DDL/DML entregables); ignorar el tipo-A read-only (consultas de diagnóstico). Markers esperados por sentencia: `-- @category: <01-04>` + `-- @stmt: NNN-verbo-objetivo` (formato definido por la capacidad `sql`).
82
+ **Fuente A — sesiones**: por cada sesión del corpus (`aw sessions` / `release-data` + `session-artifacts --code <NNN> --dump scripts`), leer los `.sql` que el dump lista (path por script). Tomar **solo** las sentencias tipo-B (migraciones DDL/DML entregables); ignorar el tipo-A read-only (consultas de diagnóstico). Markers esperados por sentencia: `-- @category: <01-04>` + `-- @stmt: NNN-verbo-objetivo` (formato definido por la capacidad `sql`).
83
83
 
84
84
  **Fuente B — standalone** (salvo `--skip-standalone`): listar `docs/scripts/*.sql` top-level, **excluyendo** `docs/scripts/NNN-export-scripts-*/`. Por archivo: respetar markers `@category` si los hay; si no, inferir categoría del contenido (`CREATE/ALTER TABLE`, `CREATE INDEX` → `01`; `CREATE OR REPLACE FUNCTION`/`PROCEDURE` → `02`; `UPDATE`/`DELETE` → `03`; `INSERT INTO … VALUES` → `04`). Si el filename contiene `rollback` → skip (no entra en forward).
85
85
 
@@ -111,7 +111,7 @@ Los loops componen **capacidades por su rol**, no skills concretas; la skill que
111
111
  | `research` | `research` | todos los loops (research inline) |
112
112
  | `overview` | `workflow` | cualquiera (orientación) |
113
113
 
114
- > **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.
114
+ > **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).
115
115
 
116
116
  `off` en config → capacidad desactivada: el loop sigue sin ella; si era necesaria, lo dice o pregunta al humano.
117
117
 
@@ -1,22 +1,16 @@
1
1
  ---
2
2
  name: plan-exec-loop
3
3
  description: >-
4
- Ejecuta un plan de implementación (docs/plans/PPP-plan-<slug>.md) como living
5
- doc: lo lee y actualiza fase a fase mientras edita el código real, gestiona BD
6
- y git. Heir del chasis spec-refine-loop: reusa su motor gap-driven, research
7
- inline (regla BD read-only), structured-choice (≤3 preguntas + control flow
8
- Compactar/Cerrar) y artefactos como log vivo (CHECKPOINT siempre, BACKLOG solo
9
- si difiere). Deltas: una sola session por run (resume vía checkbox del plan-doc
10
- + CHECKPOINT); git seguro (verifica la rama antes de editar, propone commits por
11
- fuente, nunca push/--amend/--no-verify); la IA NUNCA ejecuta DML/DDL (las
12
- migraciones se redactan en SCRIPTS.sql, solo read-only se ejecuta); validación
13
- por fase y final (lo dependiente de migración no aplicada se difiere a DBA);
14
- gate de revisión de cierre por fase ANTES de proponer commits (re-lectura
15
- independiente del diff aplicando las convenciones ambientes instaladas —
16
- corrige o difiere; nada llega a un commit sin revisar); y
17
- SIN auto-export (escribe solo docs/plans; el resto queda como artefacto para
18
- export-*). Compone git y sql. Lo arranca /w:plan-exec, es reanudable. Invocar
19
- para implementar un plan ya generado.
4
+ Ejecuta un plan de implementación (docs/plans/PPP-plan-<slug>.md) como
5
+ living doc: lo lee y actualiza fase a fase mientras edita el código real,
6
+ gestiona BD y git. Heir del chasis spec-refine-loop (motor gap-driven,
7
+ research inline, structured-choice, artefactos como log vivo); sus deltas
8
+ viven en el cuerpo: session única reanudable, git seguro (rama verificada,
9
+ commits propuestos por fuente, nunca push/--amend/--no-verify), BD solo-
10
+ scripts (la IA nunca ejecuta DML/DDL), validación por fase y final, gate de
11
+ revisión de cierre pre-commit, y sin auto-export (solo escribe docs/plans).
12
+ Compone git y sql. Lo arranca /w:plan-exec. Invocar para implementar un plan
13
+ ya generado.
20
14
  ---
21
15
 
22
16
  # plan-exec-loop
@@ -57,7 +51,7 @@ Del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md), sin cambios:
57
51
 
58
52
  `git` (rama segura + commits propuestos) · `sql` (regla BD). Ambas resueltas por `.workflow/skills.toml`; `off` → el loop sigue sin la capacidad y, si era necesaria, lo dice o pregunta.
59
53
 
60
- > **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.
54
+ > **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).
61
55
 
62
56
  ## Internal sessions (managed)
63
57
 
@@ -77,7 +71,7 @@ Del chasis [`spec-refine-loop`](../spec-refine-loop/SKILL.md), sin cambios:
77
71
 
78
72
  ## Delta 2 — Git policy: **rama segura + commits propuestos**
79
73
 
80
- - **Antes de editar** archivos de una fuente: verifica rama actual = rama esperada de esa fuente (estilo `branch-check`). Si no coincide → **pausa y resuelve con el humano**; nunca `stash`/`reset --hard`/`checkout -- .`/`clean` sin confirmación por fuente.
74
+ - **Antes de editar** archivos de una fuente: verifica rama actual = rama esperada de esa fuente (`aw check-branch --source <alias>`; ver rol `git`). Si no coincide → **pausa y resuelve con el humano**; nunca `stash`/`reset --hard`/`checkout -- .`/`clean` sin confirmación por fuente.
81
75
  - **Al cerrar una fase** (o al `Cerrar`): **tras pasar el gate de revisión de cierre** (Delta 5), **propone commits por fuente** (propose-then-execute, aprobar antes); nunca `push`/`--amend`/`--no-verify`. Nada llega a un commit propuesto sin revisar.
82
76
  - **Commit rechazado**: los cambios **quedan en el working tree** (no se revierten). Se permite reproponer / editar mensaje. Se registra en `CHECKPOINT` + `BACKLOG` que la fase quedó **sin commitear** (reanudable).
83
77
  - **Precondición entre fases**: `branch-check` valida *identidad* de rama, **no** *limpieza* del working tree. Antes de iniciar la siguiente fase, el working tree de cada fuente debe estar **limpio** (committeado) o explícitamente **reconocido** como "cambios sin commitear de la fase N" — para no co-mezclar dos fases en un mismo commit.
@@ -1,22 +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 partir
5
- de un spec (docs/specs/NNN-spec-<slug>.md). Heir del chasis spec-refine-loop:
6
- reusa íntegro su motor gap-driven convergente, su única session por run,
7
- research INLINE, structured-choice con ≤3 preguntas de contenido + 1 control flow
8
- (Compactar/Cerrar) siempre presente, research autónomo con regla BD read-only,
9
- y artefactos como log vivo (CHECKPOINT siempre, BACKLOG solo si difiere). Sus
10
- deltas: el plan absorbe inline el nivel TECHNICAL-NOTE
11
- (Solution/Impacted/AS-IS/TO-BE/Validations…) + Phases/Tasks con estado vivo;
12
- el research aquí mapea código/impacto (componentes FE/BE/BD, wiring AS-IS,
13
- dependencias); una gap taxonomy propia de planificación; y si el plan incluye
14
- UI compone la capacidad ui-design para autorar design SPECs por pantalla
15
- (NNN-SPEC-<SLUG>.md) como artefactos de su sesión. Distingue spec
16
- refinado de borrador por la presencia de Refinement decisions/Q&A traceability
17
- (si faltan → soft-suggest correr spec-refine antes). Lo arranca el comando
18
- /w:plan-new y es reanudable. Invocar cuando un spec deba convertirse en un plan
19
- 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.
20
14
  ---
21
15
 
22
16
  # plan-new-loop
@@ -1,19 +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 PLACE,
5
- como paso auxiliar y NO obligatorio del flujo PLAN antes de plan-exec. Heir del
6
- chasis spec-refine-loop: reusa íntegro su motor gap-driven convergente, su única
7
- session por run, research INLINE, structured-choice con ≤3 preguntas de contenido
8
- + 1 control flow (Compactar/Cerrar) siempre, research autónomo con regla BD
9
- read-only, y artefactos como log vivo (CHECKPOINT siempre, BACKLOG solo si
10
- difiere). Es a plan-new lo que spec-refine es a spec-new: edita el plan-doc in
11
- place (no genera uno nuevo). Reusa la gap taxonomy y el coherence gate de
12
- plan-new-loop; agrega Refinement decisions/Q&A traceability al plan (traza, sin
13
- contrato de gating: plan-exec corre cualquier plan). Si el refine toca UI,
14
- compone la capacidad ui-design y produce/actualiza design SPECs por pantalla
15
- (NNN-SPEC-<SLUG>.md) en su propia sesión. Lo arranca /w:plan-refine y
16
- 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
17
13
  ajustarse antes de ejecutarlo.
18
14
  ---
19
15
 
@@ -1,21 +1,15 @@
1
1
  ---
2
2
  name: quick-loop
3
3
  description: >-
4
- El atajo liviano de agent-workflow: resuelve una tarea acotada (un fix, un
5
- ajuste pequeño) directamente desde el prompt del usuario, editando código con
6
- ceremonia mínima. Heir del chasis spec-refine-loop (motor gap-driven mínimo,
7
- research INLINE con regla BD read-only, structured-choice con ≤3 preguntas de
8
- contenido + 1 control flow Compactar/Cerrar siempre, compact/resume con artefactos
9
- como log vivo: CHECKPOINT siempre, BACKLOG solo si difiere) y de plan-exec-loop
10
- (git seguro: rama esperada antes de editar + commit propuesto, nunca
11
- push/--amend/--no-verify; la IA nunca ejecuta DML, migraciones a SCRIPTS.sql;
12
- sin auto-export; gate de revisión de cierre proporcional: re-lee el diff con
13
- las convenciones ambientes instaladas y corrige antes de proponer el commit).
14
- Sus deltas: sin fases ni plan-doc (el prompt ES la tarea),
15
- una sola session ligera (<slug>-quick), un solo commit; y escalación con
16
- handoff si la tarea crece (propone subir a SPEC/PLAN dejando el código a
17
- medias como contexto). NO toca docs/. Lo arranca /w:quick y es reanudable.
18
- 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.
19
13
  ---
20
14
 
21
15
  # quick-loop
@@ -52,7 +46,7 @@ QUICK
52
46
 
53
47
  `git` · `sql` (regla BD) · `research` (inline). Resueltas por `.workflow/skills.toml`.
54
48
 
55
- > **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.
49
+ > **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).
56
50
 
57
51
  ## Delta QUICK — minimal ceremony
58
52
 
@@ -84,7 +78,7 @@ quick-loop(prompt):
84
78
  seed SESSION.Success criteria = check del deliverable # verification-first, ANTES: test(s) si código · rúbrica corta RATIFICADA si análisis/diseño
85
79
  seed CHECKPOINT.Pending/Next = la tarea (s) # ANTES: sembrar intención (artifact-first)
86
80
  trabajar la tarea (loop mínimo):
87
- si edita código → verificar rama esperada por fuente (branch-check); si no → pausar + resolver
81
+ si edita código → verificar rama esperada por fuente (`aw check-branch`); si no → pausar + resolver
88
82
  producir el deliverable: editar código (cambio mínimo) Ó autorar el análisis/diseño
89
83
  si consulta BD read-only → SCRIPTS.sql + ejecutar read-only
90
84
  si cambio BD (DDL/DML) → SCRIPTS.sql (artefacto session, NO ejecutar)
@@ -127,7 +127,7 @@ El gap **UI sin especificar** (cuando el requerimiento involucra UI; ver *Gap ta
127
127
 
128
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.
129
129
 
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.
130
+ > **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).
131
131
 
132
132
  ## Deliverable schema (el spec, editado in place)
133
133
 
@@ -23,7 +23,7 @@ All 6 roles, their built-in defaults, their tier, and which loops/exports compos
23
23
  - `must` — core to almost every session; built-in always active unless explicitly `off`.
24
24
  - `should` — loaded on-demand; active by default but lower priority to override.
25
25
 
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.
26
+ > **Convenciones ambientes (no roles).** Los estándares de código, testing, redacción **y la creación de herramientas** (`creating-tools`, escribe `docs/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
27
  >
28
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ó.
29
29
 
@@ -52,7 +52,7 @@ Y **siempre** prohibido, aún cuando el usuario pida commit: `--no-verify` (resp
52
52
 
53
53
  La rama esperada **nunca se asume desde la rama actual** — el usuario pudo cambiarla a mano. Verificar contra la rama de trabajo declarada por fuente antes de cualquier `Write/Edit`.
54
54
 
55
- Campos por fuente: `alias`, `path`, `main_branch` (base, default `certificacion`), `expected_work_branch`, `current_branch`, `match` (`current == expected`), `dirty` (cambios sin commit).
55
+ **Mecanismo primario**: `aw check-branch --source <alias>` (o `--file <path-del-edit-inminente>`; `--strict` devuelve exit 2 en mismatch — útil como gate). Devuelve ya computados los campos por fuente: `alias`, `path`, `main_branch` (base, default `certificacion`), `expected_work_branch`, `current_branch`, `match` (`current == expected`), `dirty` (cambios sin commit). **Fallback** (repo suelto sin workspace/CLI): computarlos con git read-only directo (`git branch --show-current` + `git status --porcelain`) más la rama declarada por la sesión.
56
56
 
57
57
  Casos:
58
58
 
@@ -67,7 +67,7 @@ Casos:
67
67
 
68
68
  Ante cualquier pedido o disparo de commit (cierre de loop, "commitea esto", "guardá los cambios"):
69
69
 
70
- 1. Resolver las fuentes y su estado dirty/rama.
70
+ 1. Resolver las fuentes y su estado dirty/rama con `aw sources` (inventario con git status enriquecido; fallback: git directo por fuente).
71
71
  2. Si hay 1+ fuentes `dirty=true`, invocar **una sola** *structured-choice* con una pregunta de contenido por fuente dirty (máx 4 simultáneas → **≤3 preguntas de contenido + 1 control `flow`**; si N>3, en tandas):
72
72
  - Header de la pregunta: el `alias` de la fuente.
73
73
  - Opciones: "Aprobar sugerido (Recomendado)" con el mensaje canónico / "Saltar esta fuente". `Other` = mensaje custom.
@@ -116,4 +116,4 @@ Ninguno en `docs/`. Produce commits **solo** cuando el usuario aprueba, en los r
116
116
 
117
117
  ## Source
118
118
 
119
- Reciclada de la doctrina vieja: `doctrine/session/references/commits-policy.md` (Reglas 1-5: propose-then-execute, formato canónico, bypass) + `doctrine/session/references/branch-verification.md` (Casos A/B/C, cross-fuente hard gate). Se descarta la dependencia de comandos CLI específicos (`agent-workflow sources`): la verificación se hace con git read-only directo más la rama de trabajo declarada por la sesión.
119
+ Reciclada de la doctrina vieja: `doctrine/session/references/commits-policy.md` (Reglas 1-5: propose-then-execute, formato canónico, bypass) + `doctrine/session/references/branch-verification.md` (Casos A/B/C, cross-fuente hard gate). La verificación delega lo mecánico al CLI (`aw check-branch`, `aw sources`) computarlo a mano en cada task pagaba tokens por trabajo que el runtime ya expone; el git read-only directo queda como fallback para repos sin workspace.