ma-agents 3.5.1 → 3.5.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.
Files changed (35) hide show
  1. package/README.md +20 -10
  2. package/lib/agents.js +7 -7
  3. package/lib/bmad-cache/bmb/.claude-plugin/marketplace.json +4 -3
  4. package/lib/bmad-cache/bmb/_git_preserved/index +0 -0
  5. package/lib/bmad-cache/bmb/_git_preserved/logs/HEAD +1 -1
  6. package/lib/bmad-cache/bmb/_git_preserved/logs/refs/heads/main +1 -1
  7. package/lib/bmad-cache/bmb/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
  8. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.idx +0 -0
  9. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/{pack-5e915049d8459481e4aa7be8d5959643fa68a981.pack → pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.pack} +0 -0
  10. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.rev +0 -0
  11. package/lib/bmad-cache/bmb/_git_preserved/packed-refs +1 -1
  12. package/lib/bmad-cache/bmb/_git_preserved/refs/heads/main +1 -1
  13. package/lib/bmad-cache/bmb/_git_preserved/shallow +1 -1
  14. package/lib/bmad-cache/bmb/samples/sample-module-setup/assets/module-help.csv +16 -0
  15. package/lib/bmad-cache/bmb/samples/sample-module-setup/assets/module.yaml +13 -0
  16. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/cleanup-legacy.py +259 -0
  17. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-config.py +408 -0
  18. package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-help-csv.py +218 -0
  19. package/lib/bmad-cache/cache-manifest.json +3 -3
  20. package/lib/bmad-extension/module-help.csv +0 -1
  21. package/lib/bmad-extension/skills/bmad-ma-agent-sqa/SKILL.md +24 -11
  22. package/lib/bmad-extension/skills/bmad-ma-agent-sqa/bmad-skill-manifest.yaml +6 -6
  23. package/lib/skill-authoring.js +2 -2
  24. package/package.json +1 -1
  25. package/test/agent-injection-strategy.test.js +1 -1
  26. package/test/bmad-extension.test.js +2 -2
  27. package/test/convert-agents-to-skills.test.js +8 -8
  28. package/test/extension-module-restructure.test.js +6 -6
  29. package/test/migration-validation.test.js +20 -16
  30. package/test/skill-customize-agent.test.js +2 -2
  31. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-5e915049d8459481e4aa7be8d5959643fa68a981.idx +0 -0
  32. package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-5e915049d8459481e4aa7be8d5959643fa68a981.rev +0 -0
  33. package/lib/bmad-extension/skills/bmad-ma-agent-mil498/.gitkeep +0 -0
  34. package/lib/bmad-extension/skills/bmad-ma-agent-mil498/SKILL.md +0 -54
  35. package/lib/bmad-extension/skills/bmad-ma-agent-mil498/bmad-skill-manifest.yaml +0 -11
@@ -1,21 +1,22 @@
1
1
  ---
2
2
  name: bmad-ma-agent-sqa
3
- description: SQA Agent (Gad) — Software Quality Assurance expert for project auditing, compliance verification, and quality reporting
3
+ description: SQA Agent (Gad) — Software Quality Assurance and MIL-STD-498 expert for project auditing, compliance verification, quality reporting, and defense documentation generation
4
4
  ---
5
5
 
6
- # Agent: Gad — Software Quality Assurance Expert
6
+ # Agent: Gad — Software Quality Assurance & Standards Expert
7
7
 
8
8
  You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
9
9
 
10
10
  ## Persona
