ma-agents 3.8.0 → 3.9.0

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 (43) hide show
  1. package/README.md +4 -5
  2. package/bin/cli.js +104 -27
  3. package/lib/agents.js +12 -20
  4. package/lib/bmad-extension/skills/add-sprint/SKILL.md +39 -0
  5. package/lib/bmad-extension/skills/add-to-sprint/SKILL.md +39 -0
  6. package/lib/bmad-extension/skills/bmad-dev-story/workflow.md +39 -0
  7. package/lib/bmad-extension/skills/bmad-sprint-planning/workflow.md +41 -0
  8. package/lib/bmad-extension/skills/bmad-sprint-status/workflow.md +39 -0
  9. package/lib/bmad-extension/skills/cleanup-done/SKILL.md +39 -0
  10. package/lib/bmad-extension/skills/close-sprint/SKILL.md +39 -0
  11. package/lib/bmad-extension/skills/generate-backlog/SKILL.md +41 -0
  12. package/lib/bmad-extension/skills/modify-sprint/SKILL.md +39 -0
  13. package/lib/bmad-extension/skills/prioritize-backlog/SKILL.md +39 -0
  14. package/lib/bmad-extension/skills/remove-from-sprint/SKILL.md +39 -0
  15. package/lib/bmad-extension/skills/sprint-status-view/SKILL.md +39 -0
  16. package/lib/bmad-extension-plugin/.claude-plugin/marketplace.json +1 -1
  17. package/lib/bmad-extension-plugin/skills/add-sprint/SKILL.md +39 -0
  18. package/lib/bmad-extension-plugin/skills/add-to-sprint/SKILL.md +39 -0
  19. package/lib/bmad-extension-plugin/skills/bmad-dev-story/workflow.md +39 -0
  20. package/lib/bmad-extension-plugin/skills/bmad-sprint-planning/workflow.md +41 -0
  21. package/lib/bmad-extension-plugin/skills/bmad-sprint-status/workflow.md +39 -0
  22. package/lib/bmad-extension-plugin/skills/cleanup-done/SKILL.md +39 -0
  23. package/lib/bmad-extension-plugin/skills/close-sprint/SKILL.md +39 -0
  24. package/lib/bmad-extension-plugin/skills/generate-backlog/SKILL.md +41 -0
  25. package/lib/bmad-extension-plugin/skills/modify-sprint/SKILL.md +39 -0
  26. package/lib/bmad-extension-plugin/skills/prioritize-backlog/SKILL.md +39 -0
  27. package/lib/bmad-extension-plugin/skills/remove-from-sprint/SKILL.md +39 -0
  28. package/lib/bmad-extension-plugin/skills/sprint-status-view/SKILL.md +39 -0
  29. package/lib/bmad.js +3 -7
  30. package/lib/installer.js +6 -1
  31. package/package.json +1 -1
  32. package/skills/add-sprint/SKILL.md +39 -0
  33. package/skills/add-to-sprint/SKILL.md +39 -0
  34. package/skills/bmad-sprint-planning/SKILL.md +41 -0
  35. package/skills/bmad-sprint-status/SKILL.md +39 -0
  36. package/skills/cleanup-done/SKILL.md +39 -0
  37. package/skills/close-sprint/SKILL.md +39 -0
  38. package/skills/generate-backlog/SKILL.md +41 -0
  39. package/skills/modify-sprint/SKILL.md +39 -0
  40. package/skills/prioritize-backlog/SKILL.md +39 -0
  41. package/skills/remove-from-sprint/SKILL.md +39 -0
  42. package/skills/sprint-status-view/SKILL.md +39 -0
  43. package/skills/story-status-lookup/SKILL.md +38 -21
@@ -2,6 +2,45 @@
2
2
 
3
3
  Reprioritize backlog items in `sprint-status.yaml` using multiple criteria: severity, business value, dependencies, type, and age.
4
4
 
