siesa-agents 2.1.90 → 2.1.91
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/claude/skills/sa-wds-visual-proposals/SKILL.md +6 -0
- package/package.json +1 -1
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/data/component-mapping.csv +47 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-01-init.md +148 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-01b-continue.md +79 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-02-bridge.md +114 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-02b-kit-warmup.md +96 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-03-scenarios.md +102 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-04-specs.md +97 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-05-prototype.md +102 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-06-handoff.md +96 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/templates/product-brief-bridge.md +68 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/templates/proposal-index.md +46 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/templates/trigger-map-bridge.md +54 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/workflow.md +82 -0
- package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/workflow_ext.md +195 -0
- package/siesa-agents/wds/config.yaml +20 -0
- package/siesa-agents/wds/data/agent-contracts.md +72 -0
- package/siesa-agents/wds/data/agent-guides/freya/agentic-development.md +223 -0
- package/siesa-agents/wds/data/agent-guides/freya/content-creation.md +270 -0
- package/siesa-agents/wds/data/agent-guides/freya/design-system.md +333 -0
- package/siesa-agents/wds/data/agent-guides/freya/meta-content-guide.md +495 -0
- package/siesa-agents/wds/data/agent-guides/freya/specification-quality.md +262 -0
- package/siesa-agents/wds/data/agent-guides/freya/strategic-design.md +116 -0
- package/siesa-agents/wds/data/agent-guides/saga/content-structure-principles.md +190 -0
- package/siesa-agents/wds/data/agent-guides/saga/conversational-followups.md +372 -0
- package/siesa-agents/wds/data/agent-guides/saga/discovery-conversation.md +265 -0
- package/siesa-agents/wds/data/agent-guides/saga/dream-up-approach.md +1034 -0
- package/siesa-agents/wds/data/agent-guides/saga/inspiration-analysis.md +215 -0
- package/siesa-agents/wds/data/agent-guides/saga/resources/project-brief.template.md +187 -0
- package/siesa-agents/wds/data/agent-guides/saga/seo-strategy-guide.md +391 -0
- package/siesa-agents/wds/data/agent-guides/saga/strategic-documentation.md +454 -0
- package/siesa-agents/wds/data/agent-guides/saga/trigger-mapping.md +653 -0
- package/siesa-agents/wds/data/agent-guides/saga/working-with-existing-materials.md +172 -0
- package/siesa-agents/wds/data/design-system/component-boundaries.md +318 -0
- package/siesa-agents/wds/data/design-system/figma-component-structure.md +697 -0
- package/siesa-agents/wds/data/design-system/naming-conventions.md +200 -0
- package/siesa-agents/wds/data/design-system/state-management.md +93 -0
- package/siesa-agents/wds/data/design-system/token-architecture.md +474 -0
- package/siesa-agents/wds/data/design-system/validation-patterns.md +74 -0
- package/siesa-agents/wds/data/presentations/freya-how-i-help.md +63 -0
- package/siesa-agents/wds/data/presentations/freya-intro.md +269 -0
- package/siesa-agents/wds/data/presentations/freya-presentation.md +77 -0
- package/siesa-agents/wds/data/presentations/freya-workflows-guide.md +51 -0
- package/siesa-agents/wds/data/presentations/mimir-agents-overview.md +66 -0
- package/siesa-agents/wds/data/presentations/mimir-tone-setting.md +48 -0
- package/siesa-agents/wds/data/presentations/saga-how-i-help.md +62 -0
- package/siesa-agents/wds/data/presentations/saga-intro.md +285 -0
- package/siesa-agents/wds/data/presentations/saga-presentation.md +74 -0
- package/siesa-agents/wds/data/presentations/saga-workflows-guide.md +48 -0
- package/siesa-agents/wds/data/shared-activation.md +49 -0
- package/siesa-agents/wds/data/wds-glossary.md +98 -0
- package/siesa-agents/wds/module-help.csv +19 -0
- package/siesa-agents/wds/scripts/README.md +155 -0
- package/siesa-agents/wds/scripts/wds-add-object.js +207 -0
- package/siesa-agents/wds/scripts/wds-add-spacing.js +158 -0
- package/siesa-agents/wds/scripts/wds-init-page.js +234 -0
- package/siesa-agents/wds/scripts/wds-init-scenario.js +125 -0
- package/siesa-agents/wds/scripts/wds-nav.js +206 -0
- package/siesa-agents/wds/scripts/wds-validate.js +306 -0
- package/siesa-agents/wds/skills/freya.activation.md +204 -0
- package/siesa-agents/wds/skills/handoff.md +91 -0
- package/siesa-agents/wds/skills/saga.activation.md +169 -0
- package/siesa-agents/wds/skills/shared/git.md +55 -0
- package/siesa-agents/wds/skills/start.md +99 -0
- package/siesa-agents/wds/skills/wrap.md +198 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-04-specs'
|
|
3
|
+
description: 'Puebla cada page-spec con objetos mapeados a componentes siesa-ui-kit y spacing, en español, y valida estructuralmente'
|
|
4
|
+
|
|
5
|
+
workflow_path: '{project-root}/_siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals'
|
|
6
|
+
thisStepFile: '{workflow_path}/steps/step-04-specs.md'
|
|
7
|
+
nextStepFile: '{workflow_path}/steps/step-05-prototype.md'
|
|
8
|
+
|
|
9
|
+
wds_scripts: '{project-root}/_siesa-agents/wds/scripts'
|
|
10
|
+
add_object: '{wds_scripts}/wds-add-object.js'
|
|
11
|
+
add_spacing: '{wds_scripts}/wds-add-spacing.js'
|
|
12
|
+
validate: '{wds_scripts}/wds-validate.js'
|
|
13
|
+
|
|
14
|
+
componentMappingData: '{workflow_path}/data/component-mapping.csv'
|
|
15
|
+
siesa_uikit_catalog_url: 'https://siesa-ui-kit.pages.dev/llms.txt'
|
|
16
|
+
kit_grounding: '{design_artifacts}/_kit-playground/kit-grounding.md'
|
|
17
|
+
freya_spec_quality: '{project-root}/_siesa-agents/wds/data/agent-guides/freya/specification-quality.md'
|
|
18
|
+
freya_design_system: '{project-root}/_siesa-agents/wds/data/agent-guides/freya/design-system.md'
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Step 4: Page Specs con siesa-ui-kit (Phase 4 WDS)
|
|
22
|
+
|
|
23
|
+
## STEP GOAL
|
|
24
|
+
|
|
25
|
+
Rellenar cada página con sus objetos UI (mapeados a componentes **siesa-ui-kit**), spacing y tipografía, con todo el texto en **español**, y dejar las specs validando sin errores.
|
|
26
|
+
|
|
27
|
+
## MANDATORY EXECUTION RULES
|
|
28
|
+
|
|
29
|
+
- 🧩 NEVER edit the page markdown by hand — use `wds-add-object.js` / `wds-add-spacing.js`
|
|
30
|
+
- 🧪 **GROUNDING FIRST**: load `{kit_grounding}` (de step-02b) and treat it as the **authoritative source** for component names and props. If `{kit_grounding}` and the catalog (`llms.txt`) disagree, **el grounding gana** (usa el nombre/contrato real, p. ej. `ContentLayout` no `LayoutContent`; no inventes `Dashboard`/`StatCard`). If `{kit_grounding}` is missing, go back and run step-02b.
|
|
31
|
+
- 🔴 siesa-ui-kit FIRST: cada objeto se mapea a un componente del catálogo antes de considerar algo custom
|
|
32
|
+
- 🇪🇸 Texto de UI en español → va en `--se`; referencia en inglés → `--en`
|
|
33
|
+
- 📖 Read this entire file first; load `{freya_spec_quality}` and `{freya_design_system}`
|
|
34
|
+
- ✅ Speak in `{communication_language}`
|
|
35
|
+
|
|
36
|
+
## EXECUTION SEQUENCE
|
|
37
|
+
|
|
38
|
+
### 1. Load Grounding + Catalog (grounding wins)
|
|
39
|
+
|
|
40
|
+
1. **FIRST** load `{kit_grounding}` (real package truth from step-02b): exact export names, prop signatures, and the "hallucinations caught" table. This is authoritative.
|
|
41
|
+
2. Then load the catalog (`{siesa_uikit_catalog_url}`) and `{componentMappingData}` as a secondary reference. When they conflict with the grounding, **use the grounding** (real names/props).
|
|
42
|
+
3. Prefer **view-level** components when a whole page matches — but use the **real export names from the grounding** (e.g. `ContentLayout`, `MasterCrud`, `MasterPatternView`, `ListView`, `LoginView`; note there is no `Dashboard`/`StatCard` export — compose with `Card`).
|
|
43
|
+
|
|
44
|
+
### 2. For Each Page — Define Objects
|
|
45
|
+
|
|
46
|
+
Walk the page's originating story + acceptance criteria. For each UI element, decide the section (e.g. "Encabezado", "Formulario", "Acciones") and the siesa-ui-kit component, then append:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
node {add_object} \
|
|
50
|
+
--page "{design_artifacts}/C-UX-Scenarios/<scenario-slug>/<page-slug>/<page-slug>.md" \
|
|
51
|
+
--section "<Sección>" \
|
|
52
|
+
--object "<Nombre del objeto>" \
|
|
53
|
+
--component "<Componente siesa-ui-kit>" \
|
|
54
|
+
--se "<Texto en ESPAÑOL>" \
|
|
55
|
+
--en "<English reference>" \
|
|
56
|
+
--behavior "<comportamiento, ej. onClick: enviar formulario>"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Component Decision Protocol** (per workflow_ext.md §3) — **automático, sin preguntar**: si la necesidad NO está en siesa-ui-kit, **busca el componente en shadcn** (registro MCP de shadcn). Si existe en shadcn, úsalo. Si tampoco está en shadcn, **el agente crea el componente** (componiendo primitivos + tokens de marca). Registra la decisión (`kit` / `shadcn` / `custom`) en el design log.
|
|
60
|
+
|
|
61
|
+
For `MasterCrud`-shaped pages (listados con CRUD), consult the `MasterCrud` skill for the contract and capture its key props as object behaviors.
|
|
62
|
+
|
|
63
|
+
### 3. For Each Page — Define Spacing
|
|
64
|
+
|
|
65
|
+
Add the spacing decisions that shape the layout rhythm:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
node {add_spacing} \
|
|
69
|
+
--page "{design_artifacts}/C-UX-Scenarios/<scenario-slug>/<page-slug>/<page-slug>.md" \
|
|
70
|
+
--direction <v|h> --type <space|separator|line> --size <zero|sm|md|lg|xl|2xl|3xl|flex> \
|
|
71
|
+
--reason "<por qué, en español>"
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 4. Add Source Traceability
|
|
75
|
+
|
|
76
|
+
In each page's "Reference Materials" / "Overview", add the `[Source: <Épica>/<Historia>/FR-x]` line recorded in step-03, and set Success Criteria from the story's acceptance criteria.
|
|
77
|
+
|
|
78
|
+
### 5. Validate
|
|
79
|
+
|
|
80
|
+
Run validation and fix every error before proceeding:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
node {validate} --all --output {design_artifacts}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Common fixes: missing SE/EN content, Object IDs not kebab-case or wrong page prefix, missing sketches folder, wrong nav row count. Re-run until 0 errors.
|
|
87
|
+
|
|
88
|
+
### 6. Update Log & Proceed
|
|
89
|
+
|
|
90
|
+
Update the design log "Current" to "Phase 4 — render de prototipos". Load and execute `{nextStepFile}`.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 🚨 SUCCESS / FAILURE
|
|
95
|
+
|
|
96
|
+
✅ Todos los objetos mapeados a siesa-ui-kit, texto en español, `wds-validate.js --all` con 0 errores, trazabilidad presente.
|
|
97
|
+
❌ Componentes custom sin pasar por el protocolo; UI en inglés; specs que no validan; objetos sin componente asignado.
|
package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-05-prototype.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-05-prototype'
|
|
3
|
+
description: 'Fase de prototipado: construye UNA app integrada navegable con los componentes reales de siesa-ui-kit y la verifica en navegador'
|
|
4
|
+
|
|
5
|
+
workflow_path: '{project-root}/_siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals'
|
|
6
|
+
thisStepFile: '{workflow_path}/steps/step-05-prototype.md'
|
|
7
|
+
nextStepFile: '{workflow_path}/steps/step-06-handoff.md'
|
|
8
|
+
|
|
9
|
+
freya_agentic: '{project-root}/_siesa-agents/wds/data/agent-guides/freya/agentic-development.md'
|
|
10
|
+
base_ux_spec: '{project-root}/_siesa-agents/resources/ux-ui/ux-design-specification.md'
|
|
11
|
+
siesa_uikit_catalog_url: 'https://siesa-ui-kit.pages.dev/llms.txt'
|
|
12
|
+
kit_grounding: '{design_artifacts}/_kit-playground/kit-grounding.md'
|
|
13
|
+
kit_playground: '{design_artifacts}/_kit-playground'
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Step 5: Prototipos Renderizados (Visual Design)
|
|
17
|
+
|
|
18
|
+
## STEP GOAL
|
|
19
|
+
|
|
20
|
+
Producir prototipos **navegables y visibles** de las páginas especificadas, fieles a siesa-ui-kit, y verificarlos en navegador. Este es el entregable que el diseñador "ve".
|
|
21
|
+
|
|
22
|
+
## MANDATORY EXECUTION RULES
|
|
23
|
+
|
|
24
|
+
- 📖 Read this entire file first; load `{freya_agentic}` (design loop + verificación Puppeteer de Freya)
|
|
25
|
+
- 🧬 Trabaja **DENTRO del clon de BaseFrontend** en `{kit_playground}` (de step-02b), per workflow_ext §3A. Ya trae el paquete real, todos los peers, el shell `LayoutBase`, routing, capa mock y los módulos de ejemplo `agentes`/`colaboradores` que vas a **reemplazar**.
|
|
26
|
+
- 🧪 Load `{kit_grounding}` (de step-02b) y úsalo para imports/props reales. Importa siempre desde `siesa-ui-kit` (nunca asumas `@siesa/ui-kit`).
|
|
27
|
+
- 🎨 Implementa contra los Object IDs de las page-specs — la spec es la fuente de verdad
|
|
28
|
+
- 🇪🇸 Todo el texto visible en español; 🔴 siesa-ui-kit primero; ⚙️ Vite (BaseFrontend), nunca Next.js
|
|
29
|
+
- ✅ Speak in `{communication_language}`
|
|
30
|
+
|
|
31
|
+
## ENTREGABLE: LA APP CLONADA (BaseFrontend) INTEGRADA
|
|
32
|
+
|
|
33
|
+
El entregable es **la app de BaseFrontend clonada en `{kit_playground}`**, con sus módulos de ejemplo reemplazados por los módulos del dominio del alcance, navegable de punta a punta con `npm run dev` (standalone, puerto 3010). NO un prototipo aislado por épica. Respeta las **convenciones del base** (no las reescribas):
|
|
34
|
+
|
|
35
|
+
1. **Shell = ya está** en `src/routes/_app.tsx` → `LayoutBase` de siesa-ui-kit con `navigationItems` de `src/config/navigation.tsx` + `<Outlet/>`. La épica de shell (nav/rail/404) **es este layout**; ajústalo (productName, logo, ítems), no lo reconstruyas.
|
|
36
|
+
2. **Un módulo por dominio**, NO por página-spec, bajo `src/modules/<dominio>/` con las 4 capas del patrón `agentes`/`colaboradores`:
|
|
37
|
+
- `domain/<x>.types.ts` — entidad + DTOs
|
|
38
|
+
- `application/schemas/<x>.schema.ts` (Zod) + `application/hooks/` (useQuery/useMutation)
|
|
39
|
+
- `infrastructure/api/<x>.api.ts` (mock → Axios) + `infrastructure/service/<x>.service.ts` (`CrudService<T>`)
|
|
40
|
+
- `presentation/pages/<X>Page.tsx`
|
|
41
|
+
Agrupa épicas relacionadas en el mismo módulo:
|
|
42
|
+
- Épicas de "listado + CRUD de una entidad" → un `MasterCrud` dirigido por `fields` (copia el patrón de `AgentesPage.tsx`): cada campo `{accessorKey, header, type, config:{required, showInList, searchable, cardPosition,…}}`.
|
|
43
|
+
- Épicas de "relación/asociación" NO son un módulo aparte: **se integran dentro de los módulos que relacionan** (panel de asociados + "Asociar/Reasignar" dentro del módulo correspondiente).
|
|
44
|
+
- Épica de dashboard/inicio → página de tarjetas (`Card`) con totales **calculados del estado real** (lee los stores mock).
|
|
45
|
+
- Épica de administración/catálogos → su módulo (`MasterCrud` o `GenericEntities`/`GenericEntityModal`).
|
|
46
|
+
3. **Estado compartido = la capa mock** (`src/lib/mock/<x>.mock.ts`): una BD en memoria por entidad que los servicios leen/escriben. Los flujos se conectan DE VERDAD sobre estos stores:
|
|
47
|
+
- Eliminar una entidad padre → sus hijos quedan huérfanos y aparecen así en el otro módulo.
|
|
48
|
+
- Asociar/reasignar/crear/editar → se refleja al instante en todos los módulos afectados (invalida las queries de TanStack Query).
|
|
49
|
+
- Enlaces cruzados navegables ("Ver cliente" desde un contacto → `navigate({ to: '/clientes', search:{ id } })`).
|
|
50
|
+
4. **Rutas + nav**: por cada módulo, crea `src/routes/_app/<modulo>.tsx` (`createFileRoute` → tu `Page`) y añade su ítem a `src/config/navigation.tsx` (con su permiso en `permissions.ts`). `routeTree.gen.ts` lo regenera el plugin de Vite al levantar `dev` — no lo edites.
|
|
51
|
+
5. **Providers ya cableados**: `App.tsx` monta `QueryClientProvider` (`config/query-client.ts`) y el toaster. No los re-declares.
|
|
52
|
+
6. Borra o vacía los módulos/rutas/nav de ejemplo (`agentes`, `colaboradores`) que no correspondan al proyecto.
|
|
53
|
+
|
|
54
|
+
**Nunca** generes HTML+CSS que finja usar el kit (`<div class="rail" title="NavigationRail">`, `/* siesa-ui-kit Button */`) — se importan los componentes reales, siempre.
|
|
55
|
+
|
|
56
|
+
**Gotchas reales (el base ya resuelve varios):**
|
|
57
|
+
- **`QueryClientProvider` ya provisto** por `App.tsx`/`config/query-client.ts` → `GenericEntityModal`/`ContactManager` funcionan sin envolver nada extra.
|
|
58
|
+
- **`LayoutBase` ya maneja logos/usuario** vía props en `_app.tsx` (`productName`, `siesaLogoPath`, `userDropdown`). Ajusta esas props, no toques Navbar/rail a mano.
|
|
59
|
+
- **`MasterCrud`** es data-driven por `fields` + `service` + `schema` (ver `AgentesPage.tsx`). Para el contrato completo consulta el skill `MasterCrud`.
|
|
60
|
+
- **`ContentLayout`** = master-detail `{children, factBox, factBoxOpen, onFactBoxClose}` (main + FactBox), no un header de título.
|
|
61
|
+
- **`LookupField`** es server-driven: `fetcher` mock que devuelva `{ data, page, pageSize }` (records con `Id` PascalCase). No es un `<Select>`.
|
|
62
|
+
- **`Button`** variante = `type` (`default|outline|plain`), no `variant`. **`Badge`** texto en `label`. **`Input`** trae `label`/`errorMessage`. **Toast** = `sonner`.
|
|
63
|
+
|
|
64
|
+
## DESIGN LOOP (per page) — Freya's pattern
|
|
65
|
+
|
|
66
|
+
For each page, follow the inline-testing split from `{freya_agentic}`:
|
|
67
|
+
|
|
68
|
+
1. **Implement** the section from the spec (objects, spacing, Spanish text).
|
|
69
|
+
2. **Verify en navegador** (agent-checkable, measurable). Levanta el harness (`cd {kit_playground} && npm run dev`, puerto **3010**) y captura cada módulo/estado (navega por el rail; abre detalle/form/diálogos). BaseFrontend usa **rutas de historial**, captura por ruta (`/clientes`, `/contactos`, …), no por hash.
|
|
70
|
+
- 🔴 **Si hay diseño de referencia (`{design_artifacts}/_design-ref/`, de step-01/workflow_ext §3C): compara tu screenshot LADO A LADO contra el de referencia — solo pasa si coinciden layout, colores, espaciado, tipografía y componentes.** No declares fidelidad contra una descripción textual ni contra tu modelo mental. Si el diseño usa tokens `var(--…)`, confirma que su bloque `:root` está importado en el harness (`src/styles/tokens.css` desde `src/index.css`) o los componentes custom saldrán sin estilo. Si el default de un componente de vista del kit (`MasterCrud`/`LayoutBase`) no se parece al diseño, compón la presentación a medida para igualarlo (importando primitivos del kit).
|
|
71
|
+
- Text content matches the spec (Spanish strings)
|
|
72
|
+
- Colors / key dimensions match tokens
|
|
73
|
+
- Interactive states (hover/focus/disabled, empty/error) render
|
|
74
|
+
- Navigation links work
|
|
75
|
+
**Captura de screenshots:** si no hay Puppeteer/Playwright instalado, usa **Chrome headless** directamente (suele estar disponible en Windows):
|
|
76
|
+
`chrome --headless=new --disable-gpu --hide-scrollbars --window-size=1440,900 --virtual-time-budget=4000 --screenshot=<out.png> "http://localhost:3010/<ruta>"`.
|
|
77
|
+
Guárdalos en `{design_artifacts}/C-UX-Scenarios/<scenario>/<page>/sketches/<page-slug>-real.png`. Nota: cada invocación de Chrome tarda ~7–10s; captura en lotes pequeños y mata procesos chrome colgados entre lotes.
|
|
78
|
+
3. **Fix** measurable issues before presenting.
|
|
79
|
+
4. **Present** to the user for qualitative feedback (feel, jerarquía visual, claridad). Iterate per their notes.
|
|
80
|
+
|
|
81
|
+
## EXECUTION SEQUENCE
|
|
82
|
+
|
|
83
|
+
1. **Construye los módulos dentro del clon** (`{kit_playground}/src/modules/<dominio>/`, 4 capas cada uno) + sus rutas (`src/routes/_app/<modulo>.tsx`) + ítems de nav (`config/navigation.tsx`), y ajusta el shell (`_app.tsx`). Reemplaza los módulos de ejemplo. Estado compartido en la capa mock; flujos cruzados de verdad (ver arquitectura arriba). Muestra progreso por módulo.
|
|
84
|
+
2. **Verifica** con `cd {kit_playground} && npm run build` (exit 0) y `npm run dev` (puerto 3010), y **guarda un screenshot por página-spec** en su `sketches/<page-slug>-real.png` (satisface la validación WDS); captura los módulos/estados navegando por rutas reales, no pantallas aisladas.
|
|
85
|
+
3. **Empaqueta la app como UN HTML autocontenido → `{design_artifacts}/propuesta-app.html`.** 🔴 Este ES el entregable estático para el diseñador. **NO** generes una galería de screenshots (`propuestas-visuales.html`): el entregable es la **app real funcional** en un solo archivo que abre por doble clic (`file://`), no imágenes. Los screenshots del paso 2 son solo para tu verificación interna. La app clonada es un SPA de Vite; para que funcione por `file://` se compila con JS+CSS inline y **hash routing**:
|
|
86
|
+
a. Instala el plugin en el clon: `cd {kit_playground} && npm i -D vite-plugin-singlefile`.
|
|
87
|
+
b. Crea `{kit_playground}/vite.config.singlefile.ts`: `base: './'`, `define: { 'import.meta.env.VITE_SINGLEFILE': JSON.stringify('true') }`, plugins `[TanStackRouterVite({...}), tailwindcss(), react(), viteSingleFile()]`, `resolve.alias` igual al base, `build: { outDir: 'dist-single', assetsInlineLimit: 100000000, chunkSizeWarningLimit: 100000 }`. Añade `dist-single/` al `.gitignore`.
|
|
88
|
+
c. En `src/App.tsx` usa **hash routing SOLO bajo el flag** (la app web normal se queda con history routing): `import { createHashHistory } from '@tanstack/react-router'` → `const isSingleFile = Boolean((import.meta.env as Record<string, unknown>).VITE_SINGLEFILE)` → `createRouter({ routeTree, ...(isSingleFile ? { history: createHashHistory() } : {}) })`. Sin hash, la ruta inicial `file://…` no matchea y sale 404.
|
|
89
|
+
d. **Importa los assets (logos/imágenes) vía Vite** (`import logo from '@/assets/logo.png'` y pásalo como prop), NO por ruta pública (`/logo.png`): solo los importados se inlinan como data-URI y cargan por `file://`. Copia a `src/assets/` cualquier logo que hoy viva en `public/`.
|
|
90
|
+
e. Compila y copia: `npx vite build --config vite.config.singlefile.ts` y luego `cp {kit_playground}/dist-single/index.html {design_artifacts}/propuesta-app.html`.
|
|
91
|
+
f. **Verifica** abriendo `file:///.../propuesta-app.html` (screenshot headless): deben verse el shell + logo, y una **ruta profunda por hash** (`propuesta-app.html#/<ruta>`, ej. `#/clientes/1`).
|
|
92
|
+
- La versión interactiva/viva sigue siendo `cd {kit_playground} && npm run dev` (:3010).
|
|
93
|
+
- Si existen `{design_artifacts}/C-UX-Scenarios/<escenario>/prototype.html`, reescríbelos como una nota breve que apunta a `propuesta-app.html` y a `npm run dev`.
|
|
94
|
+
4. Update `{design_artifacts}/_progress/00-design-log.md` with what was rendered and any open design questions.
|
|
95
|
+
5. Load and execute `{nextStepFile}`.
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 🚨 SUCCESS / FAILURE
|
|
100
|
+
|
|
101
|
+
✅ App **clonada de BaseFrontend** con módulos del dominio (4 capas), shell `LayoutBase`, estado compartido en la capa mock y flujos conectados; `npm run build` exit 0 y `npm run dev` levanta en :3010; **`propuesta-app.html`** = la app real en UN HTML autocontenido que abre por `file://` (single-file + hash routing), verificada por screenshot; texto en español; **si había diseño de referencia, cada página verificada lado a lado contra él y coincidiendo**.
|
|
102
|
+
❌ Scaffoldear un frontend a mano en vez de clonar BaseFrontend; entregar pantallas sueltas por épica; **entregar una galería de screenshots (`propuestas-visuales.html`) en vez de la app real**; HTML que finja usar el kit; usar Next.js; saltar la verificación en navegador; **declarar fidelidad sin comparar lado a lado contra el diseño de referencia renderizado** (o diseñar contra una descripción textual); **dejar sin importar los tokens `var(--…)` del diseño de referencia** (componentes custom sin estilo); replicar solo la pantalla inicial cuando la referencia tiene más pantallas.
|
package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-06-handoff.md
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: 'step-06-handoff'
|
|
3
|
+
description: 'Empaqueta las propuestas visuales para los diseñadores (índice + app autocontenida en UN HTML + trazabilidad) y commitea la fase'
|
|
4
|
+
|
|
5
|
+
workflow_path: '{project-root}/_siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals'
|
|
6
|
+
thisStepFile: '{workflow_path}/steps/step-06-handoff.md'
|
|
7
|
+
|
|
8
|
+
proposalIndexTemplate: '{workflow_path}/templates/proposal-index.md'
|
|
9
|
+
# Entregable consolidado = la app real en UN HTML autocontenido (propuesta-app.html),
|
|
10
|
+
# generada en step-05 §3 (vite-plugin-singlefile + hash routing). NO una galería de screenshots.
|
|
11
|
+
wds_validate: '{project-root}/_siesa-agents/wds/scripts/wds-validate.js'
|
|
12
|
+
phase2: '{project-root}/_siesa-agents/scripts/phases/phase2.js'
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Step 6: Empaquetado, Handoff y Commit
|
|
16
|
+
|
|
17
|
+
## STEP GOAL
|
|
18
|
+
|
|
19
|
+
Dejar las propuestas visuales listas para el equipo de diseño: un índice navegable con trazabilidad (`proposal-index.md`), la **app real compilada en UN HTML autocontenido** (`propuesta-app.html`, generada en step-05 §3), validación final, y el commit de fase. 🔴 El visor consolidado es la app funcional, NO una galería de screenshots.
|
|
20
|
+
|
|
21
|
+
## MANDATORY EXECUTION RULES
|
|
22
|
+
|
|
23
|
+
- 📖 Read this entire file first
|
|
24
|
+
- ✅ Speak in `{communication_language}`
|
|
25
|
+
|
|
26
|
+
## EXECUTION SEQUENCE
|
|
27
|
+
|
|
28
|
+
### 1. Final Validation
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
node {wds_validate} --all --output {design_artifacts}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Must be 0 errors. Fix any remaining before continuing.
|
|
35
|
+
|
|
36
|
+
### 2. Build the Proposal Index
|
|
37
|
+
|
|
38
|
+
Using `{proposalIndexTemplate}`, create `{design_artifacts}/proposal-index.md` with:
|
|
39
|
+
- Instrucción destacada para abrir la **app clonada de BaseFrontend** interactiva: `cd {design_artifacts}/_kit-playground && npm run dev` (puerto 3010), y enlace a la **app autocontenida** `propuesta-app.html` (un solo HTML, doble clic, sin servidor) para revisión rápida.
|
|
40
|
+
- Por escenario/página: ruta del **módulo/página** correspondiente en la app (`/clientes`, `/contactos`, …) y su screenshot, no un HTML por épica.
|
|
41
|
+
- Nombre de la página + enlace a su page-spec
|
|
42
|
+
- Miniatura/enlace al screenshot real (`sketches/<page>-real.png`)
|
|
43
|
+
- Componentes siesa-ui-kit usados
|
|
44
|
+
- Trazabilidad `[Source: <Épica>/<Historia>/FR-x]`
|
|
45
|
+
- Preguntas de diseño abiertas (del design log)
|
|
46
|
+
|
|
47
|
+
This index is the single entry point a designer opens.
|
|
48
|
+
|
|
49
|
+
### 2b. Consolidated viewers
|
|
50
|
+
|
|
51
|
+
Dos formas de ver las propuestas (ambas son **la app real**, no screenshots):
|
|
52
|
+
|
|
53
|
+
1. **App interactiva** = el clon de BaseFrontend en `{design_artifacts}/_kit-playground` → `npm run dev` (puerto 3010). Navegable de punta a punta por el rail (`LayoutBase`), con estado compartido y flujos conectados. Es la fuente viva.
|
|
54
|
+
2. **`{design_artifacts}/propuesta-app.html`** — **la app compilada en UN HTML autocontenido** (JS+CSS inline + hash routing), generada en step-05 §3. Abre por doble clic, sin servidor: es la MISMA app funcional (navegación, CRUD, asociación en memoria) empaquetada para compartir/revisar sin instalar nada. 🔴 NO es una galería de imágenes.
|
|
55
|
+
|
|
56
|
+
Ambos complementan al `proposal-index.md` (el índice con specs/trazabilidad).
|
|
57
|
+
|
|
58
|
+
### 3. Present to Designer (HALT)
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
🎨 Propuestas visuales listas.
|
|
62
|
+
- Escenarios: {n} - Páginas: {n}
|
|
63
|
+
- App interactiva (clon BaseFrontend): cd {design_artifacts}/_kit-playground && npm run dev (:3010)
|
|
64
|
+
- Índice: {design_artifacts}/proposal-index.md
|
|
65
|
+
- App autocontenida (un HTML, doble clic): {design_artifacts}/propuesta-app.html
|
|
66
|
+
|
|
67
|
+
¿Cómo seguimos?
|
|
68
|
+
[D] Entregar al diseño (solo commitear) — recomendado
|
|
69
|
+
[I] Iterar sobre alguna página antes de cerrar
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
HALT and wait.
|
|
73
|
+
|
|
74
|
+
### 4. Update State
|
|
75
|
+
|
|
76
|
+
Mark phases 3–4 complete in `{design_artifacts}/_progress/wds-project-outline.yaml` and update `_progress/00-design-log.md`.
|
|
77
|
+
|
|
78
|
+
### 5. Phase Commit (per workflow_ext.md §5)
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
git status --short
|
|
82
|
+
git diff --stat
|
|
83
|
+
node {phase2} --commit "[Phase 2 - Planning] add WDS visual proposals for {project_name}"
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Confirm:
|
|
87
|
+
> `✅ Propuestas visuales WDS committeadas en la rama Phase 2 (planning).`
|
|
88
|
+
|
|
89
|
+
**This is the LAST action. Do not continue after the commit.**
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 🚨 SUCCESS / FAILURE
|
|
94
|
+
|
|
95
|
+
✅ Validación 0 errores; proposal-index.md con trazabilidad; **`propuesta-app.html` generada (la app real en un solo HTML autocontenido)**; estado WDS actualizado; commit de fase hecho.
|
|
96
|
+
❌ Entregar sin índice; índice sin trazabilidad; **entregar una galería de screenshots en vez de la app autocontenida `propuesta-app.html`**; olvidar el commit de fase.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: wds-product-brief
|
|
3
|
+
status: bridged-from-planning
|
|
4
|
+
source: siesa-planning-bridge
|
|
5
|
+
generated_date: ""
|
|
6
|
+
source_files: []
|
|
7
|
+
stepsCompleted: []
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Product Brief — {{project_name}}
|
|
11
|
+
|
|
12
|
+
> Documento generado por el workflow `wds-visual-proposals` a partir de los artefactos de planning existentes. Es el prerequisito de Fase 1 que Freya (WDS) valida antes de diseñar. Cada sección referencia su fuente con `[Source: ...]`.
|
|
13
|
+
|
|
14
|
+
## 1. Vision (WHY)
|
|
15
|
+
|
|
16
|
+
{{vision}}
|
|
17
|
+
|
|
18
|
+
[Source: {{prd_source}}]
|
|
19
|
+
|
|
20
|
+
## 2. Golden Circle
|
|
21
|
+
|
|
22
|
+
- **WHY** — {{why}}
|
|
23
|
+
- **HOW** — {{how}}
|
|
24
|
+
- **WHAT** — {{what}}
|
|
25
|
+
|
|
26
|
+
## 3. Target Users
|
|
27
|
+
|
|
28
|
+
{{target_users}}
|
|
29
|
+
|
|
30
|
+
[Source: {{prd_users_source}}]
|
|
31
|
+
|
|
32
|
+
## 4. Business Goals & KPIs
|
|
33
|
+
|
|
34
|
+
| Objetivo | Métrica / KPI |
|
|
35
|
+
|---|---|
|
|
36
|
+
| {{goal_1}} | {{kpi_1}} |
|
|
37
|
+
|
|
38
|
+
[Source: {{prd_goals_source}}]
|
|
39
|
+
|
|
40
|
+
## 5. Scope & Constraints
|
|
41
|
+
|
|
42
|
+
- **En alcance:** {{in_scope}}
|
|
43
|
+
- **Fuera de alcance:** {{out_of_scope}}
|
|
44
|
+
- **Restricciones técnicas:** {{tech_constraints}}
|
|
45
|
+
|
|
46
|
+
[Source: {{architecture_source}}]
|
|
47
|
+
|
|
48
|
+
## 6. Content Language & Tone
|
|
49
|
+
|
|
50
|
+
- **Idioma de UI:** Español (obligatorio)
|
|
51
|
+
- **Tono:** {{tone}}
|
|
52
|
+
|
|
53
|
+
## 7. Visual Direction (resumen)
|
|
54
|
+
|
|
55
|
+
- **Color primario:** `#0e79fd` (siesa-ui-kit) {{color_overrides}}
|
|
56
|
+
- **Tipografía:** Inter
|
|
57
|
+
- **Sistema de componentes:** siesa-ui-kit primero
|
|
58
|
+
- Detalle completo en `A-Product-Brief/visual-direction.md`
|
|
59
|
+
|
|
60
|
+
[Source: ux-design-specification.md]
|
|
61
|
+
|
|
62
|
+
## 8. Asunciones a confirmar
|
|
63
|
+
|
|
64
|
+
{{assumptions}}
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
_Provenance: este brief NO contiene contenido inventado; deriva de los archivos listados en `source_files`._
|
package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/templates/proposal-index.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: wds-proposal-index
|
|
3
|
+
project: "{{project_name}}"
|
|
4
|
+
generated_date: ""
|
|
5
|
+
siesa_uikit_package: ""
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Propuestas Visuales — {{project_name}}
|
|
9
|
+
|
|
10
|
+
> Punto de entrada para el equipo de diseño. Cada página enlaza su especificación WDS, su ruta en la app y su screenshot, con trazabilidad al planning de origen.
|
|
11
|
+
|
|
12
|
+
**App interactiva (clon BaseFrontend):** `cd _kit-playground && npm run dev` (:3010) · **App autocontenida (un HTML, doble clic):** [`propuesta-app.html`](propuesta-app.html) · **Paquete siesa-ui-kit:** {{siesa_uikit_package}}
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Resumen
|
|
17
|
+
|
|
18
|
+
| Escenario | Páginas | Origen (Épica) |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| {{scenario_1}} | {{scenario_1_pages}} | {{scenario_1_epic}} |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Detalle por escenario
|
|
25
|
+
|
|
26
|
+
### {{scenario_1}}
|
|
27
|
+
|
|
28
|
+
[Source: {{scenario_1_epic}}]
|
|
29
|
+
|
|
30
|
+
| # | Página | Spec | Prototipo | Screenshot | Componentes siesa-ui-kit | Origen |
|
|
31
|
+
|---|---|---|---|---|---|---|
|
|
32
|
+
| 01 | {{page_name}} | [spec]({{page_spec_path}}) | [ver]({{page_prototype_path}}) |  | {{page_components}} | [Source: {{page_source}}] |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Preguntas de diseño abiertas
|
|
37
|
+
|
|
38
|
+
{{open_questions}}
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Cómo revisar
|
|
43
|
+
|
|
44
|
+
1. Corre `cd _kit-playground && npm run dev` (:3010) y navega por el rail entre módulos, o abre `propuesta-app.html` (doble clic) — la app real en un solo HTML autocontenido.
|
|
45
|
+
2. Compara contra la page-spec (texto en español, componentes siesa-ui-kit).
|
|
46
|
+
3. Deja feedback cualitativo; el workflow puede iterar página por página (`/wds-visual-proposals` → reanudar → iterar).
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
type: wds-trigger-map
|
|
3
|
+
status: bridged-from-planning
|
|
4
|
+
source: siesa-planning-bridge
|
|
5
|
+
generated_date: ""
|
|
6
|
+
source_files: []
|
|
7
|
+
stepsCompleted: []
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Trigger Map — {{project_name}}
|
|
11
|
+
|
|
12
|
+
> Prerequisito de Fase 2 (WDS) generado desde el PRD + épicas. Mapea la psicología del usuario a los objetivos de negocio. Es lo que Freya usa para crear escenarios.
|
|
13
|
+
|
|
14
|
+
## Personas
|
|
15
|
+
|
|
16
|
+
> Una persona por archivo: `B-Trigger-Map/NN-persona-<nombre>-<arquetipo>.md`. Nombres aliterados (ej. "Carla la Cajera"). Aquí va el resumen.
|
|
17
|
+
|
|
18
|
+
| Persona | Arquetipo | Awareness stage | Archivo |
|
|
19
|
+
|---|---|---|---|
|
|
20
|
+
| {{persona_1_name}} | {{persona_1_archetype}} | {{persona_1_awareness}} | {{persona_1_file}} |
|
|
21
|
+
|
|
22
|
+
## Driving Forces (por persona)
|
|
23
|
+
|
|
24
|
+
### {{persona_1_name}}
|
|
25
|
+
|
|
26
|
+
**Fuerzas positivas** (deseos, aspiraciones):
|
|
27
|
+
- {{positive_1}}
|
|
28
|
+
|
|
29
|
+
**Fuerzas negativas** (miedos, frustraciones):
|
|
30
|
+
- {{negative_1}}
|
|
31
|
+
|
|
32
|
+
[Source: {{prd_pains_gains_source}}]
|
|
33
|
+
|
|
34
|
+
## Business Goals ↔ Triggers
|
|
35
|
+
|
|
36
|
+
| Objetivo de negocio | Trigger del usuario | Persona |
|
|
37
|
+
|---|---|---|
|
|
38
|
+
| {{biz_goal_1}} | {{trigger_1}} | {{persona_ref_1}} |
|
|
39
|
+
|
|
40
|
+
[Source: {{prd_goals_source}}]
|
|
41
|
+
|
|
42
|
+
## Feature Impact
|
|
43
|
+
|
|
44
|
+
> Detalle completo en `B-Trigger-Map/feature-impact.md` (épica/feature × persona × driving force).
|
|
45
|
+
|
|
46
|
+
| Épica / Feature | Persona | Driving force | Impacto |
|
|
47
|
+
|---|---|---|---|
|
|
48
|
+
| {{feature_1}} | {{persona_ref}} | {{force}} | {{impact}} |
|
|
49
|
+
|
|
50
|
+
[Source: {{epics_source}}]
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
_Provenance: derivado de los archivos en `source_files`. Marcar `⚠️ [Asunción — confirmar]` donde el planning no lo especifica._
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wds-visual-proposals
|
|
3
|
+
description: Toma los artefactos de planning ya existentes (PRD, épicas/historias, UX spec, arquitectura) y los usa como base para que el módulo WDS (Freya) genere propuestas visuales — escenarios UX, page-specs y prototipos renderizados con siesa-ui-kit — ayudando a los diseñadores.
|
|
4
|
+
web_bundle: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# WDS Visual Proposals — Del Planning a las Propuestas Visuales
|
|
8
|
+
|
|
9
|
+
**Goal:** Tomar los artefactos de planning ya hechos del proyecto (PRD, épicas/historias, `ux-design-specification.md`, arquitectura) como **base**, traducirlos a la fundación estratégica que el módulo **WDS** necesita, y dirigir a **Freya** para producir **propuestas visuales**: escenarios UX + page-specs (formato WDS) **y** prototipos renderizados con los componentes reales de **siesa-ui-kit**. El resultado ayuda al equipo de diseño a iterar sobre algo tangible en vez de partir de cero.
|
|
10
|
+
|
|
11
|
+
**Your Role:** In addition to your name, communication_style, and persona, you are also a **UX Bridge Engineer + Design Facilitator** collaborating with the **Design Team and Product Owners**. This is a partnership, not a client-vendor relationship. You bring expertise in translating product requirements into WDS-compatible design foundations and in driving the WDS/Freya design loop with siesa-ui-kit fidelity, while the user brings product knowledge and design judgment. Work together as equals.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## RELACIÓN CON EL MÓDULO WDS
|
|
16
|
+
|
|
17
|
+
Este workflow es un **adaptador + director**. NO reimplementa el diseño: reutiliza el módulo WDS instalado en `{project-root}/_siesa-agents/wds/`.
|
|
18
|
+
|
|
19
|
+
- **Puente (Phases 0–2 de WDS):** sintetiza los prerequisitos que Freya exige —`A-Product-Brief/product-brief.md`, `B-Trigger-Map/trigger-map.md`, outline de escenarios y `_progress/wds-project-outline.yaml`— a partir de los artefactos de planning de SIESA. Sin este puente, Freya no puede empezar.
|
|
20
|
+
- **Kit Warm-up (step-02b, anti-alucinación):** antes de diseñar, instala/usa el paquete **real** de siesa-ui-kit, lo compila/renderiza y produce `kit-grounding.md` (nombres/props reales). Es la fuente de verdad que consumen las specs y los prototipos.
|
|
21
|
+
- **Diseño (Phases 3–4 de WDS):** usa los scripts scaffold de WDS (`_siesa-agents/wds/scripts/*.js`) para crear escenarios y page-specs, y el design loop de Freya (`_siesa-agents/wds/data/agent-guides/freya/`) para renderizar y verificar prototipos.
|
|
22
|
+
- **siesa-ui-kit primero:** todo objeto UI se mapea contra `kit-grounding.md` (verdad del paquete) y el catálogo `https://siesa-ui-kit.pages.dev/llms.txt`. Si discrepan, **gana el grounding**. Texto de UI siempre en **español**.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## WORKFLOW ARCHITECTURE
|
|
27
|
+
|
|
28
|
+
This uses **step-file architecture** for disciplined execution:
|
|
29
|
+
|
|
30
|
+
### Core Principles
|
|
31
|
+
|
|
32
|
+
- **Micro-file Design**: Each step is a self contained instruction file that is part of an overall workflow that must be followed exactly
|
|
33
|
+
- **Just-In-Time Loading**: Only the current step file is in memory - never load future step files until told to do so
|
|
34
|
+
- **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed
|
|
35
|
+
- **State Tracking**: Document progress in the WDS project outline (`_progress/wds-project-outline.yaml`) and design log; use `stepsCompleted` array in any output document frontmatter
|
|
36
|
+
- **Append-Only Building**: Build documents by appending content as directed; never overwrite existing WDS artifacts blindly
|
|
37
|
+
|
|
38
|
+
### Step Processing Rules
|
|
39
|
+
|
|
40
|
+
1. **READ COMPLETELY**: Always read the entire step file before taking any action
|
|
41
|
+
2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate
|
|
42
|
+
3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection
|
|
43
|
+
4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue)
|
|
44
|
+
5. **SAVE STATE**: Update the project outline / design log before loading next step
|
|
45
|
+
6. **LOAD NEXT**: When directed, load, read entire file, then execute the next step file
|
|
46
|
+
|
|
47
|
+
### Critical Rules (NO EXCEPTIONS)
|
|
48
|
+
|
|
49
|
+
- 🛑 **NEVER** load multiple step files simultaneously
|
|
50
|
+
- 📖 **ALWAYS** read entire step file before execution
|
|
51
|
+
- 🚫 **NEVER** skip steps or optimize the sequence
|
|
52
|
+
- 💾 **ALWAYS** update state when writing the final output for a specific step
|
|
53
|
+
- 🎯 **ALWAYS** follow the exact instructions in the step file
|
|
54
|
+
- ⏸️ **ALWAYS** halt at menus and wait for user input
|
|
55
|
+
- 📋 **NEVER** create mental todo lists from future steps
|
|
56
|
+
- 🧩 **NEVER** write raw WDS markdown by hand — use the scaffold scripts (`wds-init-scenario.js`, `wds-init-page.js`, `wds-add-object.js`, `wds-add-spacing.js`, `wds-nav.js`) and validate with `wds-validate.js`
|
|
57
|
+
- 🇪🇸 **ALWAYS** write user-facing UI text in **Spanish**; **ALWAYS** check siesa-ui-kit FIRST before proposing any custom component
|
|
58
|
+
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## INITIALIZATION SEQUENCE
|
|
63
|
+
|
|
64
|
+
### 1. Configuration Loading
|
|
65
|
+
|
|
66
|
+
Load and read full config from `{project-root}/_bmad/bmm/config.yaml` and resolve:
|
|
67
|
+
|
|
68
|
+
- `project_name`, `output_folder`, `user_name`, `communication_language`, `document_output_language`
|
|
69
|
+
- `planning_artifacts`, `implementation_artifacts`, `project_knowledge`
|
|
70
|
+
|
|
71
|
+
Then load `{project-root}/_siesa-agents/wds/config.yaml` and resolve:
|
|
72
|
+
|
|
73
|
+
- `design_artifacts` (base path where WDS artifacts live — scripts write `C-UX-Scenarios/` under it)
|
|
74
|
+
- `output_folder` (WDS `_bmad-output` base), `communication_language`, `document_output_language`
|
|
75
|
+
|
|
76
|
+
If the two configs disagree on a value, **WDS `config.yaml` wins** for any WDS artifact path; otherwise use `_bmad/bmm/config.yaml`.
|
|
77
|
+
|
|
78
|
+
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
|
|
79
|
+
|
|
80
|
+
### 2. First Step EXECUTION
|
|
81
|
+
|
|
82
|
+
Load, read the full file and then execute `{project-root}/_siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-01-init.md` to begin the workflow.
|