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.
- package/claude/skills/sa-init-devops/SKILL.md +35 -36
- 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/sa/sa-init-devops/scripts/sa-init-devops.js +46 -50
- 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
package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-02b-kit-warmup.md
ADDED
|
@@ -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.
|
package/siesa-agents/bmm/workflows/3-solutioning/wds-visual-proposals/steps/step-03-scenarios.md
ADDED
|
@@ -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.
|
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).
|