@tacuchi/agent-workflow-cli 10.2.1 → 10.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/application/hub-init-service.d.ts +2 -1
  2. package/dist/application/hub-init-service.d.ts.map +1 -1
  3. package/dist/application/hub-init-service.js +6 -6
  4. package/dist/application/hub-init-service.js.map +1 -1
  5. package/dist/application/multiroot/codex.js +3 -3
  6. package/dist/application/visibility-doctor-service.js +22 -6
  7. package/dist/application/visibility-doctor-service.js.map +1 -1
  8. package/dist/cli/commands/hub-init.d.ts +0 -24
  9. package/dist/cli/commands/hub-init.d.ts.map +1 -1
  10. package/dist/cli/commands/hub-init.js +15 -93
  11. package/dist/cli/commands/hub-init.js.map +1 -1
  12. package/dist/cli/interactive-menu.d.ts +1 -1
  13. package/dist/cli/interactive-menu.d.ts.map +1 -1
  14. package/dist/cli/main.js +0 -3
  15. package/dist/cli/main.js.map +1 -1
  16. package/dist/cli/parsers/fuentes.d.ts.map +1 -1
  17. package/dist/cli/parsers/fuentes.js +6 -1
  18. package/dist/cli/parsers/fuentes.js.map +1 -1
  19. package/dist/cli/tui/app.js +0 -5
  20. package/dist/cli/tui/app.js.map +1 -1
  21. package/dist/cli/tui/components/hub-init-alias.d.ts +5 -0
  22. package/dist/cli/tui/components/hub-init-alias.d.ts.map +1 -0
  23. package/dist/cli/tui/components/hub-init-alias.js +19 -0
  24. package/dist/cli/tui/components/hub-init-alias.js.map +1 -0
  25. package/dist/cli/tui/components/hub-init-form.d.ts +13 -0
  26. package/dist/cli/tui/components/hub-init-form.d.ts.map +1 -0
  27. package/dist/cli/tui/components/hub-init-form.js +73 -0
  28. package/dist/cli/tui/components/hub-init-form.js.map +1 -0
  29. package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -1
  30. package/dist/cli/tui/tabs/project-tab.js +51 -26
  31. package/dist/cli/tui/tabs/project-tab.js.map +1 -1
  32. package/package.json +1 -1
  33. package/skills/agent-workflow/commands/hub-init.md +24 -47
  34. package/skills/agent-workflow/doctrine/hub-init/SKILL.md +40 -121
@@ -1,157 +1,76 @@
1
1
  ---
2
2
  name: hub-init
3
- description: Inicializa workspace Hub multi-repo con bloque AW-PROJECT en modo hub. Captura ≥2 fuentes con rutas y ramas de trabajo, valida cross-fuente y persiste marcador Mode hub que activa heurísticas hub-aware en sessions/implement/release. Promociona workspaces project con múltiples fuentes. Invocado vía /agent-workflow:hub-init.
4
- version: 1.1.0
3
+ description: Inicializa workspace Hub multi-repo escribe el bloque AW-PROJECT en modo hub (≥2 fuentes con rutas y ramas) que activa heurísticas hub-aware en sessions/implement/release. Solo scaffold; la visibilidad multi-root es opt-in. La forma interactiva vive en el TUI (tab Project → Initialize as hub). Invocado vía /agent-workflow:hub-init.
4
+ version: 2.0.0
5
5
  ---
6
6
 
7
- > **Profile parametrization**: lee `claude_md_block` de `profile.json` (resuelto vía cascade 5 capas). Ver [`references/profile-parametrization.md`](../../references/profile-parametrization.md) para el contrato completo y comportamiento por defecto cuando el profile está vacío.
7
+ > **Profile parametrization**: lee `claude_md_block` de `profile.json` (cascade 5 capas). Ver [`references/profile-parametrization.md`](../../references/profile-parametrization.md).
8
8
 
9
9
  # Hub Init
10
10
 
11
- Bootstrap del bloque AW-PROJECT para un workspace **multi-repo** (hub mode). Hub mode introduce el marcador `Mode: hub` que activa heurísticas hub-aware en el resto de la familia agent-workflow.
11
+ Escribe el bloque AW-PROJECT para un workspace **multi-repo** (hub mode). El marcador `Mode: hub` activa heurísticas hub-aware en el resto de la familia. **Es solo scaffold**: escribe el bloque y nada más. La visibilidad de hosts (que Claude Code / Codex puedan escribir en los repos fuente) es un paso aparte y **opt-in**.
12
12
 
