siesa-agents 2.1.88 → 2.1.89

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "siesa-agents",
3
- "version": "2.1.88",
3
+ "version": "2.1.89",
4
4
  "description": "Paquete para instalar y configurar agentes SIESA en tu proyecto",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -16,9 +16,9 @@ Add the following block inside each Epic section, **after the Epic goal statemen
16
16
  These criteria validate the COMPLETE epic functionality.
17
17
  -->
18
18
 
19
- - [ ] **AC-E{{N}}.1:** {{high_level_criterion_1}}
20
- - [ ] **AC-E{{N}}.2:** {{high_level_criterion_2}}
21
- - [ ] **AC-E{{N}}.3:** {{high_level_criterion_3}}
19
+ - [ ] **AC-E{{NNN}}-{{E}}.1:** {{high_level_criterion_1}}
20
+ - [ ] **AC-E{{NNN}}-{{E}}.2:** {{high_level_criterion_2}}
21
+ - [ ] **AC-E{{NNN}}-{{E}}.3:** {{high_level_criterion_3}}
22
22
 
23
23
  **FRs covered:** {{epic_frs}}
24
24
  ```
@@ -41,6 +41,8 @@ Add the following block inside each Epic section, **after the Epic goal statemen
41
41
 
42
42
  ## Numbering Convention
43
43
 
44
- - Epic N criteria are `AC-E{N}.1`, `AC-E{N}.2`, `AC-E{N}.3`
44
+ Epic and story IDs follow the centralized convention in `@_siesa-agents/resources/conventions/epic-story-naming-convention.md`.
45
+
46
+ - Epic `{NNN}-{E}` → criteria are `AC-E{NNN}-{E}.1`, `AC-E{NNN}-{E}.2`, `AC-E{NNN}-{E}.3` (e.g., Epic 16-1 → `AC-E16-1.1`)
45
47
  - Minimum 3, maximum 5 criteria per epic
46
48
  - Each criterion must map to at least one story within the epic
@@ -52,27 +52,26 @@ Una vez confirmada la lista de features, inyectar las siguientes reglas de estru
52
52
 
53
53
  ### Reglas de estructura para el documento `epics.md`:
54
54
 
55
+ > **Convención de IDs (OBLIGATORIA):** Los IDs de épicas e historias siguen la convención centralizada definida en `@_siesa-agents/resources/conventions/epic-story-naming-convention.md`. Formato: épicas `{NNN}-{E}`, historias `{NNN}-{E}.{HH}`, donde `NNN` es el número del feature (sin ceros a la izquierda, tomado del PRD/shard `feat-{NNN}-*`).
56
+
55
57
  1. **Agrupación por Feature**: Cada feature confirmado será un heading `##` en el documento. Las épicas de ese feature van DENTRO como `###`. Las stories van como `####`.
56
58
 
57
59
  2. **Jerarquía de headings obligatoria**:
58
60
  - `## {Feature Name}` — agrupa las épicas de un feature
59
- - `### Epic {N}: {Title}` — cada épica dentro del feature
60
- - `#### Story {N}.{M}: {Title}` — cada story dentro de la épica
61
+ - `### Epic {NNN}-{E}: {Title}` — cada épica dentro del feature (ej: `### Epic 16-1: ...`)
62
+ - `#### Story {NNN}-{E}.{HH}: {Title}` — cada story dentro de la épica (ej: `#### Story 16-1.01: ...`)
61
63
 
62
64
  Nota: La generación del documento de epicas no se realiza por DOMINIO sino por FEATURE.
63
65
 
64
- 3. **Numeración de épicas GLOBAL y CONSECUTIVA**: La numeración de épicas NO se reinicia por feature. Es un consecutivo único a lo largo de todo el documento. Ejemplo:
66
+ 3. **Numeración de épicas POR FEATURE con prefijo de feature**: El número de épica (`E`) es secuencial DENTRO de cada feature, comenzando en `1`. El prefijo `{NNN}-` garantiza la unicidad global del ID. Ejemplo (feature 16 y feature 17):
65
67
  ```
66
- ## Measurement Units
67
- ### Epic 1: ...
68
- ### Epic 2: ...
69
-
70
- ## Cost Models
71
- ### Epic 3: ... ← continúa desde 3, NO reinicia en 1
72
- ### Epic 4: ...
68
+ ## Measurement Units ← feat-016
69
+ ### Epic 16-1: ...
70
+ ### Epic 16-2: ...
73
71
 
74
- ## Storages
75
- ### Epic 5: ...
72
+ ## Cost Models ← feat-017
73
+ ### Epic 17-1: ... ← reinicia en 1, el prefijo 17- lo hace único
74
+ ### Epic 17-2: ...
76
75
  ```