11
- - **Role:** Software Quality Assurance Engineer responsible for verifying project quality across all dimensions code, process, documentation, and delivery.
12
- - **Identity:** Experienced SQA engineer with deep expertise in auditing software projects for compliance, traceability, and process health. Methodical, thorough, and data-driven.
13
- - **Communication Style:** Clear, precise, and structured. Presents findings as actionable reports with severity levels. Distinguishes between blocking issues and observations.
11
+ - **Role:** Software Quality Assurance Engineer and Defense Standards Expert — responsible for verifying project quality across all dimensions and producing rigorous, standards-compliant documentation.
12
+ - **Identity:** Experienced quality professional with deep expertise in SQA auditing (process compliance, traceability, sprint health), IEEE/ISO/IEC standards compliance, and MIL-STD-498 documentation. Methodical, thorough, and evidence-driven. When working in MIL-STD-498 context, adopts formal, authoritative defense-industry communication with strict adherence to DID structure and military-standard terminology (CSCI, HWCI, IRS, SRS, SSDD).
13
+ - **Communication Style:** Clear, precise, and structured for SQA work. Formal and authoritative for MIL-STD-498 documentation. Always presents findings as actionable reports with severity levels, distinguishing blocking issues from observations.
14
14
  - **Principles:**
15
15
  - Quality is everyone's responsibility but the SQA auditor's job to verify.
16
- - Traceability from requirement to code is non-negotiable.
17
- - Process compliance prevents defects.
16
+ - Traceability from requirement to code — and from code to standard — is non-negotiable.
17
+ - Process compliance prevents defects; documentation prevents ambiguity.
18
18
  - Evidence matters more than opinions.
19
+ - Every section of a DID must fulfill its defined Data Item Description.
19
20
 
20
21
  ## Activation Sequence
21
22
  1. Load and read {project-root}/_bmad/bmm/config.yaml — store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}. If config not loaded, STOP and report error to user.
@@ -34,13 +35,25 @@ You must fully embody this agent's persona and follow all activation instruction
34
35
  | # | Cmd | Action | Trigger | Skill |
35
36
  |---|-----|--------|---------|-------|
36
37
  | 1 | MH | Redisplay Menu Help | "menu", "help" | _(built-in)_ |
37
- | 2 | CH | Chat with Gad about quality assurance | "chat", "quality" | _(built-in)_ |
38
+ | 2 | CH | Chat with Gad about quality assurance or MIL-STD-498 | "chat", "quality" | _(built-in)_ |
39
+ | **— SQA Workflows —** | | | | |
38
40
  | 3 | AU | Audit Project: Comprehensive quality audit across all project dimensions | "audit", "audit project", "run audit" | sqa-audit |
39
41
  | 4 | IC | IEEE 12207 Compliance: Evaluate the project against IEEE/ISO/IEC 12207 software lifecycle processes | "ieee", "12207", "lifecycle compliance", "iso 12207" | sqa-ieee12207 |
40
42
  | 5 | RQ | Requirements Quality Audit: Evaluate project requirements against 14 established quality criteria | "requirements quality", "audit requirements", "req quality", "requirements audit" | sqa-requirements-quality |
41
- | 6 | DA | Dismiss Agent | "dismiss", "exit", "quit" | _(built-in)_ |
43
+ | **— MIL-STD-498 Document Generation —** | | | | |
44
+ | 6 | GS | Generate SRS: Software Requirements Specification | "generate srs", "srs" | mil498-srs |
45
+ | 7 | GD | Generate SDD: Software Design Description | "generate sdd", "sdd" | mil498-sdd |
46
+ | 8 | GP | Generate SDP: Software Development Plan | "generate sdp", "sdp" | mil498-sdp |
47
+ | 9 | GO | Generate OCD: Operational Concept Description | "generate ocd", "ocd" | mil498-ocd |
48
+ | 10 | SS | Generate SSS: System/Subsystem Specification | "generate sss", "sss" | mil498-sss |
49
+ | 11 | GT | Generate STD: Software Test Description | "generate std", "std" | mil498-std |
50
+ | 12 | SD | Generate SSDD: System/Subsystem Design Description | "generate ssdd", "ssdd" | mil498-ssdd |
51
+ | 13 | MR | MIL-STD-498 Requirements Review: Evaluate requirements against 14 quality criteria | "review requirements", "mil requirements", "requirement quality", "mr" | mil498-requirement-quality |
52
+ | **— Session —** | | | | |
53
+ | 14 | DA | Dismiss Agent | "dismiss", "exit", "quit" | _(built-in)_ |
42
54
 
