@tacuchi/agent-workflow-cli 10.2.1 → 10.3.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.
- 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 +48 -15
- package/dist/application/hub-init-service.js.map +1 -1
- package/dist/application/multiroot/claude.d.ts.map +1 -1
- package/dist/application/multiroot/claude.js +4 -1
- package/dist/application/multiroot/claude.js.map +1 -1
- package/dist/application/multiroot/codex.js +3 -3
- package/dist/application/project-md-upsert-service.d.ts +2 -0
- package/dist/application/project-md-upsert-service.d.ts.map +1 -1
- package/dist/application/project-md-upsert-service.js +5 -2
- package/dist/application/project-md-upsert-service.js.map +1 -1
- 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 +14 -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 +22 -46
- package/skills/agent-workflow/doctrine/hub-init/SKILL.md +41 -123
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Inicializa un workspace en modo Hub (multi-repo) — bloque AW-PROJECT con Mode hub
|
|
2
|
+
description: Inicializa un workspace en modo Hub (multi-repo) — escribe el bloque AW-PROJECT con Mode hub y ≥2 fuentes (rutas + ramas) y SIEMPRE configura la visibilidad multi-root (settings.local.json + config.toml, gitignored), reconciliando fuentes. La forma interactiva vive en el TUI.
|
|
3
3
|
argument-hint: (opcional) --proyecto "descripción" | --fuente alias:path | --working-branch alias:rama | --main-branch <rama>
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
@@ -12,66 +12,42 @@ allowed-tools:
|
|
|
12
12
|
|
|
13
13
|
# Hub Init (agent-workflow)
|
|
14
14
|
|
|
15
|
-
Inicializa un **hub workspace** — un directorio que coordina ≥2 repos pares. Escribe el bloque `<!-- AW-PROJECT-START -->` en `CLAUDE.md` y `AGENTS.md` del
|
|
15
|
+
Inicializa un **hub workspace** — un directorio que coordina ≥2 repos pares. Escribe el bloque `<!-- AW-PROJECT-START -->` en `CLAUDE.md` y `AGENTS.md` del CWD con `Mode: hub` + la lista de fuentes (alias / path / rama) + ramas de trabajo. Además del bloque, **siempre** configura la visibilidad multi-root (gitignored) — sin preguntar.
|
|
16
16
|
|
|
17
|
-
> Distinto de `/agent-workflow:project-init` (single-repo). Hub mode activa heurísticas en el resto de la familia
|
|
17
|
+
> Distinto de `/agent-workflow:project-init` (single-repo). Hub mode activa heurísticas en el resto de la familia: `session` itera ramas por fuente, `implement` valida cross-repo, `release` agrupa por alias.
|
|
18
18
|
|
|
19
|
-
##
|
|
19
|
+
## La vía más simple: el TUI
|
|
20
20
|
|
|
21
|
-
-
|
|
22
|
-
- Sesiones cross-cutting que tocan múltiples repos a la vez.
|
|
21
|
+
`agent-workflow` → tab **Project** → **Initialize as hub**. Form interactivo (nombre + paths + rama base, alias inferido de la carpeta) dentro del TUI. Sin flags ni comandos a mano.
|
|
23
22
|
|
|
24
|
-
## Flujo
|
|
23
|
+
## Flujo (host) — mínimo
|
|
25
24
|
|
|
26
|
-
1. **Detectar
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
- Si no hay bloque → flujo limpio.
|
|
30
|
-
|
|
31
|
-
2. **Capturar descripción** (1-3 líneas, debe mencionar que coordina N repos).
|
|
32
|
-
|
|
33
|
-
3. **Capturar fuentes** (mínimo 2 en flujo limpio; ≥1 nueva en flujo "agregar"). Por cada una pedir solo:
|
|
34
|
-
- **Alias** kebab-case (único).
|
|
35
|
-
- **Path absoluto** al repo (validado: existe + es repo git).
|
|
36
|
-
- **Rama de trabajo actual** (default sugerido: `git -C <path> rev-parse --abbrev-ref HEAD`).
|
|
37
|
-
- **NO se pregunta la rama principal**: el CLI usa `certificacion` como default interno. Override con `--main-branch`.
|
|
38
|
-
|
|
39
|
-
4. **Validaciones cross-fuente**:
|
|
40
|
-
- Aliases únicos.
|
|
41
|
-
- Paths absolutos y existentes (`os.path.isdir`).
|
|
42
|
-
- Cada path es repo git (`<path>/.git/` o `git -C <path> rev-parse`).
|
|
43
|
-
- Si la rama de trabajo declarada no coincide con la rama actual del repo → advertir (no bloquear).
|
|
44
|
-
|
|
45
|
-
5. **Auto-detectar stack del CWD** (probablemente workspace base sin stack propio). Si no hay stack detectable, escribir `_Workspace base — stack heterogéneo (ver fuentes individuales)._`.
|
|
46
|
-
|
|
47
|
-
6. **Persistir** vía:
|
|
25
|
+
1. **Detectar** vía `agent-workflow workspace-mode`. Si ya es hub → agregar/reiniciar. Si es `project` con fuentes → ofrecer promover. Bloque de una topología legacy → delegar a `/agent-workflow:migrate`.
|
|
26
|
+
2. **Reunir**: descripción (1 línea), ≥2 fuentes (alias + path) — el **set completo** que querés, porque `hub-init` reemplaza el bloque (para agregar/remover, leé las actuales con `workspace-mode` y pasá el set final) — y rama base (default `certificacion`). El alias se infiere de la carpeta si no se da.
|
|
27
|
+
3. **Escribir + sincronizar** (un solo comando):
|
|
48
28
|
```
|
|
49
|
-
agent-workflow
|
|
50
|
-
--mode hub \
|
|
29
|
+
agent-workflow hub-init \
|
|
51
30
|
--proyecto "<descripción>" \
|
|
52
|
-
--fuente "alias1:path1" \
|
|
53
|
-
--
|
|
54
|
-
--working-branch "alias1:rama1" \
|
|
55
|
-
--working-branch "alias2:rama2"
|
|
31
|
+
--fuente "alias1:path1" --fuente "alias2:path2" \
|
|
32
|
+
[--working-branch "alias1:rama1" ...] [--main-branch <rama>]
|
|
56
33
|
```
|
|
34
|
+
Rutas Windows (`C:\Source\...`) van directo. Escribe `CLAUDE.md` + `AGENTS.md` **y** configura la visibilidad multi-root (siempre, ver abajo).
|
|
35
|
+
4. **Reportar** fuentes registradas + próximo paso (`/agent-workflow:session "<objetivo>"`).
|
|
57
36
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
## Visibilidad multi-root del cliente
|
|
61
|
-
|
|
62
|
-
`/agent-workflow:hub-init` solo captura los datos en el bloque AW-PROJECT. Para que Claude Code o Codex CLI vean los paths de las fuentes como writable, configurarlos manualmente:
|
|
37
|
+
## Visibilidad multi-root (automática, siempre)
|
|
63
38
|
|
|
64
|
-
-
|
|
65
|
-
- **Codex CLI**: editar `~/.codex/config.toml` con `additional_writable_roots = [...]` y entradas `[projects."<path>"]` con `trust_level = "trusted"`.
|
|
39
|
+
`hub-init` la configura en cada run, sin preguntar:
|
|
66
40
|
|
|
67
|
-
|
|
41
|
+
- **Gitignored** (rutas machine-specific): `<hub>/.claude/settings.local.json` (`permissions.additionalDirectories`) + `<hub>/.codex/config.toml` (`additional_writable_roots` + `[projects.'<path>'] trust_level`). Asegura el `.gitignore`.
|
|
42
|
+
- **Reconcile**: attachea las fuentes actuales y detachea las removidas vs el bloque previo (agregar/remover quedan sincronizados).
|
|
43
|
+
- Diagnóstico: `agent-workflow visibility doctor --workspace .` (lee `settings.json` y `settings.local.json`).
|
|
68
44
|
|
|
69
45
|
## Argumentos
|
|
70
46
|
|
|
71
|
-
Sin argumentos: flujo
|
|
47
|
+
Sin argumentos: el host arma el flujo mínimo de arriba (o usá el TUI).
|
|
72
48
|
|
|
73
49
|
- `--proyecto "<texto>"`
|
|
74
|
-
- `--fuente "alias:path[:rama]"` — repetible.
|
|
50
|
+
- `--fuente "alias:path[:rama]"` — repetible (mín 2).
|
|
75
51
|
- `--working-branch "alias:rama"` — repetible.
|
|
76
52
|
- `--main-branch <rama>` — override del default `certificacion`.
|
|
77
53
|
|
|
@@ -79,4 +55,4 @@ Sin argumentos: flujo interactivo.
|
|
|
79
55
|
|
|
80
56
|
## Skill asociada
|
|
81
57
|
|
|
82
|
-
Ver `
|
|
58
|
+
Ver `doctrine/hub-init/SKILL.md` para el flujo, la promoción project→hub y la visibilidad multi-root.
|
|
@@ -1,157 +1,75 @@
|
|
|
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) y SIEMPRE configura la visibilidad multi-root (settings.local.json + config.toml, gitignored), reconciliando fuentes agregadas/removidas. Sin prompt. La forma interactiva vive en el TUI (tab Project → Initialize as hub). Invocado vía /agent-workflow:hub-init.
|
|
4
|
+
version: 2.1.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. Además del bloque, **siempre** configura la visibilidad multi-root para que los hosts (Claude Code / Codex) vean los repos fuente — sin preguntar, en cada run.
|
|
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.
|
|
17
16
|
|
|
18
|
-
##
|
|
17
|
+
## Cuándo usar la vía CLI/host
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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.
|
|
21
|
+
- Agregar o remover una fuente de un hub existente (re-correr con el set nuevo).
|
|
28
22
|
|
|
29
|
-
## Flujo
|
|
23
|
+
## Flujo (host) — mínimo
|
|
30
24
|
|
|
31
|
-
|
|
25
|
+
No sobre-validar ni preguntar de más. El comando persiste lo declarado y sincroniza la visibilidad solo.
|
|
32
26
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
27
|
+
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`.
|
|
28
|
+
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.
|
|
29
|
+
3. **Escribir + sincronizar** (un solo comando):
|
|
36
30
|
|
|
37
|
-
|
|
31
|
+
```
|
|
32
|
+
agent-workflow hub-init \
|
|
33
|
+
--proyecto "<descripción>" \
|
|
34
|
+
--fuente "alias1:path1" --fuente "alias2:path2" \
|
|
35
|
+
[--working-branch "alias1:rama1" ...] \
|
|
36
|
+
[--main-branch <rama>]
|
|
37
|
+
```
|
|
38
38
|
|
|
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. |
|
|
39
|
+
Rutas Windows (`C:\Source\...`) van directo — el parser respeta el colon de unidad. Escribe `CLAUDE.md` + `AGENTS.md` (`## Proyecto` Mode: hub + `## Fuentes` + `## Stack` + `## Status`) **y** configura la visibilidad multi-root (ver abajo). No hace falta un paso aparte.
|
|
40
|
+
4. **Reportar**: fuentes registradas, paths con visibilidad, y próximo paso (`/agent-workflow:session "<objetivo>"`).
|
|
45
41
|
|
|
46
|
-
|
|
42
|
+
## Visibilidad multi-root (automática, siempre)
|
|
47
43
|
|
|
48
|
-
|
|
44
|
+
`hub-init` configura la visibilidad en **cada** run, sin prompt:
|
|
49
45
|
|
|
50
|
-
|
|
46
|
+
- **Target gitignored**: `<hub>/.claude/settings.local.json` (`permissions.additionalDirectories`) + `<hub>/.codex/config.toml` (`additional_writable_roots` + `[projects.'<path>'] trust_level`). Las rutas son absolutas/machine-specific, así que van en archivos per-máquina; `hub-init` también asegura el `.gitignore`.
|
|
47
|
+
- **Reconcile**: attachea las fuentes actuales y detachea las que estaban en el bloque previo y ya no (agregar/remover quedan sincronizados).
|
|
48
|
+
- 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`.
|
|
51
49
|
|
|
52
|
-
|
|
50
|
+
## Flags
|
|
53
51
|
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
|
|
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.
|
|
52
|
+
- `--main-branch <rama>` — override del default `certificacion`.
|
|
53
|
+
- `--workspace <DIR>` — override si el CWD no es la raíz del hub.
|
|
54
|
+
- `--dry-run` — previsualizar sin escribir (bloque + paths que se attachearían).
|
|
128
55
|
|
|
129
56
|
## Reglas
|
|
130
57
|
|
|
131
|
-
- **Mínimo 2 fuentes
|
|
132
|
-
- **
|
|
133
|
-
- **
|
|
58
|
+
- **Mínimo 2 fuentes**. Si quiere 1 → `/agent-workflow:project-init`.
|
|
59
|
+
- **Set autoritativo**: el `--fuente` declarado **reemplaza** el bloque (no merge). Para agregar/remover fuentes, pasá el set completo deseado (el form del TUI ya lo hace; por CLI, leé las fuentes actuales con `workspace-mode` y pasá el set final). `hub-init` reconcilia la visibilidad: detacha las removidas, attacha las actuales.
|
|
60
|
+
- **Visibilidad siempre**: se configura sola, sin preguntar, en init y en cualquier cambio de fuentes. No hay opt-out (salvo `--dry-run`, que no escribe nada).
|
|
61
|
+
- **Idempotente**: re-ejecución con datos idénticos es no-op (attach ya presente, sin cambios).
|
|
134
62
|
- **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
63
|
|
|
137
64
|
## Política — sin fallback al CLI
|
|
138
65
|
|
|
139
|
-
Si `agent-workflow workspace-mode|
|
|
66
|
+
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
67
|
|
|
141
68
|
## Sandbox read-only
|
|
142
69
|
|
|
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.
|
|
70
|
+
`../session/references/sandbox-readonly-rules.md`. En plan mode describí: archivos a crear (`CLAUDE.md`, `AGENTS.md`, `.claude/settings.local.json`, `.codex/config.toml`, `.gitignore`) y el bloque AW-PROJECT (fuentes + ramas + `Mode: hub`). NO ejecutar `hub-init` / `attach-multiroot` en plan mode.
|
|
151
71
|
|
|
152
|
-
## Recursos
|
|
72
|
+
## Recursos
|
|
153
73
|
|
|
154
|
-
- **`references/multiroot-manual.md`** —
|
|
155
|
-
- **shared-contract §27** (Hub mode) — definición canónica del modo, API, marcador.
|
|
74
|
+
- **`references/multiroot-manual.md`** — detalle de la visibility / formato de cada archivo.
|
|
156
75
|
- **`/agent-workflow:project-init`** — equivalente single-repo.
|
|
157
|
-
- **CLI `--main-branch <rama>`** — override de la rama principal (default interno: `certificacion`).
|