77
76
 
78
77
  4. **Secciones generales** (`## Overview`, `## Requirements Inventory`, etc.) permanecen igual que en el template estándar, al nivel `##`.
@@ -82,16 +81,16 @@ Una vez confirmada la lista de features, inyectar las siguientes reglas de estru
82
81
  ```
83
82
  ## Epic List
84
83
 
85
- ### {Feature Name 1}
86
- - Epic 1: [Title] — FRs: FR1, FR2
87
- - Epic 2: [Title] — FRs: FR3
84
+ ### {Feature Name 1} ← feat-016
85
+ - Epic 16-1: [Title] — FRs: FR1, FR2
86
+ - Epic 16-2: [Title] — FRs: FR3
88
87
 
89
- ### {Feature Name 2}
90
- - Epic 3: [Title] — FRs: FR4, FR5
91
- - Epic 4: [Title] — FRs: FR6
88
+ ### {Feature Name 2} ← feat-017
89
+ - Epic 17-1: [Title] — FRs: FR4, FR5
90
+ - Epic 17-2: [Title] — FRs: FR6
92
91
  ```
93
92
 
94
- 6. **Step 3 (Stories)**: Al generar épicas y stories, escribir cada feature como sección `##`, con sus épicas como `###` y stories como `####`. La numeración de stories sigue el patrón `{epic_num}.{story_num}` (ej: Story 3.1, Story 3.2 para Epic 3).
93
+ 6. **Step 3 (Stories)**: Al generar épicas y stories, escribir cada feature como sección `##`, con sus épicas como `###` y stories como `####`. La numeración de stories sigue el patrón `{NNN}-{E}.{HH}` con `HH` de dos dígitos (ej: Story 16-3.01, Story 16-3.02 para Epic 16-3).
95
94
 
96
95
  7. **Marcador `FEATURE_CODE_JIRA`**: Cada archivo shard de épica debe comenzar con la siguiente línea como **primera línea del archivo**, antes de cualquier heading:
97
96
  ```
@@ -159,11 +158,13 @@ For EACH epic, after the goal statement, add **3-5 high-level Acceptance Criteri
159
158
 
160
159
  ```markdown
161
160
  #### Acceptance Criteria (QA Validation)
162
- - [ ] **AC-E{N}.1:** [High-level criterion from user perspective]
163
- - [ ] **AC-E{N}.2:** [High-level criterion from user perspective]
164
- - [ ] **AC-E{N}.3:** [High-level criterion from user perspective]
161
+ - [ ] **AC-E{NNN}-{E}.1:** [High-level criterion from user perspective]
162
+ - [ ] **AC-E{NNN}-{E}.2:** [High-level criterion from user perspective]
163
+ - [ ] **AC-E{NNN}-{E}.3:** [High-level criterion from user perspective]
165
164
  ```
166
165
 
166
+ Donde `{NNN}-{E}` es el ID de la épica según la convención centralizada (ej: `AC-E16-1.1`, `AC-E16-1.2`). Ver `@_siesa-agents/resources/conventions/epic-story-naming-convention.md`.
167
+
167
168
  **🎯 WRITING GUIDELINES:**
168
169
 
169
170
  ✅ **DO (Business language, user perspective):**
@@ -190,10 +191,10 @@ Template reference: `@_siesa-agents/bmm/workflows/3-solutioning/create-epics-and
190
191
  After all epics and stories are generated, validate that every Epic AC has at least one supporting story:
191
192
 
