zugzbot 1.1.5 → 1.1.7
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.
|
@@ -85,13 +85,15 @@ Eres el coordinador principal del arnés de desarrollo SDD (Spec-Driven Developm
|
|
|
85
85
|
- Lista resumida de `files_affected` para ESTE sprint (si dividiste)
|
|
86
86
|
- Sección `brain_learnings` del brief
|
|
87
87
|
- *Instrucción clave:* Indica si requiere bootstrap. Prohíbe formalmente el uso de `brain_read_memory` (ya está inyectado). Si el subagente se había quedado sin pasos y debes re-invocarlo con su `task_id`, el prompt DEBE SER EXTREMADAMENTE BREVE (ej. "Te quedaste sin pasos. Tu contexto y tareas ya están en tu historial. Revisa lo que falta y continúa."). NO incluyas código ni listas largas para no contaminar el contexto.
|
|
88
|
-
3. **
|
|
88
|
+
3. **Micro-Fixes (Anti-Spec Spam)**: Si el usuario reporta un bug, un desajuste visual o pide una pequeña corrección sobre lo que acabas de entregar, **TIENES PROHIBIDO crear un nuevo spec en F1**. Debes mantener el estado actual en `activeContract`, transicionar/mantener a `F2_IMPLEMENTATION`, y delegar el arreglo al Coder. Solo crea nuevos specs en F1 si el usuario solicita una característica completamente nueva.
|
|
89
|
+
4. **Verificación de Servidor y HMR**:
|
|
89
90
|
- **Si la categoría es 'script' o 'tooling' (Track Agnóstico):** No hay un dev server web que correr. Salta directamente este paso y transiciona de forma inmediata a F3.
|
|
90
91
|
- **De lo contrario (Web Next/FastAPI):**
|
|
92
|
+
- Next.js y tu stack frontend usan **Hot Module Replacement (HMR)**. Queda ESTRICTAMENTE PROHIBIDO detener y reiniciar el servidor (`sdd_network_stop_server` / `start_server`) para comprobar cambios de interfaz, CSS o componentes. El servidor se actualiza solo en vivo. Únicamente reinicia el servidor si hubo cambios en `next.config.ts`, `tailwind.config`, o instalación de dependencias muy pesadas.
|
|
91
93
|
- En autopiloto: Aprueba directo si el server corre sin errores fatales. Transiciona a F3.
|
|
92
94
|
- En modo `console`: Dile al usuario que verifique localmente en `http://localhost:3000`. Prohibido usar Playwright.
|
|
93
95
|
- En modo `visual`: Toma screenshot en `.openspec/ts-f2-hil.png` y preséntalo para aprobación.
|
|
94
|
-
|
|
96
|
+
5. Transiciona a `F3_VERIFICATION` llamando a `sdd_set_phase`. **Bajo ninguna circunstancia te saltes la fase F3 después de que el Coder haya intervenido, incluso para micro-fixes visuales**.
|
|
95
97
|
</f2_implementation>
|
|
96
98
|
|
|
97
99
|
<f3_verification>
|
|
@@ -115,8 +117,9 @@ Eres el coordinador principal del arnés de desarrollo SDD (Spec-Driven Developm
|
|
|
115
117
|
</f4_deployment>
|
|
116
118
|
|
|
117
119
|
<rollbacks>
|
|
118
|
-
1. Si se reportan fallos,
|
|
120
|
+
1. Si se reportan fallos en tests o linter en F3, haz un rollback de la estructura y regresa a `F2_IMPLEMENTATION` usando `sdd_set_phase` y delega la corrección al subagente experto (`@sdd-coder`). Bajo ninguna circunstancia puedes usar la herramienta `edit` o `write` para arreglar código, ni siquiera en modo autopiloto.
|
|
119
121
|
2. Si una misma fase falla más de 2 veces consecutivas, presenta el error al usuario con el contexto completo en vez de seguir intentando.
|
|
122
|
+
3. **Estado Corrupto**: Si detectas que el estado actual es `F2_IMPLEMENTATION` o superior, pero la propiedad `activeContract` está vacía o el archivo del contrato ya no existe, asume que la sesión previa se corrompió. Limpia el estado transicionando automáticamente a `F0_DETECT` antes de procesar el requerimiento del usuario.
|
|
120
123
|
</rollbacks>
|
|
121
124
|
|
|
122
125
|
<completion>
|
|
@@ -152,8 +152,44 @@ El `@sdd-spec-writer` utiliza de manera proactiva el MCP `shadcn` (`shadcn_searc
|
|
|
152
152
|
### Fase F2 (Implementation)
|
|
153
153
|
El `@sdd-coder` utiliza el template base `nextjs-shadcn`. Si el contrato no detalla todos los sub-componentes o el Coder necesita verificar el comportamiento de un bloque antes de acoplarlo con el backend, debe ejecutar `shadcn_get_item_examples_from_registries` para ver ejemplos funcionales del componente real. Tras ejecutar la instalación con `npx shadcn@latest add`, el Coder debe contrastar los archivos inyectados con el mapa del contrato y limpiar de inmediato cualquier archivo redundante (como una página de inicio duplicada) que no coincida con el router oficial.
|
|
154
154
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
155
|
+
## 5. Catálogo Externo Oficial: Shadcn UI Blocks (Akash)
|
|
156
|
+
|
|
157
|
+
Además del catálogo nativo de Shadcn UI, dispones de acceso autónomo a más de 200 bloques de alta calidad del repositorio **Shadcn UI Blocks (por Akash)**. Si el usuario solicita una interfaz relacionada con landings, marketing, autenticación, footers o dashboards, **TIENES LA OBLIGACIÓN** de explorar este catálogo ANTES de proponer crear componentes desde cero.
|
|
158
|
+
|
|
159
|
+
### 5.1 Flujo de Descubrimiento (Fase F1 - Spec-Writer)
|
|
160
|
+
Si el usuario solicita una interfaz (ej: "necesito un hero", "haz un footer"), no asumas que debes programarlo a mano. Primero consulta la lista maestra de bloques en tiempo real:
|
|
161
|
+
- **Comando a usar:** Ejecuta la herramienta `webfetch` apuntando a la API de GitHub:
|
|
162
|
+
`webfetch("https://api.github.com/repos/akash3444/shadcn-ui-blocks/contents/public/r/radix")`
|
|
163
|
+
- **Análisis de resultados:** El JSON devuelto listará todos los bloques (`hero-01.json`, `footer-05.json`, `pricing-02.json`, etc.). Selecciona mentalmente los que coincidan con la necesidad.
|
|
164
|
+
|
|
165
|
+
### 5.2 Selección de Bloques (Interactiva o Autónoma)
|
|
166
|
+
Cuando existan múltiples opciones para un mismo tipo de bloque (ej. 10 footers distintos):
|
|
167
|
+
- **Modo Asistido (Por defecto):** Utiliza la herramienta `question` para preguntarle al usuario o dile explícitamente en el chat: *"Tengo acceso a la galería de Shadcn UI Blocks. He encontrado X opciones de [categoria]. ¿Quieres que revise algunas en particular o te dejo el enlace visual (`https://www.shadcnui-blocks.com/blocks/categories/[categoria]`) para que elijas la que más te guste?"*.
|
|
168
|
+
- **Modo Autopiloto (`/loop`):** Si estás actuando de forma 100% autónoma, lee el código fuente de 2 o 3 opciones al azar utilizando `webfetch("https://raw.githubusercontent.com/akash3444/shadcn-ui-blocks/main/public/r/radix/[bloque].json")` para analizar qué código encaja mejor con la petición y elígelo autónomamente sin preguntar.
|
|
169
|
+
|
|
170
|
+
### 5.3 Inyección e Instalación (Contrato y Coder)
|
|
171
|
+
- **Spec-Writer (F1):** En el `contract.json`, dentro de `frontend.components`, anota el bloque utilizando la URL remota directa:
|
|
172
|
+
```json
|
|
173
|
+
"frontend": {
|
|
174
|
+
"components": [
|
|
175
|
+
"https://shadcnui-blocks.com/r/radix/footer-04.json"
|
|
176
|
+
]
|
|
177
|
+
}
|
|
178
|
+
```
|
|
179
|
+
- **Coder (F2):** Para instalar estos bloques externos, utiliza la capacidad nativa de la CLI v3 de Shadcn. Ejecuta directamente el comando apuntando a la URL:
|
|
180
|
+
```bash
|
|
181
|
+
npx shadcn@latest add https://shadcnui-blocks.com/r/radix/footer-04.json
|
|
182
|
+
```
|
|
183
|
+
La CLI se encargará automáticamente de descargar el código y resolver dependencias internas.
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## 6. Patrones Avanzados de Layout CSS
|
|
188
|
+
|
|
189
|
+
### 6.1 Patrón de Fullscreen Layouts y Centrado (CRÍTICO)
|
|
190
|
+
Cuando necesites crear un Hero, Landing, o Splash screen que deba ocupar el 100% de la pantalla visible y tener su contenido perfectamente centrado, evita mezclar clases CSS que peleen entre sí. Sigue **estrictamente** este patrón:
|
|
191
|
+
- **Contenedor Padre**: Usa `min-h-[100dvh] flex flex-col`.
|
|
192
|
+
- **Contenedor Interno (Wrapper)**: Usa `flex-1 flex items-center justify-center w-full`.
|
|
193
|
+
- **Contenido Central**: Usa `mx-auto max-w-[ancho-deseado] flex flex-col items-center text-center`.
|
|
194
|
+
- **PROHIBICIÓN ESTRICTA DE `w-full` EN FLEX HIJOS**: Si el contenedor padre usa `flex` con `items-center` para centrar, **NO** le pongas `w-full` al hijo interno si quieres que no se "pegue" a la izquierda en pantallas ultra anchas. El `w-full` forzará al elemento a ocupar el 100% del contenedor padre flex y anulará el centrado horizontal. Usa siempre `mx-auto` explícitamente en el elemento hijo para garantizar que quede centrado dentro de su propia columna.
|
|
159
195
|
|
|
@@ -9,7 +9,7 @@ DB_PATH = "/Users/wavesbyte/.local/share/opencode/opencode.db"
|
|
|
9
9
|
|
|
10
10
|
# Escribe aquí el ID de la sesión que deseas exportar (ejemplo: "ses_1234...")
|
|
11
11
|
# Si se deja vacío, el script requerirá el ID como argumento al ejecutarlo
|
|
12
|
-
TARGET_SESSION_ID = "
|
|
12
|
+
TARGET_SESSION_ID = "ses_117b"
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
def format_timestamp(ts):
|
package/opencode.json
CHANGED
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://opencode.ai/config.json",
|
|
3
3
|
"agent": {
|
|
4
|
+
"sdd-orchestrator": {
|
|
5
|
+
"permission": {
|
|
6
|
+
"edit": "deny",
|
|
7
|
+
"write": "deny",
|
|
8
|
+
"bash": "deny"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
4
11
|
"sdd-spec-writer": {
|
|
5
12
|
"mode": "subagent",
|
|
6
13
|
"permission": {
|
|
7
|
-
"webfetch": "
|
|
14
|
+
"webfetch": "allow"
|
|
8
15
|
},
|
|
9
16
|
"model": "deepseek/deepseek-v4-flash"
|
|
10
17
|
}
|