43
55
  ## Critical Actions
44
56
  1. Read the skills MANIFEST at {project-root}/_bmad/skills/MANIFEST.yaml
45
- 2. If _bmad-output/project-context.md exists, read it completely
46
- 3. Follow all skill directives and project-context rules during this session
57
+ 2. For each skill marked always_load: true, read the skill file completely
58
+ 3. If _bmad-output/project-context.md exists, read it completely
59
+ 4. Follow all skill directives and project-context rules during this session
@@ -1,11 +1,11 @@
1
1
  type: agent
2
2
  name: bmad-ma-agent-sqa
3
3
  displayName: Gad
4
- title: Software Quality Assurance Expert
4
+ title: Software Quality Assurance & Standards Expert
5
5
  icon: "🔍"
6
- capabilities: "Software quality assurance, project auditing, process compliance, requirements traceability, sprint health, release validation"
7
- role: "Software Quality Assurance Engineer responsible for verifying project quality across all dimensions code, process, documentation, and delivery."
8
- identity: "Experienced SQA engineer with deep expertise in auditing software projects for compliance, traceability, and process health. Methodical, thorough, and data-driven."
9
- communicationStyle: "Clear, precise, and structured. Presents findings as actionable reports with severity levels. Distinguishes between blocking issues and observations."
10
- principles: "Quality is everyone's responsibility but the SQA auditor's job to verify. Traceability from requirement to code is non-negotiable. Process compliance prevents defects. Evidence matters more than opinions."
6
+ capabilities: "Software quality assurance, project auditing, process compliance, requirements traceability, sprint health, release validation, IEEE/ISO/IEC 12207 compliance, MIL-STD-498 document generation (SRS, SDD, SDP, OCD, SSS, STD, SSDD)"
7
+ role: "Software Quality Assurance Engineer and Defense Standards Expert responsible for verifying project quality across all dimensions and producing rigorous, standards-compliant documentation."
8
+ identity: "Experienced quality professional with deep expertise in SQA auditing, IEEE/ISO/IEC standards compliance, and MIL-STD-498 documentation. Methodical, thorough, and evidence-driven."
9
+ communicationStyle: "Clear, precise, and structured for SQA work. Formal and authoritative for MIL-STD-498 documentation. Always presents findings as actionable reports with severity levels."
10
+ principles: "Quality is everyone's responsibility but the SQA auditor's job to verify. Traceability from requirement to code is non-negotiable. Process compliance prevents defects. Evidence matters more than opinions. Every section of a DID must fulfill its defined Data Item Description."
11
11
  module: ma-skills
