siesa-agents 2.1.73 → 2.1.75

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.
@@ -0,0 +1,162 @@
1
+ ---
2
+ name: delivery-sa-agent-guides
3
+ description: Generate client-ready delivery guides from user-guide documents indexed in the mcp-siesa-docs MCP. Use this skill when a delivery team member needs to transform user-guide content into simple, end-user friendly material. Always trigger on /delivery-agent-guides. Also trigger when the user says "generar guía de entrega", "guía para el cliente", "documentación de entrega para [project]", "guía para usuario final", or describes wanting to turn indexed user-guide docs into something a non-technical client can understand.
4
+ ---
5
+
6
+ # Delivery Agent Guides
7
+
8
+ Transform user-guide documents (from the `mcp-siesa-docs` MCP) into a clear, client-ready delivery guide — plain language, no jargon, for non-technical end users.
9
+
10
+ The MCP is the only source of content. The local filesystem is not scanned.
11
+
12
+ ---
13
+
14
+ ## Flow
15
+
16
+ ### Step 1: Discover projects with user-guides (automatic)
17
+
18
+ As soon as the skill is invoked, without asking the user first:
19
+
20
+ 1. Call `list_collections()` to confirm `mcp-siesa-docs` is available.
21
+ 2. Call `search_docs("user guide proyectos disponibles")` to find projects whose indexed docs include a `user-guide` directory.
22
+ 3. Build the candidate list: **only include projects that have at least one document in their `user-guide` directory**. Projects with only feature specs, épicas, stories, or architecture docs are excluded (Option A).
23
+ 4. Present the list to the user:
24
+ ```
25
+ Proyectos con guías de usuario disponibles:
26
+ [1] {project-name-1}
27
+ [2] {project-name-2}
28
+ ...
29
+
30
+ ¿Para cuál proyecto quieres generar la guía de entrega?
31
+ ```
32
+ 5. The user replies with a number or project name.
33
+
34
+ If zero projects qualify, tell the user plainly ("No encontré proyectos con user-guide indexado en el MCP") and stop.
35
+
36
+ ---
37
+
38
+ ### Step 2: Pull the user-guide content from the MCP
39
+
40
+ 1. `search_docs("user guide [proyecto seleccionado]")` to list the user-guide documents of the chosen project.
41
+ 2. For each result, call `get_document(path)` to fetch the full content.
42
+ 3. **Strict filter**: process only documents whose `path` is inside the project's `user-guide` directory. Ignore feature specs, épicas, stories, architecture, or any other technical doc, even if they show up in results.
43
+
44
+ Keep the list of `path`s used — you will cite them in the final confirmation.
45
+
46
+ ---
47
+
48
+ ### Step 3: Write the delivery guide
49
+
50
+ Write one unified `delivery-guide.md`. All content in Spanish. Audience: non-technical end user.
51
+
52
+ **Content to keep and rewrite in plain language:**
53
+ - Feature name and purpose
54
+ - Step-by-step workflows
55
+ - Key concepts and field definitions (simplified)
56
+ - Troubleshooting and FAQs
57
+ - Warnings (⚠️) — rephrase without technical detail; keep the practical implication
58
+
59
+ **Content to transform:**
60
+ - Mermaid diagrams → rewrite as one or two plain sentences describing the flow. Never emit Mermaid syntax.
61
+
62
+ **Content to omit:**
63
+ - `📸 [Screenshot: ...]` placeholders
64
+ - `[Source: FX Story Y.Z]` traceability references
65
+ - Screenshot index tables
66
+ - Implementation component names (ContactManager, EmptyState, ErrorPanel, etc.) — describe the behavior instead
67
+ - `*Generado: ...` footers
68
+
69
+ **Output template:**
70
+
71
+ ```markdown
72
+ ---
73
+ project: {project-name}
74
+ generated_date: {YYYY-MM-DD}
75
+ sources:
76
+ - {mcp-path-1}
77
+ - {mcp-path-2}
78
+ audience: Usuario final no técnico
79
+ ---
80
+
81
+ # Guía de {Nombre del Proyecto}
82
+
83
+ ## ¿Qué es {Nombre del Proyecto}?
84
+ 2-3 sentences. What the app does and who it is for. No technical terms.
85
+
86
+ ## ¿Para qué sirve?
87
+ What problems it solves, from the user's perspective.
88
+
89
+ ---
90
+
91
+ ## {Feature 1}
92
+
93
+ ### ¿Qué es?
94
+ One paragraph. Plain description.
95
+
96
+ ### ¿Para qué sirve?
97
+ The practical benefit to the user.
98
+
99
+ ### ¿Cómo se usa?
100
+ Numbered step-by-step. One clear action per step.
101
+ Include warnings inline (⚠️ ...) directly before the step that can cause an issue.
102
+
103
+ ---
104
+
105
+ ## {Feature 2}
106
+ (same structure)
107
+
108
+ ---
109
+
110
+ ## Solución de Problemas
111
+ Plain Q&A: "¿Qué hago si...? → ..."
112
+
113
+ ## Preguntas Frecuentes
114
+ Plain Q&A. No technical language.
115
+ ```
116
+
117
+ **Writing guidelines:**
118
+ - Target a reader who is comfortable with a smartphone but has no software background.
119
+ - Active voice, direct instructions: "Haz clic en...", "Escribe...", "Selecciona..."
120
+ - Short sentences. If a sentence needs a comma to explain a technical concept, rewrite it.
121
+ - If a concept has no practical value to the end user, drop it.
122
+
123
+ ---
124
+
125
+ ### Step 4: Save and confirm
126
+
127
+ Save to:
128
+ ```
129
+ _bmad-output/documentation-artifacts/delivery-guides/{project-name}/delivery-guide.md
130
+ ```
131
+
132
+ Create the directory if it doesn't exist.
133
+
134
+ Then confirm:
135
+ ```
136
+ Guía guardada en: _bmad-output/documentation-artifacts/delivery-guides/{project-name}/delivery-guide.md
137
+
138
+ Features incluidas:
139
+ - {feature 1}
140
+ - {feature 2}
141
+
142
+ Fuentes del MCP:
143
+ - {mcp-path-1}
144
+ - {mcp-path-2}
145
+ ```
146
+
147
+ ---
148
+
149
+ ## Transformation Reference
150
+
151
+ | Technical element | Delivery guide treatment |
152
+ |---|---|
153
+ | `deep linking` / URL única por registro | "Cada registro tiene su propia dirección web que puedes guardar o compartir" |
154
+ | `ContactManager`, `EmptyState`, `ErrorPanel` | Drop the name; describe what the user sees |
155
+ | `NIT/RUC` | Keep — explain once: "número de identificación tributaria (NIT/RUC)" |
156
+ | `Toast` notification | "mensaje de confirmación que aparece brevemente en pantalla" |
157
+ | Reintentar button on error | "si aparece un error, haz clic en Reintentar" |
158
+ | Panel de dos columnas | "La pantalla se divide en dos partes: a la izquierda la lista, a la derecha el detalle" |
159
+ | Validación inline | "mensajes de error junto al campo que necesita corrección" |
160
+ | Mermaid code block | One or two plain sentences describing the flow |
161
+ | `[Source: FX Story Y.Z]` | Omit |
162
+ | `📸 [Screenshot: ...]` | Omit |
package/mcp.json CHANGED
@@ -1,5 +1,12 @@
1
1
  {
2
2
  "mcpServers": {
3
+ "mcp-siesa-docs": {
4
+ "type": "http",
5
+ "url": "https://platform-architecture-mcp-siesa-103767536676.us-east1.run.app/mcp",
6
+ "headers": {
7
+ "Authorization": "Bearer none"
8
+ }
9
+ },
3
10
  "atlassian": {
4
11
  "type": "sse",
5
12
  "url": "https://mcp.atlassian.com/v1/sse"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "siesa-agents",
3
- "version": "2.1.73",
3
+ "version": "2.1.75",
4
4
  "description": "Paquete para instalar y configurar agentes SIESA en tu proyecto",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -24,6 +24,29 @@ const path = require('path')
24
24
  const os = require('os')
25
25
  const { execSync } = require('child_process')
26
26
 
27
+ function loadDotEnv() {
28
+ const envPath = path.join(process.cwd(), '.env')
29
+ if (!fs.existsSync(envPath)) return
30
+ try {
31
+ const content = fs.readFileSync(envPath, 'utf8')
32
+ for (const rawLine of content.split(/\r?\n/)) {
33
+ const line = rawLine.trim()
34
+ if (!line || line.startsWith('#')) continue
35
+ const idx = line.indexOf('=')
36
+ if (idx === -1) continue
37
+ const key = line.slice(0, idx).trim()
38
+ let val = line.slice(idx + 1).trim()
39
+ if ((val.startsWith('"') && val.endsWith('"')) || (val.startsWith("'") && val.endsWith("'"))) {
40
+ val = val.slice(1, -1)
41
+ }
42
+ if (key && process.env[key] === undefined) {
43
+ process.env[key] = val
44
+ }
45
+ }
46
+ } catch (_) {}
47
+ }
48
+ loadDotEnv()
49
+
27
50
  const VALID_EVENTS = ['workflow.started', 'workflow.finished', 'status.changed', 'fix.started', 'fix.finished']
28
51
  const VALID_PHASES = ['create-story', 'dev-story', 'code-review']
29
52
  const VALID_FIX_OPTIONS = ['auto_fix', 'action_items', 'show_details']