13
- ## Cuándo usar
13
+ ## La vía fácil: el TUI
14
14
 
15
- - Workspace que coordina ≥2 repos pares (sesiones cross-cutting).
16
- - Promover un workspace existente que ya creció a multi-repo.
15
+ Lo más simple es el form interactivo: `agent-workflow` tab **Project** **Initialize as hub**. Pide nombre + paths de fuentes (alias inferido de la carpeta) + rama base, todo dentro del TUI. No hay que recordar flags ni armar comandos.
17
16
 
18
- ## Diferencias vs `/agent-workflow:project-init`
17
+ ## Cuándo usar la vía CLI/host
19
18
 
20
- | Aspecto | project-init | hub-init |
21
- |---|---|---|
22
- | Fuentes | 1 (mín y máx) | ≥2 (mínimo) |
23
- | Marcador `Mode:` | `project` | `hub` |
24
- | Captura ramas de trabajo | No | Sí, por fuente, en Status |
25
- | Validación cross-fuente | No | Sí (aliases únicos, paths git válidos, comparación con `git rev-parse`) |
26
- | Stack auto-detect | Sobre CWD | Sobre CWD; suele caer en `_Workspace base_` |
27
- | Heurísticas hub-aware | Off | On (sessions, implement, release, doctor) |
19
+ - Workspace que coordina ≥2 repos pares.
20
+ - Promover un workspace `project` que creció a multi-repo.
28
21
 
29
- ## Flujo detallado
22
+ ## Flujo (host) — mínimo
30
23
 
31
- ### 1. Detectar bloque existente
24
+ No sobre-validar ni preguntar de más. El comando solo persiste lo declarado.
32
25
 
33
- ```
34
- agent-workflow workspace-mode
35
- ```
26
+ 1. **Detectar bloque** (rápido): `agent-workflow workspace-mode` → `{mode, is_hub, ...}`. Si ya es hub → preguntar si agregar/reiniciar. Si es `project` con fuentes → ofrecer promover. Bloque legacy `<!-- QTC-WORKFLOW-START -->` → delegar a `/agent-workflow:migrate`.
27
+ 2. **Reunir datos**: descripción (1 línea), ≥2 fuentes (alias + path), rama base (default `certificacion`). El alias se infiere del nombre de la carpeta si no se da.
28
+ 3. **Escribir el bloque**:
36
29
 
37
- Output: `{mode, sources, working_branches, sources_count, is_hub}`.
30
+ ```
31
+ agent-workflow hub-init \
32
+ --proyecto "<descripción>" \
33
+ --fuente "alias1:path1" --fuente "alias2:path2" \
34
+ [--working-branch "alias1:rama1" ...] \
35
+ [--main-branch <rama>]
36
+ ```
38
37
 
39
- | Caso | Acción |
40
- |---|---|
41
- | `mode=hub` | Mostrar fuentes actuales y preguntar: ¿agregar nuevas? ¿reiniciar? ¿abortar? |
42
- | `mode=project` con ≥1 fuente | Detectar promoción: mostrar fuente original y preguntar "¿Promover a hub?". Si confirma, continuar al paso 2 con la fuente original ya cargada. |
43
- | Sin bloque | Flujo limpio. |
44
- | Bloque legacy `<!-- QTC-WORKFLOW-START -->` | Recomendar `/agent-workflow:migrate --upgrade-topology` antes. Abortar. |
38
+ Rutas Windows (`C:\Source\...`) van directo — el parser respeta el colon de unidad, no hace falta workaround. Escribe `CLAUDE.md` + `AGENTS.md` con `## Proyecto` (Mode: hub) + `## Fuentes` + `## Stack` + `## Status`. **No toca `settings.json` ni `config.toml`.**
39
+ 4. **Reportar**: fuentes registradas + próximo paso (`/agent-workflow:session "<objetivo>"`).
45
40
 
46
- ### 2. Capturar descripción del workspace
41
+ ## Visibilidad multi-root (opt-in, aparte)
47
42
 
48
- Pedir 1-3 líneas que mencionen que coordina N repos. Va a `## Proyecto`.
43
+ Para que los hosts escriban en los repos fuente, configurá visibilidad — **solo si el usuario lo pide**:
49
44
 
50
- ### 3. Capturar fuentes
45
+ - `agent-workflow hub-init ... --attach` — además del bloque, mergea los paths en `.claude/settings.json` + `.codex/config.toml` (con backup).
46
+ - o `agent-workflow attach-multiroot --from-sources` después.
47
+ - Convención por-máquina (gitignored): el usuario puede preferir `.claude/settings.local.json` + `.codex/config.toml`; snippets en `references/multiroot-manual.md`.
51
48
 