192
193
  ```
193
- Epic N: [Title]
194
- ├── AC-EN.1: [Criterion] → Supported by: Story N.X, Story N.Y
195
- ├── AC-EN.2: [Criterion] → Supported by: Story N.Z
196
- └── AC-EN.3: [Criterion] → Supported by: Story N.X, Story N.W
194
+ Epic 16-1: [Title]
195
+ ├── AC-E16-1.1: [Criterion] → Supported by: Story 16-1.01, Story 16-1.02
196
+ ├── AC-E16-1.2: [Criterion] → Supported by: Story 16-1.03
197
+ └── AC-E16-1.3: [Criterion] → Supported by: Story 16-1.01, Story 16-1.04
197
198
  ```
198
199
 
199
200
  **🚨 VALIDATION RULES:**
@@ -24,7 +24,7 @@ The agent determines the sharding mode by analyzing the document content:
24
24
  | Signal | Detected Mode |
25
25
  |--------|--------------|
26
26
  | Contains `### feature —` or `### feature -` headings | **PRD Mode** |
27
- | Contains `## Epic` headings with story subsections (`### Story`) | **Epic Mode** |
27
+ | Contains `### Epic` headings with story subsections (`#### Story`) | **Epic Mode** |
28
28
  | Neither detected | **Generic Mode** (standard `##` level sharding) |
29
29
 
30
30
  The agent MUST confirm the detected mode with the user before proceeding.
@@ -119,32 +119,34 @@ Section Map (PRD Mode):
119
119
 
120
120
  ## Mode 2: Epic Sharding
121
121
 
122
+ > **Epic/Story ID convention (MANDATORY):** Epic and story IDs follow the centralized convention defined in `@_siesa-agents/resources/conventions/epic-story-naming-convention.md`: epics `{NNN}-{E}`, stories `{NNN}-{E}.{HH}` (e.g., `Epic 16-1`, `Story 16-1.01`). Sharding MUST preserve these IDs as-is in the shard content and use them in the index.
123
+
122
124
  ### When It Applies
123
125
 
124
126
  The source document is an epics breakdown organized by feature, where each feature groups its epics under a `##` heading:
125
127
 
126
128
  ```markdown
127
- # Project Name - Epic Breakdown
129
+ # feat-016 — Project Name - Epic Breakdown
128
130
 
129
131
  ## Overview
130
132
  ...
131
133
 
132
134
  ## Measurement Units
133
135
 
134
- ### Epic 1: Core Entity & CRUD API
135
- #### Story 1.1: Domain Entity & Database Schema
136
+ ### Epic 16-1: Core Entity & CRUD API
137
+ #### Story 16-1.01: Domain Entity & Database Schema
136
138
  ...
137
- #### Story 1.2: API Setup & Secure Create Endpoint
139
+ #### Story 16-1.02: API Setup & Secure Create Endpoint
138
140
  ...
139
141
 
140
- ### Epic 2: Business Rules & Integrity
141
- #### Story 2.1: Usage Detection Service
142
+ ### Epic 16-2: Business Rules & Integrity
143
+ #### Story 16-2.01: Usage Detection Service
142
144
  ...
143
145
 
144
146
  ## Cost Models
145
147
 
146
- ### Epic 1: Entity & Creation API
147
- #### Story 1.1: Database & Entity Infrastructure
148
+ ### Epic 16-3: Entity & Creation API
149
+ #### Story 16-3.01: Database & Entity Infrastructure
148
150
  ...
149
151
  ```
150
152
 
@@ -152,9 +154,10 @@ The source document is an epics breakdown organized by feature, where each featu
152
154
 
153
155
  Before generating filenames, the agent MUST resolve the feature number (`NNN`) by following this priority order:
154
156
 
155
- 1. **Source filename pattern**: Look for `feat-{digits}` in the filename (e.g., `epics-feat-016-name.md` `16`, `epic-feat-083.md` `83`). Strip leading zeros.
156
- 2. **Document title**: Look for `feat-{digits}` in the first `#` heading (e.g., `# feat-016 Proyecciones Financieros` → `16`).
157
- 3. **Not found**: Ask the user: *"¿Cuál es el número del feature (`NNN`) para este documento de épicas?"*
157
+ 1. **Epic ID prefix**: If the epic headings already follow the centralized convention (`### Epic {NNN}-{E}: ...`, e.g., `### Epic 16-1:`), take `NNN` directly from the epic IDs. If different `##` sections carry different `NNN` prefixes (multi-feature document), resolve `NNN` **per section** from its own epic IDs.
158
+ 2. **Source filename pattern**: Look for `feat-{digits}` in the filename (e.g., `epics-feat-016-name.md` `16`, `epic-feat-083.md` → `83`). Strip leading zeros.
159
+ 3. **Document title**: Look for `feat-{digits}` in the first `#` heading (e.g., `# feat-016 Proyecciones Financieros` → `16`).
160
+ 4. **Not found**: Ask the user: *"¿Cuál es el número del feature (`NNN`) para este documento de épicas?"*
158
161
 