5
+ ## Backend Routing
6
+
7
+ Before executing any file-system operations, determine and route to the correct backend:
8
+
9
+ 1. Read `_bmad-output/implementation-artifacts/sprint-status.yaml` and extract the `tracking_system` field.
10
+ If the field is absent or the file does not exist, default to `file-system`.
11
+
12
+ 2. If `tracking_system` is `file-system`:
13
+ Proceed with the **File-System Backend** instructions below.
14
+
15
+ 3. If `tracking_system` is `jira`:
16
+ a. Perform the Jira operation: Query all backlog issues (not assigned to any sprint) for project `{jira_project_key}` at `{jira_url}`. Apply the prioritization criteria specified by the user. Reorder the issues in the board backlog by updating the issue rank/priority order (use whatever ranking capability is available on the board — NextGen board issue ranking or classic board priority field). Map canonical priority back to Jira fields.
17
+ Use whatever Jira-capable tool is available in your current tool context.
18
+ Map Jira entities to the canonical schema (Sprint → sprints[], Backlog → backlog[],
19
+ Epic → epics[], Jira status → canonical vocabulary per Section 6.3 of the routing spec).
20
+ b. If the Jira operation SUCCEEDS: continue with the Jira data returned. Jira is the source of truth.
21
+ c. If the Jira operation FAILS for any reason:
22
+ - If no Jira-capable tool is available in your current context:
23
+ Pause and present the user with:
24
+ > "No Jira-capable tool is available. To use Jira tracking, configure a Jira integration
25
+ > in your agent (an MCP server, plugin, or native integration connected to the Jira
26
+ > instance at `{jira_url}`). How would you like to proceed?
27
+ > (a) Retry — attempt the Jira operation again once a Jira tool is configured
28
+ > (b) Switch to file management — update sprint-status.yaml and config to use
29
+ > file-system backend, then complete this operation locally. This change is permanent."
30
+ - If a Jira tool attempted the operation but returned an error:
31
+ Pause and present the user with:
32
+ > "The Jira operation failed: {actual Jira error details}. How would you like to proceed?
33
+ > (a) Retry — attempt the Jira operation again
34
+ > (b) Switch to file management — update sprint-status.yaml and config to use
35
+ > file-system backend, then complete this operation locally. This change is permanent."
36
+ If user chooses (b) in either case: write `tracking_system: file-system` to `sprint-status.yaml`,
37
+ update `sprint_backend: file-system` in `_bmad/bmm/config.yaml`,
38
+ then proceed with **File-System Backend** instructions below.
39
+
40
+ 4. **File-System Backend** — execute the workflow steps below.
41
+
42
+ ---
43
+
5
44
  <workflow>
6
45
 
7
46
  <step n="0" goal="Load configuration and validate file existence">
@@ -2,6 +2,45 @@
2
2
 
3
3
  Guided workflow to move sprint items back to the backlog in the unified `sprint-status.yaml` using reverse movement semantics (inverse of `add-to-sprint`).
4
4
 
5
+ ## Backend Routing
6
+
7
+ Before executing any file-system operations, determine and route to the correct backend:
8
+
9
+ 1. Read `_bmad-output/implementation-artifacts/sprint-status.yaml` and extract the `tracking_system` field.
10
+ If the field is absent or the file does not exist, default to `file-system`.
11
+
12
+ 2. If `tracking_system` is `file-system`:
13
+ Proceed with the **File-System Backend** instructions below.
14
+
15
+ 3. If `tracking_system` is `jira`:
16
+ a. Perform the Jira operation: Find the Jira issue matching the item ID in project `{jira_project_key}` at `{jira_url}` (search by issue key or summary). Remove the issue from its current sprint using the "remove issue from sprint" operation, returning it to the board backlog.
17
+ Use whatever Jira-capable tool is available in your current tool context.
18
+ Map Jira entities to the canonical schema (Sprint → sprints[], Backlog → backlog[],
19
+ Epic → epics[], Jira status → canonical vocabulary per Section 6.3 of the routing spec).
20
+ b. If the Jira operation SUCCEEDS: continue with the Jira data returned. Jira is the source of truth.
21
+ c. If the Jira operation FAILS for any reason:
22
+ - If no Jira-capable tool is available in your current context:
23
+ Pause and present the user with:
24
+ > "No Jira-capable tool is available. To use Jira tracking, configure a Jira integration
25
+ > in your agent (an MCP server, plugin, or native integration connected to the Jira
26
+ > instance at `{jira_url}`). How would you like to proceed?
27
+ > (a) Retry — attempt the Jira operation again once a Jira tool is configured
28
+ > (b) Switch to file management — update sprint-status.yaml and config to use
29
+ > file-system backend, then complete this operation locally. This change is permanent."
30
+ - If a Jira tool attempted the operation but returned an error:
31
+ Pause and present the user with:
32
+ > "The Jira operation failed: {actual Jira error details}. How would you like to proceed?
33
+ > (a) Retry — attempt the Jira operation again
34
+ > (b) Switch to file management — update sprint-status.yaml and config to use
35
+ > file-system backend, then complete this operation locally. This change is permanent."
36
+ If user chooses (b) in either case: write `tracking_system: file-system` to `sprint-status.yaml`,
37
+ update `sprint_backend: file-system` in `_bmad/bmm/config.yaml`,
38
+ then proceed with **File-System Backend** instructions below.
39
+
40
+ 4. **File-System Backend** — execute the workflow steps below.
41
+
42
+ ---
43
+
5
44
  <workflow>