52
- Loop por cada fuente:
49
+ Diagnóstico: `agent-workflow visibility doctor --workspace .` (lee `settings.json` **y** `settings.local.json`). Legacy global contaminado: `visibility doctor --global` + `detach-multiroot --global --from-sources`.
53
50
 
54
- - **Alias** kebab-case único.
55
- - **Path absoluto** al repo. Validar `os.path.isdir(path)` y que sea repo git (`<path>/.git/` o `git -C <path> rev-parse --git-dir`).
56
- - **Rama de trabajo actual**: default sugerido = `git -C <path> rev-parse --abbrev-ref HEAD`. Usuario acepta o sobreescribe.
51
+ ## Flags
57
52
 
58
- **NO preguntar la rama principal**: el CLI usa `"certificacion"` como default interno. Override sólo con `--main-branch <rama>` (raro).
59
-
60
- Mínimo 2 fuentes en flujo limpio. En "agregar a hub existente", mínimo 1 nueva.
61
-
62
- ### 4. Validaciones cross-fuente
63
-
64
- Antes de persistir:
65
-
66
- - **Aliases únicos**: si duplicó, error y reintenta.
67
- - **Paths existen + son git repos**: si falla, error y reintenta esa entrada.
68
- - **Rama declarada vs actual**: comparar con `git -C <path> rev-parse --abbrev-ref HEAD`. Si difieren → advertir (no bloquear). Sugerir `git checkout` o aceptar la actual.
69
-
70
- ### 5. Auto-detectar stack del CWD
71
-
72
- ```
73
- agent-workflow stack
74
- ```
75
-
76
- En hub workspaces el CWD suele ser un directorio "base" sin stack propio. Si auto-detección falla → `_Workspace base — stack heterogéneo (ver fuentes individuales)._` en `## Stack`.
77
-
78
- Para stack de cada fuente individual: `agent-workflow stack --all-sources` (después del init).
79
-
80
- ### 6. Persistir bloque + visibilidad (atómico desde v1.1.0)
81
-
82
- Una sola invocación atómica al CLI. `agent-workflow hub-init` (introducido en v1.1.0, soportado por `agent-workflow-cli`) orquesta `project-md-upsert --init` + `attach-multiroot --from-sources` en un solo paso. Garantiza que el workspace queda consistente: bloque AW-PROJECT persistido **y** visibility configurada per-workspace, sin pasos separados que el AI pueda olvidar.
83
-
84
- ```
85
- agent-workflow hub-init \
86
- --proyecto "<descripción>" \
87
- --fuente "alias1:path1" --fuente "alias2:path2" \
88
- --working-branch "alias1:rama1" --working-branch "alias2:rama2"
89
- ```
90
-
91
- El comando:
92
-
93
- - Escribe `CLAUDE.md` y `AGENTS.md` del CWD con bloque `## Proyecto` (Mode: hub), `## Fuentes`, `## Stack`, `## Status` con `- Ramas de trabajo actuales:` + sesiones activas.
94
- - Mergea paths en `<CWD>/.claude/settings.json → permissions.additionalDirectories` con backup `.bak.<timestamp>`.
95
- - Mergea paths en `<CWD>/.codex/config.toml → additional_writable_roots` + bloques `[projects.'<path>'] trust_level = "trusted"` con backup.
96
- - Output JSON consolidado: `{ok, dry_run, workspace, project_md:{…}, attach_multiroot:{scope,scope_dir,paths_input,claude:{…},codex:{…}}}`.
97
-
98
- Reportar al usuario: paths registrados, ubicación de cada archivo (énfasis en que están dentro del hub, no en `~`), backups generados.
99
-
100
- #### Flags adicionales
101
-
102
- - `--main-branch <rama>`: override del default interno `certificacion`.
103
- - `--workspace <DIR>`: override cuando el CWD no es la raíz del hub.
104
- - `--skip-attach`: opt-out del paso de visibility (usar si el usuario prefiere configuración manual o la corre con `attach-multiroot` directamente).
105
- - `--dry-run`: previsualizar sin escribir.
106
-
107
- #### Si el usuario prefiere visibility manual
108
-
109
- Si `--skip-attach`, el AI debe avisar al usuario que tiene que correr `attach-multiroot` después o configurar manualmente. Snippets de referencia en `references/multiroot-manual.md`.
110
-
111
- #### Revertir contaminación global previa
112
-
113
- Si en versiones anteriores los paths quedaron en `~/.claude/...` / `~/.codex/...` (legacy v3.3.3 o pre-v1.1.0), correr el inspector y la limpieza:
114
-
115
- ```
116
- agent-workflow visibility doctor --workspace . --global
117
- agent-workflow detach-multiroot --global --from-sources
118
- ```
119
-
120
- `visibility doctor --global` reporta paths del hub presentes en scope global con sugerencia explícita; `detach-multiroot --global` los remueve idempotentemente.
121
-
122
- ### 7. Reportar
123
-
124
- - Archivos modificados (CLAUDE.md, AGENTS.md, settings.json, config.toml).
125
- - N fuentes registradas con aliases, paths, ramas.
126
- - Estado de visibilidad multi-root (paths registrados + scope).
127
- - Próximos pasos: `/agent-workflow:session "<objetivo>"` para crear primera sesión cross-cutting.
53
+ - `--attach` opt-in: además del bloque, configura la visibilidad multi-root.
54
+ - `--main-branch <rama>` — override del default `certificacion`.
55
+ - `--workspace <DIR>` override si el CWD no es la raíz del hub.
56
+ - `--dry-run` — previsualizar sin escribir.
128
57
 
