ma-agents 3.12.2 → 3.12.3

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/bin/cli.js CHANGED
@@ -290,7 +290,7 @@ async function collectLocalPath(concern) {
290
290
  const { localPath } = await prompts({
291
291
  type: 'text',
292
292
  name: 'localPath',
293
- message: `Enter local path for ${concern}:`
293
+ message: `Enter local path for ${concern} (this is the literal folder; no extra subdirectories will be created):`
294
294
  });
295
295
 
296
296
  if (!localPath || !localPath.trim()) {
@@ -510,13 +510,19 @@ function writeRepoLayoutConfig(layout) {
510
510
  content = writeConfigField(content, 'knowledgebase_path', kbPath);
511
511
 
512
512
  const spMode = layout.sprintManagement.mode;
513
+ // 3.12.3: when the user provides a non-`.` path for knowledgebase /
514
+ // sprint management, treat that path as the literal artifacts directory
515
+ // — no nested `_bmad-output/<…>-artifacts/` subtree. The wizard prompt
516
+ // ("Where is your knowledgebase managed?") implies the path IS the
517
+ // artifacts folder, not a parent. Only `.` (current repo) gets the
518
+ // canonical `_bmad-output/...` layout because in single-repo mode
519
+ // there's no other folder semantics to honor.
513
520
  if (spMode === 'jira') {
514
521
  // Jira backend: write sprint_backend + Jira config; no sprint_management_path
515
522
  content = writeConfigField(content, 'sprint_backend', 'jira');
516
523
  content = writeConfigField(content, 'jira_url', layout.sprintManagement.jiraUrl);
517
524
  content = writeConfigField(content, 'jira_project_key', layout.sprintManagement.jiraProjectKey);
518
- // Derive artifact paths from kb only
519
- const planningArtifacts = kbPath === '.' ? '_bmad-output/planning-artifacts' : `${kbPath}/_bmad-output/planning-artifacts`;
525
+ const planningArtifacts = kbPath === '.' ? '_bmad-output/planning-artifacts' : kbPath;
520
526
  const implArtifacts = '_bmad-output/implementation-artifacts';
521
527
  content = writeConfigField(content, 'planning_artifacts', planningArtifacts);
522
528
  content = writeConfigField(content, 'implementation_artifacts', implArtifacts);
@@ -528,9 +534,8 @@ function writeRepoLayoutConfig(layout) {
528
534
  const spPath = spPortable.portable;
529
535
  content = writeConfigField(content, 'sprint_backend', 'file-system');
530
536
  content = writeConfigField(content, 'sprint_management_path', spPath);
531
- // Derive workflow-consumable artifact paths from layout paths (relative when base is relative)
532
- const planningArtifacts = kbPath === '.' ? '_bmad-output/planning-artifacts' : `${kbPath}/_bmad-output/planning-artifacts`;
533
- const implArtifacts = spPath === '.' ? '_bmad-output/implementation-artifacts' : `${spPath}/_bmad-output/implementation-artifacts`;
537
+ const planningArtifacts = kbPath === '.' ? '_bmad-output/planning-artifacts' : kbPath;
538
+ const implArtifacts = spPath === '.' ? '_bmad-output/implementation-artifacts' : spPath;
534
539
  content = writeConfigField(content, 'planning_artifacts', planningArtifacts);
535
540
  content = writeConfigField(content, 'implementation_artifacts', implArtifacts);
536
541
  fs.writeFileSync(configPath, content, 'utf-8');
@@ -37,7 +37,7 @@
37
37
  "name": "ma-skills",
38
38
  "source": "./",
39
39
  "description": "ma-agents extension module providing enterprise SDLC personas and operational workflow skills.",
40
- "version": "3.12.2",
40
+ "version": "3.12.3",
41
41
  "author": {
42
42
  "name": "Alon Mayaffit"
43
43
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ma-agents",
3
- "version": "3.12.2",
3
+ "version": "3.12.3",
4
4
  "description": "NPX tool to install skills for AI coding agents (Claude Code, Gemini, Copilot, Kilocode, Cline, Cursor, Roo Code)",
5
5
  "main": "index.js",
6
6
  "bin": {