6
45
 
7
46
  <step n="0" goal="Load configuration and validate file existence">
@@ -6,6 +6,45 @@ Display a formatted, read-only dashboard of all sprint, backlog, and epic data f
6
6
 
7
7
  ---
8
8
 
9
+ ## Backend Routing
10
+
11
+ Before executing any file-system operations, determine and route to the correct backend:
12
+
13
+ 1. Read `_bmad-output/implementation-artifacts/sprint-status.yaml` and extract the `tracking_system` field.
14
+ If the field is absent or the file does not exist, default to `file-system`.
15
+
16
+ 2. If `tracking_system` is `file-system`:
17
+ Proceed with the **File-System Backend** instructions below.
18
+
19
+ 3. If `tracking_system` is `jira`:
20
+ a. Perform the Jira operation: Query all sprint data for project `{jira_project_key}` at `{jira_url}`: active sprint with all its issues and their statuses, backlog issues count and list, epic summary and progress. Map Jira sprint states to canonical vocabulary (future → planning, active → active, closed → closed). Map Jira issue statuses to canonical statuses per the status mapping below. Use this data for the display — no writes. Status mapping: Backlog/Open → backlog, To Do/Selected for Development → ready-for-dev, In Progress → in-progress, In Review/Code Review → review, Done/Resolved → done, On Hold/Blocked → on-hold, Won't Do/Cancelled → cancelled.
21
+ Use whatever Jira-capable tool is available in your current tool context.
22
+ Map Jira entities to the canonical schema (Sprint → sprints[], Backlog → backlog[],
23
+ Epic → epics[], Jira status → canonical vocabulary per Section 6.3 of the routing spec).
24
+ b. If the Jira operation SUCCEEDS: continue with the Jira data returned. Jira is the source of truth.
25
+ c. If the Jira operation FAILS for any reason:
26
+ - If no Jira-capable tool is available in your current context:
27
+ Pause and present the user with:
28
+ > "No Jira-capable tool is available. To use Jira tracking, configure a Jira integration
29
+ > in your agent (an MCP server, plugin, or native integration connected to the Jira
30
+ > instance at `{jira_url}`). How would you like to proceed?
31
+ > (a) Retry — attempt the Jira operation again once a Jira tool is configured
32
+ > (b) Switch to file management — update sprint-status.yaml and config to use
33
+ > file-system backend, then complete this operation locally. This change is permanent."
34
+ - If a Jira tool attempted the operation but returned an error:
35
+ Pause and present the user with:
36
+ > "The Jira operation failed: {actual Jira error details}. How would you like to proceed?
37
+ > (a) Retry — attempt the Jira operation again
38
+ > (b) Switch to file management — update sprint-status.yaml and config to use
39
+ > file-system backend, then complete this operation locally. This change is permanent."
40
+ If user chooses (b) in either case: write `tracking_system: file-system` to `sprint-status.yaml`,
41
+ update `sprint_backend: file-system` in `_bmad/bmm/config.yaml`,
42
+ then proceed with **File-System Backend** instructions below.
43
+
44
+ 4. **File-System Backend** — execute the steps below.
45
+
46
+ ---
47
+
9
48
  ## Step 1 — Load sprint-status.yaml
10
49
 
11
50
  Read `_bmad-output/implementation-artifacts/sprint-status.yaml`.
@@ -9,19 +9,42 @@ Do not flag bugs in WIP code. Do flag bugs in delivered code.
9
9
 
10
10
  ---
11
11
 
