siesa-agents 2.1.65 → 2.1.66

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,13 @@
1
+ {
2
+ "provider": "jira",
3
+ "issueTypeName": "Epic",
4
+ "projectKey": "{{project_key}}",
5
+ "parent": "{{Parent_Key}}",
6
+ "summary": "Epic {{Epic Number}}: {{Epic Name}}",
7
+ "description": "## Epic Goal\n{{goal}}\n\n## Details\n{{description}}\n\n---\n*Source: {{file_path}}*",
8
+ "additional_fields": {
9
+ "priority": { "name": "Medium" },
10
+ "labels": ["prd-sync", "automated", "epic-file-sync", "{{epic-slug}}"],
11
+ "customfield_10011": "Epic {{Epic Number}}: {{Epic Name}}"
12
+ }
13
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "provider": "jira",
3
+ "issueTypeName": "Story",
4
+ "projectKey": "{{project_key}}",
5
+ "summary": "Story {{Story ID}}: {{Story Name}}",
6
+ "description": "## User Story\n{{user_story}}\n\n## Acceptance Criteria\n{{acceptance_criteria}}\n\n## Dev Notes\n{{dev_notes}}\n\n---\n*Source: {{file_path}}*",
7
+ "parent": "{{Parent_Epic_Key}}",
8
+ "additional_fields": {
9
+ "priority": { "name": "Medium" },
10
+ "labels": ["prd-sync", "automated", "story-file-sync", "{{parent-epic-slug}}"],
11
+ "customfield_10014": "{{Parent_Epic_Key}}"
12
+ }
13
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "issueIdOrKey": "{{Parent_Task_Key}}",
3
+ "commentBody": "## Details\n\n{{nested_bullets_content}}"
4
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "provider": "jira",
3
+ "issueTypeName": "Sub-task",
4
+ "projectKey": "{{project_key}}",
5
+ "parent": "{{Parent_Story_Key}}",
6
+ "summary": "{{Story ID}} - {{Task Name}}"
7
+ }
@@ -4,7 +4,6 @@ description: 'Synchronize Epics from markdown to Jira'
4
4
 
5
5
  # Path Definitions
6
6
  workflow_path: '{project-root}/_bmad/bmm/workflows/sync-epics-stories'
7
-
8
7
  # File References
9
8
  thisStepFile: '{workflow_path}/steps/step-04-epics.md'
10
9
  nextStepStories: '{workflow_path}/steps/step-05-stories.md'
@@ -37,6 +36,7 @@ To read `epics.md`, check for existing Epics in Jira, create missing ones, and u
37
36
 
38
37
  - Read `{configFile}` to get `project_key` and `cloud_id`.
39
38
  - Read `{epicsFile}`.
39
+ - **CRITICAL:** Read the epic template payload from `{project-root}/_bmad/bmm/workflows/sync-epics-stories/data/templates/epic-template.json`.
40
40
 
41
41
  ### 2. Iterate and Sync
42
42
 
@@ -54,33 +54,16 @@ For each Epic in the file:
54
54
 
55
55
  3. **Creation (Atomic Transaction):**
56
56
 
57
- - Execute `createJiraIssue` using the following REFERENCE TEMPLATE:
57
+ - Execute `createJiraIssue`. DO NOT use hardcoded JSON.
58
+ - You MUST format the JSON object using the `epic-template.json` file you loaded in Step 1.
59
+ - Extract the `{{Epic Number}}` (e.g., "1" from "Epic 1: Core Inventory Visibility...") and `{{Epic Name}}` from the Markdown.
60
+ - Inject those, along with `{{goal}}`, `{{description}}`, and `{{project_key}}` into the template payload.
61
+ - **Hierarchy Handling (CRITICAL):** Check `project_config.yaml` for `hierarchy_level_2_name`.
62
+ - **If present (Custom Hierarchy):** Search for this issue using JQL to get its Key. Inject that Key into `{{Parent_Key}}` in the template.
63
+ - **If absent (Standard Hierarchy):** Remove the `"parent": "{{Parent_Key}}"` property completely from the JSON payload before sending it to Jira.
58
64
 
59
65
  - ⚠️ **CRITICAL CONSTRAINT:** `issueTypeName` MUST be exactly `"Epic"`. DO NOT translate to "Épica" or any other language. The API requires the English identifier.
60
66
 
61
-
62
-
63
- ```json
64
-
65
- {
66
-
67
- "provider": "jira",
68
-
69
- "issueTypeName": "Epic",
70
-
71
- "summary": "[Epic] {{Epic Name}}",
72
-
73
-
74
- "description": "## Epic Goal\n{{goal}}\n\n## Details\n{{description}}\n\n---\n*Source: {{file_path}}*",
75
- "projectKey": "{{project_key}}",
76
- "additional_fields": {
77
- "priority": { "name": "Medium" },
78
- "labels": ["prd-sync", "automated", "epic-file-sync", "{{epic-slug}}"],
79
- "customfield_10011": "{{Epic Name}}"
80
- }
81
- }
82
- ```
83
-
84
67
  4. **Immediate File Persistence (CRITICAL):**
