siesa-agents 2.1.89 → 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.
Files changed (68) hide show
  1. package/claude/skills/sa-init-devops/SKILL.md +35 -36
  2. package/claude/skills/sa-wds-visual-proposals/SKILL.md +6 -0
  3. package/package.json +1 -1
  4. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/data/component-mapping.csv +47 -0
  5. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-01-init.md +148 -0
  6. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-01b-continue.md +79 -0
  7. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-02-bridge.md +114 -0
  8. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-02b-kit-warmup.md +96 -0
  9. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-03-scenarios.md +102 -0
  10. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-04-specs.md +97 -0
  11. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-05-prototype.md +102 -0
  12. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-06-handoff.md +96 -0
  13. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/templates/product-brief-bridge.md +68 -0
  14. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/templates/proposal-index.md +46 -0
  15. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/templates/trigger-map-bridge.md +54 -0
  16. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/workflow.md +82 -0
  17. package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/workflow_ext.md +195 -0
  18. package/siesa-agents/sa/sa-init-devops/scripts/sa-init-devops.js +46 -50
  19. package/siesa-agents/wds/config.yaml +20 -0
  20. package/siesa-agents/wds/data/agent-contracts.md +72 -0
  21. package/siesa-agents/wds/data/agent-guides/freya/agentic-development.md +223 -0
  22. package/siesa-agents/wds/data/agent-guides/freya/content-creation.md +270 -0
  23. package/siesa-agents/wds/data/agent-guides/freya/design-system.md +333 -0
  24. package/siesa-agents/wds/data/agent-guides/freya/meta-content-guide.md +495 -0
  25. package/siesa-agents/wds/data/agent-guides/freya/specification-quality.md +262 -0
  26. package/siesa-agents/wds/data/agent-guides/freya/strategic-design.md +116 -0
  27. package/siesa-agents/wds/data/agent-guides/saga/content-structure-principles.md +190 -0
  28. package/siesa-agents/wds/data/agent-guides/saga/conversational-followups.md +372 -0
  29. package/siesa-agents/wds/data/agent-guides/saga/discovery-conversation.md +265 -0
  30. package/siesa-agents/wds/data/agent-guides/saga/dream-up-approach.md +1034 -0
  31. package/siesa-agents/wds/data/agent-guides/saga/inspiration-analysis.md +215 -0
  32. package/siesa-agents/wds/data/agent-guides/saga/resources/project-brief.template.md +187 -0
  33. package/siesa-agents/wds/data/agent-guides/saga/seo-strategy-guide.md +391 -0
  34. package/siesa-agents/wds/data/agent-guides/saga/strategic-documentation.md +454 -0
  35. package/siesa-agents/wds/data/agent-guides/saga/trigger-mapping.md +653 -0
  36. package/siesa-agents/wds/data/agent-guides/saga/working-with-existing-materials.md +172 -0
  37. package/siesa-agents/wds/data/design-system/component-boundaries.md +318 -0
  38. package/siesa-agents/wds/data/design-system/figma-component-structure.md +697 -0
  39. package/siesa-agents/wds/data/design-system/naming-conventions.md +200 -0
  40. package/siesa-agents/wds/data/design-system/state-management.md +93 -0
  41. package/siesa-agents/wds/data/design-system/token-architecture.md +474 -0
  42. package/siesa-agents/wds/data/design-system/validation-patterns.md +74 -0
  43. package/siesa-agents/wds/data/presentations/freya-how-i-help.md +63 -0
  44. package/siesa-agents/wds/data/presentations/freya-intro.md +269 -0
  45. package/siesa-agents/wds/data/presentations/freya-presentation.md +77 -0
  46. package/siesa-agents/wds/data/presentations/freya-workflows-guide.md +51 -0
  47. package/siesa-agents/wds/data/presentations/mimir-agents-overview.md +66 -0
  48. package/siesa-agents/wds/data/presentations/mimir-tone-setting.md +48 -0
  49. package/siesa-agents/wds/data/presentations/saga-how-i-help.md +62 -0
  50. package/siesa-agents/wds/data/presentations/saga-intro.md +285 -0
  51. package/siesa-agents/wds/data/presentations/saga-presentation.md +74 -0
  52. package/siesa-agents/wds/data/presentations/saga-workflows-guide.md +48 -0
  53. package/siesa-agents/wds/data/shared-activation.md +49 -0
  54. package/siesa-agents/wds/data/wds-glossary.md +98 -0
  55. package/siesa-agents/wds/module-help.csv +19 -0
  56. package/siesa-agents/wds/scripts/README.md +155 -0
  57. package/siesa-agents/wds/scripts/wds-add-object.js +207 -0
  58. package/siesa-agents/wds/scripts/wds-add-spacing.js +158 -0
  59. package/siesa-agents/wds/scripts/wds-init-page.js +234 -0
  60. package/siesa-agents/wds/scripts/wds-init-scenario.js +125 -0
  61. package/siesa-agents/wds/scripts/wds-nav.js +206 -0
  62. package/siesa-agents/wds/scripts/wds-validate.js +306 -0
  63. package/siesa-agents/wds/skills/freya.activation.md +204 -0
  64. package/siesa-agents/wds/skills/handoff.md +91 -0
  65. package/siesa-agents/wds/skills/saga.activation.md +169 -0
  66. package/siesa-agents/wds/skills/shared/git.md +55 -0
  67. package/siesa-agents/wds/skills/start.md +99 -0
  68. package/siesa-agents/wds/skills/wrap.md +198 -0
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: 'step-02b-kit-warmup'
3
+ description: 'Kit Warm-up: instala/usa el paquete REAL de siesa-ui-kit en una mini app, verifica con build+render, y produce kit-grounding.md (fuente de verdad anti-alucinación) ANTES de diseñar'
4
+
5
+ workflow_path: '{project-root}/_siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals'
6
+ thisStepFile: '{workflow_path}/steps/step-02b-kit-warmup.md'
7
+ nextStepFile: '{workflow_path}/steps/step-03-scenarios.md'
8
+
9
+ # Outputs
10
+ kit_playground: '{design_artifacts}/_kit-playground'
11
+ kit_grounding: '{design_artifacts}/_kit-playground/kit-grounding.md'
12
+
13
+ # References
14
+ siesa_uikit_catalog_url: 'https://siesa-ui-kit.pages.dev/llms.txt'
15
+ componentMappingData: '{workflow_path}/data/component-mapping.csv'
16
+ base_ux_spec: '{project-root}/_siesa-agents/resources/ux-ui/ux-design-specification.md'
17
+ ---
18
+
19
+ # Step 2b: Kit Warm-up — Grounding del UI kit REAL (anti-alucinación)
20
+
21
+ ## STEP GOAL
22
+
23
+ Antes de mapear objetos a componentes y renderizar, el agente debe **tocar el kit real**: instalarlo, compilarlo y renderizarlo. El resultado es `kit-grounding.md` — la **fuente de verdad** (nombres, props, contratos reales) que consumen step-04 (specs) y step-05 (prototype). Esto evita alucinaciones como suponer componentes/props que el catálogo `llms.txt` lista pero el paquete no expone (p. ej. `LayoutContent` vs el real `ContentLayout`, o `Dashboard`/`StatCard` inexistentes).
24
+
25
+ ## MANDATORY EXECUTION RULES
26
+
27
+ - 📖 Read this entire file first.
28
+ - 🔴 La verdad la da el **paquete instalado**, NO el catálogo. Si `kit-grounding.md` y `llms.txt` discrepan, **gana el grounding**.
29
+ - 🧪 No se considera "verificado" hasta que el playground **compile** (build exit 0) o renderice.
30
+ - 🇪🇸 Texto de UI siempre en español.
31
+ - ✅ Speak in `{communication_language}`.
32
+
33
+ ## EXECUTION SEQUENCE
34
+
35
+ ### 1. Detect existing grounding (skip if fresh)
36
+
37
+ If `{kit_grounding}` already exists AND records the same `siesa_uikit_package` version resolved in step-01:
38
+ - Inform the user it's current and **skip to section 6** (no reinstall).
39
+ Otherwise continue.
40
+
41
+ ### 2. Clone BaseFrontend (the harness) — per workflow_ext §3A
42
+
43
+ El harness del frontend ES un clon del repo base oficial `{frontend_base_repo}` (Vite 6 + React 19 + TS + Tailwind v4 + `siesa-ui-kit@^1.0.109` con todos los peers ya instalados, TanStack Router, Clean Architecture por módulos, capa mock y shell `LayoutBase`). NO scaffoldees a mano.
44
+
45
+ ```bash
46
+ git clone --depth 1 https://github.com/SiesaTeams/BaseFrontend {kit_playground}
47
+ rm -rf {kit_playground}/.git # no anidar .git dentro del repo SIESA
48
+ cd {kit_playground} && npm install
49
+ ```
50
+
51
+ - Si `{kit_playground}` ya existe con un clon válido (tiene `package.json` con dependencia `siesa-ui-kit`), reutilízalo — no re-clones.
52
+ - El `.gitignore` del base solo trae `node_modules/`; añade `dist/` para no versionar el build de verificación.
53
+ - Si NO hay red/acceso al repo o al registro npm → ve a la sección 5 (grounding degradado) y avisa al usuario.
54
+ - El paquete queda **fijado por el `package.json` del base** (`siesa-ui-kit@^1.0.109`); no hay que resolver el nombre a mano. CSS ya se importa en `src/main.tsx` (`import 'siesa-ui-kit/styles.css'`).
55
+
56
+ ### 3. Verify the real package builds (the grounding act)
57
+
58
+ 1. `npm run build` en `{kit_playground}` debe salir **exit 0** (compila los imports/exports reales del kit contra los módulos de ejemplo `agentes`/`colaboradores`). Un import roto es en sí un hallazgo.
59
+ 2. Opcional: `npm run dev` (puerto 3010) + screenshot para confirmar el render visual del shell `LayoutBase` + `MasterCrud`.
60
+ 3. Extrae los **exports y prop types reales** desde el paquete instalado: `{kit_playground}/node_modules/siesa-ui-kit/dist/index.d.ts` y `dist/components/**/*.types.d.ts`.
61
+ 4. Documenta los contratos que el base **ya usa** como referencia verificada: `LayoutBase` (props del shell + `navigationItems`), `MasterCrud` (array `fields` con `accessorKey`/`header`/`type`/`config` + `service`/`schema`), y el patrón de 4 capas de un módulo (`src/modules/agentes/`).
62
+
63
+ ### 5. Write `kit-grounding.md`
64
+
65
+ Write `{kit_grounding}` with, at minimum:
66
+ - **Install**: package name + version + peer deps + transitive deps + CSS import + order gotchas.
67
+ - **Real component inventory** (verified export names).
68
+ - **Real prop signatures** for the components in scope (e.g. `Button.type` not `variant`, `Badge.label`, `DescriptionList` = one `term`/`details` per row, `Table` data-driven, server-driven `LookupField`/`ContactManager`).
69
+ - **Hallucinations caught**: a table of "assumed name → real name / does-not-exist" (this is the anti-hallucination payload).
70
+
71
+ **Degraded mode** (no install possible): still write `kit-grounding.md` from `{siesa_uikit_catalog_url}` + `{componentMappingData}`, clearly flagged `⚠️ NO VERIFICADO EN RUNTIME — derivado del catálogo`. Never silently skip the file.
72
+
73
+ ### 6. Spec Sync gate (HALT)
74
+
75
+ Present a concise summary of the grounding (package/version, components verified, hallucinations caught) and ask:
76
+
77
+ ```
78
+ 🧪 Kit Warm-up listo. Grounding en _kit-playground/kit-grounding.md
79
+ - Paquete: {nombre}@{versión} ({verificado por build/render | degradado})
80
+ - Componentes verificados: {n} - Correcciones detectadas: {n}
81
+
82
+ [C] Continuar a generar escenarios (step-04/05 usarán el grounding)
83
+ [S] Sincronizar el spec ahora (aplicar correcciones a ux-design-specification.md)
84
+ [E] Editar el grounding antes de continuar
85
+ ```
86
+
87
+ If `[S]`: apply the name/contract corrections to the project `ux-design-specification.md` (add/refresh a "Kit Grounding — Spec Sync" section). Then return to this menu.
88
+
89
+ On `[C]`: update `_progress/00-design-log.md` ("Phase 3 — generar escenarios; grounding listo") and load + execute `{nextStepFile}`.
90
+
91
+ ---
92
+
93
+ ## 🚨 SUCCESS / FAILURE
94
+
95
+ ✅ Paquete real resuelto; playground compila/renderiza; `kit-grounding.md` escrito con nombres/props reales y alucinaciones detectadas; gate de Spec Sync presentado.
96
+ ❌ Saltar el grounding y diseñar contra el catálogo; omitir `kit-grounding.md`; declarar "verificado" sin build/render; escribir UI de ejemplo en inglés.
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: 'step-03-scenarios'
3
+ description: 'Deriva escenarios UX y páginas desde las épicas/historias usando los scripts scaffold de WDS'
4
+
5
+ workflow_path: '{project-root}/_siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals'
6
+ thisStepFile: '{workflow_path}/steps/step-03-scenarios.md'
7
+ nextStepFile: '{workflow_path}/steps/step-04-specs.md'
8
+
9
+ wds_scripts: '{project-root}/_siesa-agents/wds/scripts'
10
+ init_scenario: '{wds_scripts}/wds-init-scenario.js'
11
+ init_page: '{wds_scripts}/wds-init-page.js'
12
+ nav: '{wds_scripts}/wds-nav.js'
13
+ ---
14
+
15
+ # Step 3: Escenarios y Páginas (Phase 3 WDS)
16
+
17
+ ## STEP GOAL
18
+
19
+ Convertir cada épica/historia del alcance en la estructura de escenarios y páginas de WDS, usando EXCLUSIVAMENTE los scripts scaffold (nunca markdown a mano). Salida bajo `{design_artifacts}/C-UX-Scenarios/`.
20
+
21
+ ## MANDATORY EXECUTION RULES
22
+
23
+ - 🧩 NEVER write the scenario/page markdown by hand — use the scripts
24
+ - 📖 Read this entire file first
25
+ - ✅ Speak in `{communication_language}`
26
+
27
+ ## MAPPING MODEL
28
+
29
+ ```
30
+ Épica → Escenario WDS (un flujo de usuario)
31
+ Historia → Página WDS (una pantalla del flujo)
32
+ Criterio (AC) → Success Criteria de la página
33
+ Orden de historias → numeración de páginas (01, 02, ...)
34
+ ```
35
+
36
+ ## EXECUTION SEQUENCE
37
+
38
+ ### 1. Plan the Scenarios (HALT for confirmation)
39
+
40
+ From the in-scope epics, propose the scenario/page breakdown:
41
+
42
+ ```
43
+ Propuesta de escenarios:
44
+ 1. "01 <Épica A>" → páginas: 01 <Historia> · 02 <Historia> · ...
45
+ 2. "02 <Épica B>" → páginas: ...
46
+
47
+ [C] Confirmar y generar la estructura
48
+ [E] Ajustar el desglose
49
+ ```
50
+
51
+ HALT. Group stories that clearly belong to the same flow; split very large epics into multiple scenarios if needed. Keep page count realistic for a proposal.
52
+
53
+ ### 2. Create Each Scenario
54
+
55
+ For each confirmed scenario:
56
+
57
+ ```bash
58
+ node {init_scenario} \
59
+ --scenario "NN <Nombre del escenario>" \
60
+ --description "<flujo en una frase, en español>" \
61
+ --output {design_artifacts}
62
+ ```
63
+
64
+ ### 3. Create Each Page
65
+
66
+ For each story/screen in the scenario:
67
+
68
+ ```bash
69
+ node {init_page} \
70
+ --page "NN <Nombre de la página>" \
71
+ --scenario "NN <Nombre del escenario>" \
72
+ --platform "Web" \
73
+ --visibility "<Public|Authenticated>" \
74
+ --output {design_artifacts}
75
+ ```
76
+
77
+ Choose `--platform` from the architecture (default "Web"; "Mobile web" if the PRD targets mobile). Choose `--visibility` from whether the story is pre/post login.
78
+
79
+ ### 4. Wire Navigation
80
+
81
+ After all pages of a scenario exist:
82
+
83
+ ```bash
84
+ node {nav} --scenario "NN <Nombre del escenario>" --output {design_artifacts}
85
+ ```
86
+
87
+ Or, once everything is created: `node {nav} --all --output {design_artifacts}`.
88
+
89
+ ### 5. Record Source Traceability
90
+
91
+ For each created page, note in memory (used in step-04 and step-06) the originating `[Source: <Épica> / <Historia> / FR-x]` so every spec and proposal traces back to planning.
92
+
93
+ ### 6. Update Log & Proceed
94
+
95
+ Update `{design_artifacts}/_progress/00-design-log.md` "Current" to "Phase 4 — poblar page-specs". Load and execute `{nextStepFile}`.
96
+
97
+ ---
98
+
99
+ ## 🚨 SUCCESS / FAILURE
100
+
101
+ ✅ Cada escenario y página creados vía scripts; navegación cableada; trazabilidad a épicas/historias registrada.
102
+ ❌ Escribir specs a mano; páginas sin orden numérico; perder el vínculo con las historias de origen.
@@ -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.
@@ -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.
@@ -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`._
@@ -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_screenshot_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).