12
- ## Backend Configuration
13
-
14
- Before performing a lookup, check the project context for the configured sprint management backend.
15
-
16
- **Where to look (in priority order):**
17
- 1. `project-context.md` in the project root look for a `sprint_management` field
18
- 2. The root directives file (`CLAUDE.md`, `.cursor/rules`, or equivalent for the active agent)
19
- 3. If neither defines a backend, **default to `file-system`**
20
-
21
- | `sprint_management` value | Backend |
22
- |---|---|
23
- | `file-system` or not set | Read `sprint-status.yaml` (see below) |
24
- | `jira` | *(Future see Jira section below)* |
12
+ ## Backend Routing
13
+
14
+ Before performing a lookup, determine and route to the correct backend:
15
+
16
+ 1. Read `_bmad-output/implementation-artifacts/sprint-status.yaml` and extract the `tracking_system` field.
17
+ If the field is absent or the file does not exist, default to `file-system`.
18
+
19
+ 2. If `tracking_system` is `file-system`:
20
+ Proceed with the **File-System Backend** instructions below.
21
+
22
+ 3. If `tracking_system` is `jira`:
23
+ a. Perform the Jira operation: Search for the Jira issue matching the item ID in project `{jira_project_key}` at `{jira_url}` (search by issue key or summary match). Return the issue's current Jira status. Map to canonical vocabulary: Backlog/Open → backlog, To Do/Selected for Development → ready-for-dev, In Progress → in-progress, In Review/Code Review → review, Done/Resolved/Closed → done, On Hold/Blocked → on-hold, Won't Do/Cancelled → cancelled. If the issue is not found in Jira, report "not found" and classify as WIP.
24
+ Use whatever Jira-capable tool is available in your current tool context.
25
+ Map Jira entities to the canonical schema (Sprint → sprints[], Backlog → backlog[],
26
+ Epic → epics[], Jira status → canonical vocabulary per Section 6.3 of the routing spec).
27
+ b. If the Jira operation SUCCEEDS: continue with the Jira data returned. Jira is the source of truth.
28
+ c. If the Jira operation FAILS for any reason:
29
+ - If no Jira-capable tool is available in your current context:
30
+ Pause and present the user with:
31
+ > "No Jira-capable tool is available. To use Jira tracking, configure a Jira integration
32
+ > in your agent (an MCP server, plugin, or native integration connected to the Jira
33
+ > instance at `{jira_url}`). How would you like to proceed?
34
+ > (a) Retry — attempt the Jira operation again once a Jira tool is configured
35
+ > (b) Switch to file management — update sprint-status.yaml and config to use
36
+ > file-system backend, then complete this operation locally. This change is permanent."
37
+ - If a Jira tool attempted the operation but returned an error:
38
+ Pause and present the user with:
39
+ > "The Jira operation failed: {actual Jira error details}. How would you like to proceed?
40
+ > (a) Retry — attempt the Jira operation again
41
+ > (b) Switch to file management — update sprint-status.yaml and config to use
42
+ > file-system backend, then complete this operation locally. This change is permanent."
43
+ If user chooses (b) in either case: write `tracking_system: file-system` to `sprint-status.yaml`,
44
+ update `sprint_backend: file-system` in `_bmad/bmm/config.yaml`,
45
+ then proceed with **File-System Backend** instructions below.
46
+
47
+ 4. **File-System Backend** — execute the steps below.
25
48
 
26
49
  ---
27
50
 
@@ -78,12 +101,6 @@ Never guess or assume delivered status. When in doubt, WIP.
78
101
 
79
102
  ---
80
103
 
81
- ## Future: Jira Backend
82
-
83
- When `sprint_management: jira` is set in the project context, this extension point applies:
84
-
85
- - Jira base URL, project key, and credentials will be defined in the project context or environment config
86
- - Query the Jira issue status API for the relevant issue key
87
- - Map the Jira workflow status to delivered/WIP using a status mapping defined in the project context
104
+ ## Jira Backend
88
105
 
89
- **This backend is not yet implemented.** When Jira support is added, update this skill with the lookup procedure and status mapping. The file-system backend remains the default fallback if Jira is unreachable.
106
+ When `tracking_system: jira` is configured in `sprint-status.yaml`, the Backend Routing section above handles the lookup. The Jira backend queries the issue by key or summary and maps the Jira workflow status to the canonical vocabulary. The file-system backend remains the fallback if the Jira operation fails and the user chooses to switch backends.