@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.
- package/dist/application/hub-init-service.d.ts +2 -1
- package/dist/application/hub-init-service.d.ts.map +1 -1
- package/dist/application/hub-init-service.js +6 -6
- package/dist/application/hub-init-service.js.map +1 -1
- package/dist/application/multiroot/codex.js +3 -3
- package/dist/application/visibility-doctor-service.js +22 -6
- package/dist/application/visibility-doctor-service.js.map +1 -1
- package/dist/cli/commands/hub-init.d.ts +0 -24
- package/dist/cli/commands/hub-init.d.ts.map +1 -1
- package/dist/cli/commands/hub-init.js +15 -93
- package/dist/cli/commands/hub-init.js.map +1 -1
- package/dist/cli/interactive-menu.d.ts +1 -1
- package/dist/cli/interactive-menu.d.ts.map +1 -1
- package/dist/cli/main.js +0 -3
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/parsers/fuentes.d.ts.map +1 -1
- package/dist/cli/parsers/fuentes.js +6 -1
- package/dist/cli/parsers/fuentes.js.map +1 -1
- package/dist/cli/tui/app.js +0 -5
- package/dist/cli/tui/app.js.map +1 -1
- package/dist/cli/tui/components/hub-init-alias.d.ts +5 -0
- package/dist/cli/tui/components/hub-init-alias.d.ts.map +1 -0
- package/dist/cli/tui/components/hub-init-alias.js +19 -0
- package/dist/cli/tui/components/hub-init-alias.js.map +1 -0
- package/dist/cli/tui/components/hub-init-form.d.ts +13 -0
- package/dist/cli/tui/components/hub-init-form.d.ts.map +1 -0
- package/dist/cli/tui/components/hub-init-form.js +73 -0
- package/dist/cli/tui/components/hub-init-form.js.map +1 -0
- package/dist/cli/tui/tabs/project-tab.d.ts.map +1 -1
- package/dist/cli/tui/tabs/project-tab.js +51 -26
- package/dist/cli/tui/tabs/project-tab.js.map +1 -1
- package/package.json +1 -1
- package/skills/agent-workflow/commands/hub-init.md +24 -47
- 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
|
|
4
|
-
version:
|
|
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` (
|
|
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
|
-
|
|
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
|
-
##
|
|
13
|
+
## La vía fácil: el TUI
|
|
14
14
|
|
|
15
|
-
-
|
|
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
|
-
##
|
|
17
|
+
## Cuándo usar la vía CLI/host
|
|
19
18
|
|
|
20
|
-
|
|
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
|
|
22
|
+
## Flujo (host) — mínimo
|
|
30
23
|
|
|
31
|
-
|
|
24
|
+
No sobre-validar ni preguntar de más. El comando solo persiste lo declarado.
|
|
32
25
|
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
41
|
+
## Visibilidad multi-root (opt-in, aparte)
|
|
47
42
|
|
|
48
|
-
|
|
43
|
+
Para que los hosts escriban en los repos fuente, configurá visibilidad — **solo si el usuario lo pide**:
|
|
49
44
|
|
|
50
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
|
132
|
-
- **
|
|
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|
|
|
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`.
|
|
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
|
|
73
|
+
## Recursos
|
|
153
74
|
|
|
154
|
-
- **`references/multiroot-manual.md`** —
|
|
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`).
|