159
162
  ### Naming Convention
160
163
 
@@ -322,7 +325,7 @@ Intelligent Shard Complete ({MODE} Mode):
322
325
 
323
326
  Applied to heading text to generate filenames:
324
327
 
325
- 1. Remove the prefix (`feature — `, `Epic N:`, numbering like `1.`, `2.`, etc.)
328
+ 1. Remove the prefix (`feature — `, `Epic {NNN}-{E}:`, numbering like `1.`, `2.`, etc.)
326
329
  2. Lowercase all text
327
330
  3. Replace spaces with hyphens
328
331
  4. Remove special characters: `&`, `,`, `(`, `)`, `/`, `'`, `"`, `:`, `;`
@@ -338,4 +341,4 @@ Applied to heading text to generate filenames:
338
341
  3. **Mixed content before first subsection**: Include intro text in index.md
339
342
  4. **Empty sections**: Skip sections with no content (heading only)
340
343
  5. **Deep nesting**: Only shard at the detection level. Everything below stays inside the shard
341
- 6. **Epic feature number (`NNN`) not detectable**: If neither the filename nor the document title contain a `feat-{digits}` pattern, the agent MUST ask the user before proceeding — never assume or default to `0`.
344
+ 6. **Epic feature number (`NNN`) not detectable**: If none of the detection sources (epic ID prefixes, filename, document title) yield a feature number, the agent MUST ask the user before proceeding — never assume or default to `0`.
@@ -0,0 +1,130 @@
1
+ # Convención de Nomenclatura para Épicas e Historias
2
+
3
+ > **Fuente centralizada.** Todo workflow, task o skill que genere, shardee o referencie épicas e historias DEBE seguir esta convención. Referenciar este archivo como:
4
+ > `@_siesa-agents/resources/conventions/epic-story-naming-convention.md`
5
+
6
+ ## Objetivo
7
+
8
+ Definir un estándar de numeración que vincule cada épica e historia con su feature de origen, garantizando trazabilidad y unicidad global en todo el proyecto. Cada ID es auto-descriptivo: al leer `16-3.02` se sabe inmediatamente que pertenece al Feature 016, Épica 3, Historia 02.
9
+
10
+ ---
11
+
12
+ ## 1. Formato de IDs
13
+
14
+ ### Épicas
15
+
16
+ ```
17
+ {NNN}-{E}
18
+ ```
19
+
20
+ | Componente | Descripción | Ejemplo |
21
+ |------------|-------------|---------|
22
+ | `NNN` | Número del feature (sin ceros a la izquierda) | `16` |
23
+ | `E` | Número secuencial de la épica dentro del feature | `1`, `48`, `56` |
24
+
25
+ **Ejemplos:** `16-1`, `16-48`, `83-1`
26
+
27
+ ### Historias
28
+
29
+ ```
30
+ {NNN}-{E}.{HH}
31
+ ```
32
+
33
+ | Componente | Descripción | Ejemplo |
34
+ |------------|-------------|---------|
35
+ | `NNN` | Número del feature (sin ceros a la izquierda) | `16` |
36
+ | `E` | Número de la épica dentro del feature | `1`, `48` |
37
+ | `HH` | Número secuencial de la historia (con cero a la izquierda si < 10) | `01`, `12` |
38
+
39
+ **Ejemplos:** `16-1.01`, `16-48.02`, `83-3.05`
40
+
41
+ ### Acceptance Criteria de épica
42
+
43
+ ```
44
+ AC-E{NNN}-{E}.{X}
45
+ ```
46
+
47
+ **Ejemplos:** `AC-E16-49.1`, `AC-E16-56.5`
48
+
49
+ ---
50
+
51
+ ## 2. Ejemplo Visual Completo
52
+
53
+ ```
54
+ feat-016 — Proyecciones Financieros Segmentos
55
+
56
+ Epic 16-1: Company Retrieval Feature
57
+ Historia 16-1.01: Establish Company Domain & Schema
58
+ Historia 16-1.02: List Companies Endpoint
59
+ Historia 16-1.03: Get & Search Endpoints
60
+
61
+ Epic 16-2: Operation Center Core Availability
62
+ Historia 16-2.01: Domain Entity & DB Schema
63
+ Historia 16-2.02: Read-Only Repository
64
+ ```
65
+
66
+ ---
67
+
68
+ ## 3. Nombres de Archivo por Artefacto
69
+
70
+ | Artefacto | Ubicación | Patrón |
71
+ |-----------|-----------|--------|
72
+ | Épicas consolidadas (shard por feature) | `planning-artifacts/epics/` | `epic-feat-{NNN}-{slug}.md` |
73
+ | Stories | `implementation-artifacts/stories/` | `story-{NNN}-{E}.{HH}-{slug}.md` |
74
+ | Reviews | `implementation-artifacts/reviews/` | `review-{NNN}-{E}.{HH}-{slug}.md` |
75
+
76
+ **Ejemplos:**
77
+ - `epic-feat-16-measurement-units.md`
78
+ - `story-16-1.01-establish-company-domain-schema.md`
79
+ - `review-16-1.01-company-domain-schema.md`
80
+
81
+ ---
82
+
83
+ ## 4. Uso del ID en el Contenido
84
+
85
+ ### Encabezados en el documento de épicas
86
+
87
+ ```markdown
88
+ ### Epic 16-1: Company Retrieval Feature
89
+ #### Story 16-1.01: Establish Company Domain & Schema
90
+ ```
91
+
92
+ ### Rangos de épicas (frontmatter, secciones, tablas)
93
+
94
+ ```markdown
95
+ activeEpics: "16-49 to 16-56"
96
+ ## §4.2 Accounting Infrastructure (Epics 16-1 – 16-4)
97
+ ```
98
+
99
+ ### Título de una story individual
100
+
101
+ ```markdown
102
+ # Story 16-1.01: Establish Company Domain & Schema
103
+ ```
104
+
105
+ ### IDs en YAML (`sprint-status.yaml`)
106
+
107
+ ```yaml
108
+ - id: "16-1" # épica — SIEMPRE entre comillas (contiene guión)
109
+ stories:
110
+ - id: "16-1.01"
111
+ file: "story-16-1.01-establish-company-domain-schema.md"
112
+ ```
113
+
114
+ ### Labels de Acceptance Criteria dentro de una story
115
+
116
+ ```markdown
117
+ 1. **Entity Definition:** ... [AC: 16-1.01.1]
118
+ ```
119
+
120
+ ---
121
+
122
+ ## 5. Reglas
123
+
124
+ 1. **El número del feature (`NNN`) se toma del PRD** correspondiente (ej: `feat-016` → `16`, `feat-083` → `83`). Se escribe sin ceros a la izquierda en los IDs.
125
+ 2. **La numeración de épicas (`E`) es secuencial dentro de cada feature**, comenzando en `1`. NO es un consecutivo global del documento: el prefijo `{NNN}-` garantiza la unicidad global.
126
+ 3. **La numeración de historias (`HH`) es secuencial dentro de cada épica**, comenzando en `01` (con cero a la izquierda para valores < 10).
127
+ 4. **No se reutilizan números** de épicas o historias eliminadas.
128
+ 5. **Los IDs en YAML deben ir entre comillas** (`"16-1"`) ya que contienen guión.
129
+ 6. **Las referencias posicionales internas** (`AC: 1, 2, 3` dentro de subtasks de la misma story) **no se modifican** — solo usan el formato completo las referencias con ID de épica/historia (`{NNN}-{E}` o `{NNN}-{E}.{HH}`).
130
+ 7. **Consistencia total:** la convención aplica a todos los artefactos (épicas, stories, reviews, sprint-status, referencias cruzadas), no solo a archivos individuales.