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.
- package/README.md +20 -10
- package/lib/agents.js +7 -7
- package/lib/bmad-cache/bmb/.claude-plugin/marketplace.json +4 -3
- package/lib/bmad-cache/bmb/_git_preserved/index +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/logs/HEAD +1 -1
- package/lib/bmad-cache/bmb/_git_preserved/logs/refs/heads/main +1 -1
- package/lib/bmad-cache/bmb/_git_preserved/logs/refs/remotes/origin/HEAD +1 -1
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.idx +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/{pack-5e915049d8459481e4aa7be8d5959643fa68a981.pack → pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.pack} +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-4b395d030ca386fc5748f1b670dcf8c0ef41c94c.rev +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/packed-refs +1 -1
- package/lib/bmad-cache/bmb/_git_preserved/refs/heads/main +1 -1
- package/lib/bmad-cache/bmb/_git_preserved/shallow +1 -1
- package/lib/bmad-cache/bmb/samples/sample-module-setup/assets/module-help.csv +16 -0
- package/lib/bmad-cache/bmb/samples/sample-module-setup/assets/module.yaml +13 -0
- package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/cleanup-legacy.py +259 -0
- package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-config.py +408 -0
- package/lib/bmad-cache/bmb/samples/sample-module-setup/scripts/merge-help-csv.py +218 -0
- package/lib/bmad-cache/cache-manifest.json +3 -3
- package/lib/bmad-extension/module-help.csv +0 -1
- package/lib/bmad-extension/skills/bmad-ma-agent-sqa/SKILL.md +24 -11
- package/lib/bmad-extension/skills/bmad-ma-agent-sqa/bmad-skill-manifest.yaml +6 -6
- package/lib/skill-authoring.js +2 -2
- package/package.json +1 -1
- package/test/agent-injection-strategy.test.js +1 -1
- package/test/bmad-extension.test.js +2 -2
- package/test/convert-agents-to-skills.test.js +8 -8
- package/test/extension-module-restructure.test.js +6 -6
- package/test/migration-validation.test.js +20 -16
- package/test/skill-customize-agent.test.js +2 -2
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-5e915049d8459481e4aa7be8d5959643fa68a981.idx +0 -0
- package/lib/bmad-cache/bmb/_git_preserved/objects/pack/pack-5e915049d8459481e4aa7be8d5959643fa68a981.rev +0 -0
- package/lib/bmad-extension/skills/bmad-ma-agent-mil498/.gitkeep +0 -0
- package/lib/bmad-extension/skills/bmad-ma-agent-mil498/SKILL.md +0 -54
- 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
|
|
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
|
|
12
|
-
- **Identity:** Experienced
|
|
13
|
-
- **Communication Style:** Clear, precise, and structured.
|
|
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
|
-
|
|
|
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.
|
|
46
|
-
3.
|
|
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
|
|
8
|
-
identity: "Experienced
|
|
9
|
-
communicationStyle: "Clear, precise, and structured.
|
|
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
|
package/lib/skill-authoring.js
CHANGED
|
@@ -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-
|
|
409
|
-
const BUILTIN_AGENTS = ['bmm-pm', 'bmm-architect', 'bmm-dev', 'bmm-
|
|
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
|
@@ -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-
|
|
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',
|
|
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-
|
|
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-
|
|
70
|
-
name: 'bmad-ma-agent-
|
|
71
|
-
displayName: '
|
|
72
|
-
title: '
|
|
73
|
-
skillNames: ['
|
|
74
|
-
oldPaths: ['bmm/workflows/
|
|
75
|
-
chatTopic: '
|
|
76
|
-
menuItemCount:
|
|
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
|
|
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,
|
|
202
|
+
assert.strictEqual(entries.length, 61, `Expected 61 skill dirs, found ${entries.length}`);
|
|
203
203
|
});
|
|
204
204
|
|
|
205
|
-
test('all
|
|
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
|
|
295
|
-
assert.strictEqual(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: '
|
|
70
|
-
role: '
|
|
71
|
-
identity: '
|
|
72
|
-
style: '
|
|
73
|
-
principles: ['
|
|
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-
|
|
152
|
-
agent: 'MIL-498/
|
|
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
|
|
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,
|
|
355
|
-
`Expected
|
|
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
|
|
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
|
|
380
|
-
assert.strictEqual(lines.length,
|
|
381
|
-
`Expected
|
|
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:
|
|
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,
|
|
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-
|
|
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-
|
|
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`);
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
@@ -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
|