129
58
  ## Reglas
130
59
 
131
- - **Mínimo 2 fuentes** en flujo limpio. Si quiere 1, redirigir a `/agent-workflow:project-init`.
132
- - **Promoción auto-detectada**: bloques `mode=project` con ≥1 fuente se detectan; sin flag `--promote`.
60
+ - **Mínimo 2 fuentes**. Si quiere 1 `/agent-workflow:project-init`.
61
+ - **Default = solo bloque**. La visibilidad no se configura salvo `--attach` o pedido explícito.
133
62
  - **Idempotente**: re-ejecución con datos idénticos es no-op.
134
63
  - **No tocar legacy QTC-WORKFLOW**: avisar y delegar a migrate.
135
- - **Visibilidad multi-root atómica** (v1.1.0+): el paso 6 colapsa init + attach en `agent-workflow hub-init`. Idempotente con backup. Si el usuario quiere opt-out: `--skip-attach` (la skill avisa que la visibility queda pendiente).
136
64
 
137
65
  ## Política — sin fallback al CLI
138
66
 
139
- Si `agent-workflow workspace-mode|stack|hub-init|attach-multiroot|detach-multiroot|visibility` falla (no está en PATH, comando no reconocido, exit code != 0), **cortá la acción y reportá al usuario**: pedile que verifique `npm install -g @tacuchi/agent-workflow-cli`. No hay flujo alternativo Python.
67
+ Si `agent-workflow workspace-mode|hub-init|attach-multiroot|visibility` falla (no está en PATH, exit 0), **cortá la acción y reportá**: pedí verificar `npm install -g @tacuchi/agent-workflow-cli`. No hay flujo Python alterno.
140
68
 
141
69
  ## Sandbox read-only
142
70
 
143
- `../session/references/sandbox-readonly-rules.md`. Plan describe:
144
-
145
- - Archivos a crear/modificar: `CLAUDE.md`, `AGENTS.md`, `<CWD>/.claude/settings.json`, `<CWD>/.codex/config.toml`.
146
- - Bloque AW-PROJECT a escribir: fuentes + ramas + `Mode: hub`.
147
- - Validaciones cross-fuente que se correrían (sin ejecutar `git` ni mutar).
148
- - Si reemplaza bloque existente o promociona desde project, indicarlo.
149
-
150
- NO ejecutar `hub-init`, `project-md-upsert --init`, `attach-multiroot`, ni `git rev-parse` en plan mode.
71
+ `../session/references/sandbox-readonly-rules.md`. En plan mode describí: archivos a crear (`CLAUDE.md`, `AGENTS.md`; + `settings.json`/`config.toml` solo si `--attach`), y el bloque AW-PROJECT (fuentes + ramas + `Mode: hub`). NO ejecutar `hub-init` / `attach-multiroot` en plan mode.
151
72
 
152
- ## Recursos adicionales
73
+ ## Recursos
153
74
 
154
- - **`references/multiroot-manual.md`** — snippets de configuración manual si el usuario declina la automatización.
155
- - **shared-contract §27** (Hub mode) — definición canónica del modo, API, marcador.
75
+ - **`references/multiroot-manual.md`** — visibility manual / `settings.local.json`.
156
76
  - **`/agent-workflow:project-init`** — equivalente single-repo.
157
- - **CLI `--main-branch <rama>`** — override de la rama principal (default interno: `certificacion`).