85
68
  - **IMMEDIATELY** after obtaining the new `key` (or finding an existing one):
86
69
  - Update `{epicsFile}` **RIGHT NOW**. Do not wait for the loop to finish.
@@ -59,6 +59,7 @@ To read story files from `{storiesFolder}`, link them to Parent Epics (found in
59
59
  - Read `{configFile}`.
60
60
  - Get list of all `.md` files in `{storiesFolder}`.
61
61
  - Read `{epicsFile}` (to lookup Parent Epic IDs).
62
+ - **CRITICAL:** Read the template payloads from `{project-root}/_bmad/bmm/workflows/sync-epics-stories/data/templates/` (`story-template.json`, `task-template.json`, and `subtask-template.json`).
62
63
 
63
64
  ### 3. Iterate and Sync
64
65
 
@@ -94,23 +95,10 @@ For each markdown file in `{storiesFolder}`:
94
95
  - Proceed to Step 4.
95
96
 
96
97
  4. **Creation (Atomic Transaction - If Condition Not Found):**
97
- - Execute `createJiraIssue` using the following REFERENCE TEMPLATE:
98
-
99
- ```json
100
- {
101
- "provider": "jira",
102
- "issueTypeName": "Story",
103
- "projectKey": "{{project_key}}",
104
- "summary": "{{Story Name}}",
105
- "description": "## User Story\n{{user_story}}\n\n## Description\n{{description}}\n\n## Acceptance Criteria\n{{acceptance_criteria}}\n\n---\n*Source: {{file_path}}*",
106
- "parent": "{{Parent_Epic_Key}}",
107
- "additional_fields": {
108
- "priority": { "name": "Medium" },
109
- "labels": ["prd-sync", "automated", "epic-file-sync", "{{parent-epic-slug}}"],
110
- "customfield_10014": "{{Parent_Epic_Key}}" // 'Epic Link' field. IMPORTANT: Check project capability for field ID.
111
- }
112
- }
113
- ```
98
+ - Execute `createJiraIssue`. DO NOT use hardcoded JSON.
99
+ - You MUST format the JSON object using `story-template.json` that you loaded in Step 2.
100
+ - Extract the `{{Story ID}}` (e.g. "1.1") and `{{Story Name}}` from the Markdown file's main H1 header.
101
+ - Inject those, along with `{{user_story}}`, `{{acceptance_criteria}}`, `{{dev_notes}}`, and `{{Parent_Epic_Key}}` into the template payload.
114
102
  - **Set:** `{{KEY}}` = New Issue Key.
115
103
 
116
104
  5. **Immediate File Persistence (CRITICAL):**
@@ -140,23 +128,9 @@ For each markdown file in `{storiesFolder}`:
140
128
  - Check: Is `{{Task Name}}` already present in the *already synced tasks* list?
141
129
  - **If YES:** **SKIP** this task. Log "Task '{{Task Name}}' already synced."
142
130
  - **If NO:** **PROCEED** to Create.
143
- - **Create:** Execute `createJiraIssue`:
144
- ```json
145
- {
146
- "provider": "jira",
147
- "issueTypeName": "Sub-task",
148
- "projectKey": "{{project_key}}",
149
- "parent": "{{KEY}}",
150
- "summary": "{{Task Text}}"
151
- }
152
- ```
153
- - **Context:** If the task has nested items (indented bullets), combine them into a **simple markdown bulleted list** (ensuring no checklist `[ ]` syntax is used) and execute `addCommentToJiraIssue`:
154
- ```json
155
- {
156
- "issueIdOrKey": "{{New_SubTask_Key}}",
157
- "commentBody": "## Details\n\n{{nested_bullets_content}}"
158
- }
159
- ```
131
+ - **Create:** Execute `createJiraIssue` formatting the `task-template.json` loaded in Step 2.
132
+ - Remember to inject `{{Story ID}}` parsed from earlier, `{{Task Name}}`, and `{{project_key}}`.
133
+ - **Context:** If the task has nested items (indented bullets), combine them into a **simple markdown bulleted list** (ensuring no checklist `[ ]` syntax is used) and execute `addCommentToJiraIssue` formatting the `subtask-template.json` loaded in Step 2.
160
134
  - **Persistence (Append Update):**
161
135
  - **Immediately** append a new row to the `## Synced Tasks` table (create table header if it doesn't exist yet):
162
136
  ```markdown
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "siesa-agents",
3
- "version": "2.1.65",
3
+ "version": "2.1.66",
4
4
  "description": "Paquete para instalar y configurar agentes SIESA en tu proyecto",
5
5
  "main": "index.js",
6
6
  "bin": {