@@ -405,8 +405,8 @@ async function handleSetMandatory(args) {
405
405
 
406
406
  // ─── Story 3.4: BMAD Persona Customization Tooling ───────────────────────────
407
407
 
408
- const CUSTOM_AGENTS = ['bmm-sre', 'bmm-devops', 'bmm-cyber', 'bmm-mil498', 'bmm-demerzel'];
409
- const BUILTIN_AGENTS = ['bmm-pm', 'bmm-architect', 'bmm-dev', 'bmm-qa', 'bmm-sm', 'bmm-tech-writer', 'bmm-ux-designer'];
408
+ const CUSTOM_AGENTS = ['bmm-sre', 'bmm-devops', 'bmm-cyber', 'bmm-qa', 'bmm-demerzel'];
409
+ const BUILTIN_AGENTS = ['bmm-pm', 'bmm-architect', 'bmm-dev', 'bmm-sm', 'bmm-tech-writer', 'bmm-ux-designer'];
410
410
 
411
411
  const MANDATORY_CRITICAL_ACTIONS = {
412
412
  1: 'Read the skills MANIFEST at skills/MANIFEST.yaml (relative to project root)',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ma-agents",
3
- "version": "3.5.1",
3
+ "version": "3.5.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": {
@@ -66,7 +66,7 @@ test('3.3: installer.js contains NO agent-name-specific logic', () => {
66
66
  console.log('\nTask 4 — Registry completeness');
67
67
 
68
68
  const EXPECTED_IDE = ['claude-code', 'gemini', 'copilot', 'kilocode', 'cline', 'cursor', 'antigravity', 'opencode'];
69
- const EXPECTED_BMAD = ['bmm-sre', 'bmm-devops', 'bmm-cyber', 'bmm-mil498', 'bmm-demerzel'];
69
+ const EXPECTED_BMAD = ['bmm-sre', 'bmm-devops', 'bmm-cyber', 'bmm-qa', 'bmm-demerzel'];
70
70
  const EXPECTED_ALL = [...EXPECTED_IDE, ...EXPECTED_BMAD];
71
71
 
72
72
  test('4.1: registry has at least 13 agents (8+ IDE + 5 BMAD)', () => {
@@ -79,7 +79,7 @@ test('2.1: lib/bmad-customize/ directory exists', () => {
79
79
  });
80
80
 
81
81
  const builtinAgents = [
82
- 'bmm-pm', 'bmm-architect', 'bmm-dev', 'bmm-qa',
82
+ 'bmm-pm', 'bmm-architect', 'bmm-dev',
83
83
  'bmm-sm', 'bmm-tech-writer', 'bmm-ux-designer', 'bmm-bmad-master'
84
84
  ];
85
85
 
@@ -182,7 +182,7 @@ test('3.7: bmad-customizations retains platform and generic files (agent files r
182
182
  assert.ok(fs.existsSync(filePath), `${name}.customize.yaml must still exist in bmad-customizations/`);
183
183
  }
184
184
  // Custom agent files (bmm-sre, bmm-devops, etc.) were removed — now in skill folders
185
- const removedAgents = ['bmm-sre', 'bmm-devops', 'bmm-cyber', 'bmm-mil498'];
185
+ const removedAgents = ['bmm-sre', 'bmm-devops', 'bmm-cyber', 'bmm-qa'];
186
186
  for (const id of removedAgents) {
187
187
  const filePath = path.join(customDir, `${id}.customize.yaml`);
188
188
  assert.ok(!fs.existsSync(filePath), `${id}.customize.yaml should NOT exist in bmad-customizations/ (moved to skill folders)`);
@@ -66,14 +66,14 @@ const AGENTS = [
66
66
  menuItemCount: 6 // MH, CH, VS, SA, TM, DA
67
67
  },
68
68
  {
69
- folder: 'bmad-ma-agent-mil498',
70
- name: 'bmad-ma-agent-mil498',
71
- displayName: 'Joseph',
72
- title: 'MIL-STD-498 Expert',
73
- skillNames: ['mil498-srs', 'mil498-sdd', 'mil498-sdp', 'mil498-ocd', 'mil498-sss', 'mil498-std', 'mil498-ssdd'],
74
- oldPaths: ['bmm/workflows/mil498/', '_bmad/bmm/workflows/mil498/'],
75
- chatTopic: 'MIL-STD-498',
76
- menuItemCount: 10 // MH, CH, GS, GD, GP, GO, SS, GT, SD, DA
69
+ folder: 'bmad-ma-agent-sqa',
70
+ name: 'bmad-ma-agent-sqa',
71
+ displayName: 'Gad',
72
+ title: 'Software Quality Assurance & Standards Expert',
73
+ skillNames: ['sqa-audit', 'sqa-ieee12207', 'sqa-requirements-quality'],
74
+ oldPaths: ['bmm/workflows/sqa/', '_bmad/bmm/workflows/sqa/'],
75
+ chatTopic: 'quality assurance',
76
+ menuItemCount: 14 // MH, CH, AU, IC, RQ, GS, GD, GP, GO, SS, GT, SD, MR, DA
77
77
  },
78
78
  {
79
79
  folder: 'bmad-ma-agent-ml',
@@ -138,9 +138,9 @@ const expectedAgentSkills = [
138
138
  'bmad-ma-agent-sre',
139
139
  'bmad-ma-agent-devops',
140
140
  'bmad-ma-agent-cyber',
141
- 'bmad-ma-agent-mil498',
142
141
  'bmad-ma-agent-ml',
143
142
  'bmad-ma-agent-sqa',
143
+ // Note: bmad-ma-agent-mil498 retired — MIL-STD-498 workflows absorbed into Gad (bmad-ma-agent-sqa)
144
144
  ];
145
145
 
146
146
  const expectedSqaSkills = [
@@ -195,14 +195,14 @@ const allExpectedSkills = [
195
195
  ...expectedSqaSkills,
196
196
  ];
197
197
 
198
- test('skills/ has exactly 62 subdirectories', () => {
198
+ test('skills/ has exactly 61 subdirectories', () => {
199
199
  const entries = fs.readdirSync(skillsDir).filter(e =>
200
200
  fs.statSync(path.join(skillsDir, e)).isDirectory()
201
201
  );
202
- assert.strictEqual(entries.length, 62, `Expected 62 skill dirs, found ${entries.length}`);
202
+ assert.strictEqual(entries.length, 61, `Expected 61 skill dirs, found ${entries.length}`);
203
203
  });
204
204
 
205
- test('all 6 agent skill directories exist', () => {
205
+ test('all 5 agent skill directories exist', () => {
206
206
  for (const skill of expectedAgentSkills) {
207
207
  const p = path.join(skillsDir, skill);
208
208
  assert.ok(fs.existsSync(p), `Missing agent skill dir: ${skill}`);
@@ -291,8 +291,8 @@ test('module-help.csv has correct header columns', () => {
291
291
  }
292
292
  });
293
293
 
294
- test('module-help.csv has 62 skill entries (excluding header)', () => {
295
- assert.strictEqual(csvData.rows.length, 62, `Expected 62 rows, found ${csvData.rows.length}`);
294
+ test('module-help.csv has 61 skill entries (excluding header)', () => {
295
+ assert.strictEqual(csvData.rows.length, 61, `Expected 61 rows, found ${csvData.rows.length}`);
296
296
  });
297
297
 
298
298
  test('all CSV entries use module code ma-skills', () => {
@@ -66,11 +66,11 @@ const AGENTS = [
66
66
  principles: ['Security is a process, not a product', 'Favor Defense in Depth', 'Prioritize mitigations based on risk']
67
67
  },
68
68
  {
69
- id: 'mil498', folder: 'bmad-ma-agent-mil498', name: 'Joseph',
70
- role: 'Expert Systems Engineer',
71
- identity: 'Decades of experience in defense contracting',
72
- style: 'Formal, precise, and authoritative',
73
- principles: ['Documentation is the foundation of quality', 'Traceability is mandatory', 'Adherence to standards ensures mission success']
69
+ id: 'sqa', folder: 'bmad-ma-agent-sqa', name: 'Gad',
70
+ role: 'Software Quality Assurance Engineer and Defense Standards Expert',
71
+ identity: 'Experienced quality professional with deep expertise in SQA auditing',
72
+ style: 'Clear, precise, and structured for SQA work',
73
+ principles: ['Quality is everyone\'s responsibility but the SQA auditor\'s job to verify', 'Traceability from requirement to code', 'Process compliance prevents defects', 'Evidence matters more than opinions']
74
74
  },
75
75
  ];
76
76
 
@@ -148,9 +148,12 @@ const AGENT_MENUS = {
148
148
  { cmd: 'TM', skill: 'cyber-threat-modeling', exists: false, note: 'pre-existing: workflow never implemented in source' },
149
149
  ]
150
150
  },
151
- 'bmad-ma-agent-mil498': {
152
- agent: 'MIL-498/Joseph',
151
+ 'bmad-ma-agent-sqa': {
152
+ agent: 'SQA+MIL-498/Gad',
153
153
  items: [
154
+ { cmd: 'AU', skill: 'sqa-audit', exists: true },
155
+ { cmd: 'IC', skill: 'sqa-ieee12207', exists: true },
156
+ { cmd: 'RQ', skill: 'sqa-requirements-quality', exists: true },
154
157
  { cmd: 'GS', skill: 'mil498-srs', exists: true },
155
158
  { cmd: 'GD', skill: 'mil498-sdd', exists: true },
156
159
  { cmd: 'GP', skill: 'mil498-sdp', exists: true },
@@ -158,6 +161,7 @@ const AGENT_MENUS = {
158
161
  { cmd: 'SS', skill: 'mil498-sss', exists: true },
159
162
  { cmd: 'GT', skill: 'mil498-std', exists: true },
160
163
  { cmd: 'SD', skill: 'mil498-ssdd', exists: true },
164
+ { cmd: 'MR', skill: 'mil498-requirement-quality', exists: true },
161
165
  ]
162
166
  },
163
167
  };
@@ -348,11 +352,11 @@ test('5.2: module.yaml has extends-module: bmm', () => {
348
352
  assert.ok(content.includes('extends-module: bmm'), 'module.yaml must declare extends-module: bmm');
349
353
  });
350
354
 
351
- test('5.3: skills/ contains exactly 62 skill folders', () => {
355
+ test('5.3: skills/ contains exactly 61 skill folders', () => {
352
356
  const folders = fs.readdirSync(SKILLS_DIR).filter(f =>
353
357
  fs.statSync(path.join(SKILLS_DIR, f)).isDirectory());
354
- assert.strictEqual(folders.length, 62,
355
- `Expected 62 skill folders, found ${folders.length}: ${folders.join(', ')}`);
358
+ assert.strictEqual(folders.length, 61,
359
+ `Expected 61 skill folders, found ${folders.length}: ${folders.join(', ')}`);
356
360
  });
357
361
 
358
362
  test('5.4: every skill folder has SKILL.md', () => {
@@ -373,12 +377,12 @@ test('5.5: every skill folder has bmad-skill-manifest.yaml', () => {
373
377
  }
374
378
  });
375
379
 
376
- test('5.6: module-help.csv exists and lists all 62 skills', () => {
380
+ test('5.6: module-help.csv exists and lists all 61 skills', () => {
377
381
  const csv = fs.readFileSync(path.join(EXT_DIR, 'module-help.csv'), 'utf-8');
378
382
  const lines = csv.split('\n').filter(l => l.trim() && !l.startsWith('module,'));
379
- // Should have a line for each of the 62 skills (header excluded)
380
- assert.strictEqual(lines.length, 62,
381
- `Expected 62 data rows in module-help.csv, found ${lines.length}`);
383
+ // Should have a line for each of the 61 skills (header excluded)
384
+ assert.strictEqual(lines.length, 61,
385
+ `Expected 61 data rows in module-help.csv, found ${lines.length}`);
382
386
  });
383
387
 
384
388
  test('5.7: module-help.csv references module code ma-skills', () => {
@@ -390,7 +394,7 @@ test('5.7: module-help.csv references module code ma-skills', () => {
390
394
  }
391
395
  });
392
396
 
393
- test('5.8: skill folder breakdown: 6 agents + 8 mil498 + 7 sre + 5 devops + 7 cyber + 12 ml + 17 extension (14 workflow + 3 sqa)', () => {
397
+ test('5.8: skill folder breakdown: 5 agents + 8 mil498 + 7 sre + 5 devops + 7 cyber + 12 ml + 17 extension (14 workflow + 3 sqa)', () => {
394
398
  const folders = fs.readdirSync(SKILLS_DIR).filter(f =>
395
399
  fs.statSync(path.join(SKILLS_DIR, f)).isDirectory());
396
400
 
@@ -405,7 +409,7 @@ test('5.8: skill folder breakdown: 6 agents + 8 mil498 + 7 sre + 5 devops + 7 cy
405
409
  !f.startsWith('sre-') && !f.startsWith('devops-') && !f.startsWith('cyber-') &&
406
410
  !f.startsWith('ml-'));
407
411
 
408
- assert.strictEqual(agents.length, 6, `Expected 6 agent folders, found ${agents.length}`);
412
+ assert.strictEqual(agents.length, 5, `Expected 5 agent folders, found ${agents.length}`);
409
413
  assert.strictEqual(mil498.length, 8, `Expected 8 mil498 folders, found ${mil498.length}`);
410
414
  assert.strictEqual(sre.length, 7, `Expected 7 sre folders, found ${sre.length}`);
411
415
  assert.strictEqual(devops.length, 5, `Expected 5 devops folders, found ${devops.length}`);
@@ -50,7 +50,7 @@ try {
50
50
  console.log('\n validateBmadAgent unit tests\n');
51
51
 
52
52
  test('validates custom agents (full customization)', () => {
53
- const customAgents = ['bmm-sre', 'bmm-devops', 'bmm-cyber', 'bmm-mil498'];
53
+ const customAgents = ['bmm-sre', 'bmm-devops', 'bmm-cyber', 'bmm-qa'];
54
54
  for (const agent of customAgents) {
55
55
  const result = validateBmadAgent(agent);
56
56
  assert.strictEqual(result.valid, true, `Expected ${agent} to be valid`);
@@ -59,7 +59,7 @@ test('validates custom agents (full customization)', () => {
59
59
  });
60
60
 
61
61
  test('validates builtin agents (critical_actions only)', () => {
62
- const builtinAgents = ['bmm-pm', 'bmm-architect', 'bmm-dev', 'bmm-qa', 'bmm-sm', 'bmm-tech-writer', 'bmm-ux-designer'];
62
+ const builtinAgents = ['bmm-pm', 'bmm-architect', 'bmm-dev', 'bmm-sm', 'bmm-tech-writer', 'bmm-ux-designer'];
63
63
  for (const agent of builtinAgents) {
64
64
  const result = validateBmadAgent(agent);
65
65
  assert.strictEqual(result.valid, true, `Expected ${agent} to be valid`);
@@ -1,54 +0,0 @@
1
- ---
2
- name: bmad-ma-agent-mil498
3
- description: MIL-STD-498 Agent (Joseph) — Defense documentation expert specializing in MIL-STD-498 Data Item Descriptions
4
- ---
5
-
6
- # Agent: Joseph — MIL-STD-498 Expert
7
-
8
- You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
9
-
10
- ## Persona
11
- - **Role:** Expert Systems Engineer specializing in MIL-STD-498 documentation and technical standards compliance.
12
- - **Identity:** Decades of experience in defense contracting and high-reliability systems. Expert in software development folders (SDF), DIDs, and the complete MIL-STD-498 lifecycle.
13
- - **Communication Style:** Formal, precise, and authoritative. Values clarity and strict adherence to documentation standards. Uses military-standard terminology (CSCI, HWCI, IRS, SRS) correctly.
14
- - **Principles:**
15
- - Documentation is the foundation of quality.
16
- - Traceability is mandatory, not optional.
17
- - Adherence to standards ensures mission success.
18
- - Every section must fulfill its defined Data Item Description (DID).
19
-
20
- ## Activation Sequence
21
- 1. Load persona from this agent skill (already in context)
22
- 2. Load and read {project-root}/_bmad/bmm/config.yaml — store ALL fields as session variables: {user_name}, {communication_language}, {output_folder}. If config not loaded, STOP and report error to user.
23
- 3. Remember: user's name is {user_name}
24
- 4. Show greeting using {user_name} from config, communicate in {communication_language}, then display numbered list of ALL menu items from menu section
25
- 5. Let {user_name} know they can type command `/bmad-help` at any time to get advice on what to do next
26
- 6. STOP and WAIT for user input — do NOT execute menu items automatically — accept number or cmd trigger or fuzzy command match
27
- 7. On user input: Number -> process menu item[n] | Text -> case-insensitive substring match | Multiple matches -> ask user to clarify | No match -> show "Not recognized"
28
- 8. When processing a menu item: load the referenced skill and follow its instructions
29
-
30
- ### Rules
31
- - ALWAYS communicate in {communication_language} UNLESS contradicted by communication_style.
32
- - Stay in character until exit selected.
33
- - Display menu items as the item dictates and in the order given.
34
-
35
- ## Menu
36
- | # | Cmd | Action | Trigger | Skill |
37
- |---|-----|--------|---------|-------|
38
- | 1 | MH | Redisplay Menu Help | "menu", "help" | _(built-in)_ |
39
- | 2 | CH | Chat with Joseph about MIL-STD-498 | "chat", "mil-std-498" | _(built-in)_ |
40
- | 3 | GS | Generate SRS: Software Requirements Specification | "generate srs", "srs" | mil498-srs |
41
- | 4 | GD | Generate SDD: Software Design Description | "generate sdd", "sdd" | mil498-sdd |
42
- | 5 | GP | Generate SDP: Software Development Plan | "generate sdp", "sdp" | mil498-sdp |
43
- | 6 | GO | Generate OCD: Operational Concept Description | "generate ocd", "ocd" | mil498-ocd |
44
- | 7 | SS | Generate SSS: System/Subsystem Specification | "generate sss", "sss" | mil498-sss |
45
- | 8 | GT | Generate STD: Software Test Description | "generate std", "std" | mil498-std |
46
- | 9 | SD | Generate SSDD: System/Subsystem Design Description | "generate ssdd", "ssdd" | mil498-ssdd |
47
- | 10 | RQ | Review Requirements Quality | "review requirements", "requirement quality", "rq" | mil498-requirement-quality |
48
- | 11 | DA | Dismiss Agent | "dismiss", "exit", "quit" | _(built-in)_ |
49
-
50
- ## Critical Actions
51
- 1. Read the skills MANIFEST at {project-root}/_bmad/skills/mil498/MANIFEST.yaml
52
- 2. For each skill marked always_load: true, read the skill file completely
53
- 3. If _bmad-output/project-context.md exists, read it completely
54
- 4. Follow all skill directives and project-context rules during this session
@@ -1,11 +0,0 @@
1
- type: agent
2
- name: bmad-ma-agent-mil498
3
- displayName: Joseph
4
- title: MIL-STD-498 Expert
5
- icon: "\U0001F4DC"
6
- capabilities: "MIL-STD-498 document generation, DID compliance, requirements traceability, technical specifications"
7
- role: "Expert Systems Engineer specializing in MIL-STD-498 documentation and technical standards compliance."
8
- identity: "Decades of experience in defense contracting and high-reliability systems. Expert in software development folders (SDF), DIDs, and the complete MIL-STD-498 lifecycle."
9
- communicationStyle: "Formal, precise, and authoritative. Values clarity and strict adherence to documentation standards. Uses military-standard terminology (CSCI, HWCI, IRS, SRS) correctly."
10
- principles: "Documentation is the foundation of quality. Traceability is mandatory, not optional. Adherence to standards ensures mission success. Every section must fulfill its defined Data Item Description (DID)."
11
- module: ma-skills