ma-agents 2.16.3 → 2.17.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.
- package/lib/bmad-customizations/bmm-mil498.customize.yaml +9 -6
- package/lib/bmad-customizations/mil498.md +7 -6
- package/lib/bmad-workflows/mil498/ocd/instructions.md +99 -0
- package/lib/bmad-workflows/mil498/ocd/workflow.yaml +15 -0
- package/lib/bmad-workflows/mil498/sdd/instructions.md +104 -0
- package/lib/bmad-workflows/mil498/sdd/workflow.yaml +16 -0
- package/lib/bmad-workflows/mil498/sdp/instructions.md +98 -0
- package/lib/bmad-workflows/mil498/sdp/workflow.yaml +15 -0
- package/lib/bmad-workflows/mil498/srs/instructions.md +103 -0
- package/lib/bmad-workflows/mil498/srs/workflow.yaml +15 -0
- package/lib/bmad-workflows/mil498/ssdd/instructions.md +118 -0
- package/lib/bmad-workflows/mil498/ssdd/workflow.yaml +15 -0
- package/lib/bmad-workflows/mil498/sss/instructions.md +96 -0
- package/lib/bmad-workflows/mil498/sss/workflow.yaml +15 -0
- package/lib/bmad-workflows/mil498/std/instructions.md +97 -0
- package/lib/bmad-workflows/mil498/std/workflow.yaml +15 -0
- package/lib/bmad.js +22 -16
- package/package.json +1 -1
|
@@ -14,20 +14,23 @@ persona:
|
|
|
14
14
|
|
|
15
15
|
menu:
|
|
16
16
|
- trigger: bmad-mil-generate-srs
|
|
17
|
-
workflow: "bmm/workflows/mil498/
|
|
17
|
+
workflow: "bmm/workflows/mil498/srs/workflow.yaml"
|
|
18
18
|
description: "Generate SRS (Software Requirements Specification)"
|
|
19
19
|
- trigger: bmad-mil-generate-sdd
|
|
20
|
-
workflow: "bmm/workflows/mil498/
|
|
20
|
+
workflow: "bmm/workflows/mil498/sdd/workflow.yaml"
|
|
21
21
|
description: "Generate SDD (Software Design Description)"
|
|
22
22
|
- trigger: bmad-mil-generate-sdp
|
|
23
|
-
workflow: "bmm/workflows/mil498/
|
|
23
|
+
workflow: "bmm/workflows/mil498/sdp/workflow.yaml"
|
|
24
24
|
description: "Generate SDP (Software Development Plan)"
|
|
25
25
|
- trigger: bmad-mil-generate-ocd
|
|
26
|
-
workflow: "bmm/workflows/mil498/
|
|
26
|
+
workflow: "bmm/workflows/mil498/ocd/workflow.yaml"
|
|
27
27
|
description: "Generate OCD (Operational Concept Description)"
|
|
28
28
|
- trigger: bmad-mil-generate-sss
|
|
29
|
-
workflow: "bmm/workflows/mil498/
|
|
29
|
+
workflow: "bmm/workflows/mil498/sss/workflow.yaml"
|
|
30
30
|
description: "Generate SSS (System/Subsystem Specification)"
|
|
31
31
|
- trigger: bmad-mil-generate-std
|
|
32
|
-
workflow: "bmm/workflows/mil498/
|
|
32
|
+
workflow: "bmm/workflows/mil498/std/workflow.yaml"
|
|
33
33
|
description: "Generate STD (Software Test Description)"
|
|
34
|
+
- trigger: bmad-mil-generate-ssdd
|
|
35
|
+
workflow: "bmm/workflows/mil498/ssdd/workflow.yaml"
|
|
36
|
+
description: "Generate SSDD (System/Subsystem Design Description)"
|
|
@@ -62,12 +62,13 @@ You must fully embody this agent's persona and follow all activation instruction
|
|
|
62
62
|
<menu>
|
|
63
63
|
<item cmd="MH">[MH] Redisplay Menu Help</item>
|
|
64
64
|
<item cmd="CH">[CH] Chat with Joseph about MIL-STD-498</item>
|
|
65
|
-
<item cmd="GS" workflow="{project-root}/_bmad/bmm/workflows/mil498/
|
|
66
|
-
<item cmd="GD" workflow="{project-root}/_bmad/bmm/workflows/mil498/
|
|
67
|
-
<item cmd="GP" workflow="{project-root}/_bmad/bmm/workflows/mil498/
|
|
68
|
-
<item cmd="GO" workflow="{project-root}/_bmad/bmm/workflows/mil498/
|
|
69
|
-
<item cmd="SS" workflow="{project-root}/_bmad/bmm/workflows/mil498/
|
|
70
|
-
<item cmd="GT" workflow="{project-root}/_bmad/bmm/workflows/mil498/
|
|
65
|
+
<item cmd="GS" workflow="{project-root}/_bmad/bmm/workflows/mil498/srs/workflow.yaml">[GS] Generate SRS: Software Requirements Specification</item>
|
|
66
|
+
<item cmd="GD" workflow="{project-root}/_bmad/bmm/workflows/mil498/sdd/workflow.yaml">[GD] Generate SDD: Software Design Description</item>
|
|
67
|
+
<item cmd="GP" workflow="{project-root}/_bmad/bmm/workflows/mil498/sdp/workflow.yaml">[GP] Generate SDP: Software Development Plan</item>
|
|
68
|
+
<item cmd="GO" workflow="{project-root}/_bmad/bmm/workflows/mil498/ocd/workflow.yaml">[GO] Generate OCD: Operational Concept Description</item>
|
|
69
|
+
<item cmd="SS" workflow="{project-root}/_bmad/bmm/workflows/mil498/sss/workflow.yaml">[SS] Generate SSS: System/Subsystem Specification</item>
|
|
70
|
+
<item cmd="GT" workflow="{project-root}/_bmad/bmm/workflows/mil498/std/workflow.yaml">[GT] Generate STD: Software Test Description</item>
|
|
71
|
+
<item cmd="SD" workflow="{project-root}/_bmad/bmm/workflows/mil498/ssdd/workflow.yaml">[SD] Generate SSDD: System/Subsystem Design Description</item>
|
|
71
72
|
<item cmd="DA">[DA] Dismiss Agent</item>
|
|
72
73
|
</menu>
|
|
73
74
|
</agent>
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Generate Operational Concept Description (OCD)
|
|
2
|
+
|
|
3
|
+
> MIL-STD-498 Data Item Description: DI-IPSC-81430
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
Generate a compliant OCD document by describing the system from the user's and stakeholder's perspective, extracting operational concepts from existing project artifacts into the MIL-STD-498 OCD template structure.
|
|
8
|
+
|
|
9
|
+
## Step 1 — Discover Project Artifacts
|
|
10
|
+
|
|
11
|
+
Search the project for the following artifacts. Communicate in {communication_language}. Inform {user_name} which artifacts were found and which are missing.
|
|
12
|
+
|
|
13
|
+
| Priority | Artifact | Search Pattern |
|
|
14
|
+
|----------|----------|----------------|
|
|
15
|
+
| Required | PRD | `**/prd.md`, `**/prd-*.md` |
|
|
16
|
+
| Recommended | Architecture | `**/architecture.md`, `**/architecture-*.md` |
|
|
17
|
+
| Recommended | UX Designs | `**/ux-design*.md`, `**/ux-*.md` |
|
|
18
|
+
| Optional | Product Brief | `**/product-brief*.md` |
|
|
19
|
+
| Optional | Epics & Stories | `**/epics*.md`, `**/stories/*.md` |
|
|
20
|
+
|
|
21
|
+
If the **PRD** is missing, warn the user and ask whether to proceed with available data or stop.
|
|
22
|
+
|
|
23
|
+
## Step 2 — Load Template
|
|
24
|
+
|
|
25
|
+
Read the OCD template from:
|
|
26
|
+
`{template}`
|
|
27
|
+
|
|
28
|
+
This defines the required DID sections and content expectations for each paragraph.
|
|
29
|
+
|
|
30
|
+
## Step 3 — Generate Document
|
|
31
|
+
|
|
32
|
+
Write the document in {document_output_language}, populating each template section. The OCD should be written in language accessible to users and stakeholders, minimizing technical jargon.
|
|
33
|
+
|
|
34
|
+
### Section 1: Scope
|
|
35
|
+
- **1.1 Identification**: Extract system name, version, identifiers from PRD
|
|
36
|
+
- **1.2 System overview**: Summarize the system purpose from the user's perspective
|
|
37
|
+
- **1.3 Document overview**: Describe this OCD document's purpose and contents
|
|
38
|
+
|
|
39
|
+
### Section 2: Referenced documents
|
|
40
|
+
- List all project artifacts used as input sources
|
|
41
|
+
|
|
42
|
+
### Section 3: Current system or situation
|
|
43
|
+
- **3.1 Background, objectives, and scope**: Describe the problem domain and business objectives from the PRD
|
|
44
|
+
- **3.2 Operational policies and constraints**: Current business rules and constraints
|
|
45
|
+
- **3.3 Description of current system or situation**: How things work today — existing workflows, pain points, limitations. Include:
|
|
46
|
+
- Operational environment
|
|
47
|
+
- Major components and interconnections
|
|
48
|
+
- Interfaces to external systems
|
|
49
|
+
- User roles and their current interactions
|
|
50
|
+
- **3.4 Users or involved personnel**: Identify all user types and stakeholders from PRD/UX
|
|
51
|
+
- **3.5 Support concept**: Current support and maintenance approach (if applicable)
|
|
52
|
+
|
|
53
|
+
### Section 4: Justification for and nature of changes
|
|
54
|
+
- **4.1 Justification for changes**: Why the new system is needed — business drivers from PRD
|
|
55
|
+
- **4.2 Description of needed changes**: What must change to meet objectives
|
|
56
|
+
- **4.3 Priorities among the changes**: Rank changes by business importance
|
|
57
|
+
|
|
58
|
+
### Section 5: Concept for the proposed system
|
|
59
|
+
- **5.1 Background, objectives, and scope**: Vision for the new system from Product Brief/PRD
|
|
60
|
+
- **5.2 Operational policies and constraints**: New policies and constraints
|
|
61
|
+
- **5.3 Description of the proposed system**: How the new system will work. For each operational scenario:
|
|
62
|
+
- User roles involved
|
|
63
|
+
- Step-by-step workflow
|
|
64
|
+
- System behavior and responses
|
|
65
|
+
- Extract scenarios from UX Designs and Stories
|
|
66
|
+
- **5.4 Users or involved personnel**: How user roles change with the new system
|
|
67
|
+
- **5.5 Support concept**: Planned support and maintenance approach
|
|
68
|
+
|
|
69
|
+
### Section 6: Operational scenarios
|
|
70
|
+
- Document key end-to-end scenarios from UX Designs and Epics
|
|
71
|
+
- Each scenario should describe: trigger, actors, sequence of actions, expected outcomes
|
|
72
|
+
- Include both normal operation and exception/error scenarios
|
|
73
|
+
|
|
74
|
+
### Section 7: Notes
|
|
75
|
+
- Glossary, acronyms, and background information
|
|
76
|
+
|
|
77
|
+
## Step 4 — Validate
|
|
78
|
+
|
|
79
|
+
Before presenting to the user, verify:
|
|
80
|
+
- All template sections are populated or marked "Not applicable" with justification
|
|
81
|
+
- Document is written from the user/stakeholder perspective, not the developer perspective
|
|
82
|
+
- Operational scenarios are complete and realistic
|
|
83
|
+
- Document is written in {document_output_language}
|
|
84
|
+
|
|
85
|
+
## Step 5 — Review
|
|
86
|
+
|
|
87
|
+
Present the complete document to {user_name} for review.
|
|
88
|
+
Highlight any sections where information was inferred or assumptions were made.
|
|
89
|
+
Offer to refine any section based on feedback.
|
|
90
|
+
|
|
91
|
+
## Step 6 — Save
|
|
92
|
+
|
|
93
|
+
Write the final document to:
|
|
94
|
+
`{output_folder}/planning-artifacts/OCD.md`
|
|
95
|
+
|
|
96
|
+
Confirm the file was saved and display a summary of:
|
|
97
|
+
- Number of user roles identified
|
|
98
|
+
- Number of operational scenarios documented
|
|
99
|
+
- Any sections marked "Not applicable"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: "bmad-mil-generate-ocd"
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: "Generate a MIL-STD-498 Operational Concept Description (OCD). Use when the user says 'generate OCD' or 'generate operational concept description'"
|
|
4
|
+
|
|
5
|
+
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
|
6
|
+
user_name: "{config_source}:user_name"
|
|
7
|
+
communication_language: "{config_source}:communication_language"
|
|
8
|
+
document_output_language: "{config_source}:document_output_language"
|
|
9
|
+
output_folder: "{config_source}:output_folder"
|
|
10
|
+
date: system-generated
|
|
11
|
+
|
|
12
|
+
installed_path: "{project-root}/_bmad/bmm/workflows/mil498/ocd"
|
|
13
|
+
instructions: "{installed_path}/instructions.md"
|
|
14
|
+
|
|
15
|
+
template: "{project-root}/_bmad/bmm/templates/mil498/OCD.md"
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# Generate Software Design Description (SDD)
|
|
2
|
+
|
|
3
|
+
> MIL-STD-498 Data Item Description: DI-IPSC-81435
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
Generate a compliant SDD document by mapping the system's software design and architecture to the MIL-STD-498 Software Design Description template structure. This document describes the design of a CSCI (Computer Software Configuration Item).
|
|
8
|
+
|
|
9
|
+
**Note**: This workflow uses the SSDD template structure adapted for CSCI-level design, as both SDD and SSDD follow the same DID pattern but at different abstraction levels.
|
|
10
|
+
|
|
11
|
+
## Step 1 — Discover Project Artifacts
|
|
12
|
+
|
|
13
|
+
Search the project for the following artifacts. Communicate in {communication_language}. Inform {user_name} which artifacts were found and which are missing.
|
|
14
|
+
|
|
15
|
+
| Priority | Artifact | Search Pattern |
|
|
16
|
+
|----------|----------|----------------|
|
|
17
|
+
| Required | Architecture | `**/architecture.md`, `**/architecture-*.md` |
|
|
18
|
+
| Required | PRD | `**/prd.md`, `**/prd-*.md` |
|
|
19
|
+
| Recommended | Epics & Stories | `**/epics*.md`, `**/epic-*.md`, `**/stories/*.md` |
|
|
20
|
+
| Recommended | SRS | `**/SRS.md` |
|
|
21
|
+
| Optional | UX Designs | `**/ux-design*.md`, `**/ux-*.md` |
|
|
22
|
+
| Optional | Product Brief | `**/product-brief*.md` |
|
|
23
|
+
|
|
24
|
+
If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
|
|
25
|
+
|
|
26
|
+
## Step 2 — Load Template
|
|
27
|
+
|
|
28
|
+
Read the design document template from:
|
|
29
|
+
`{template}`
|
|
30
|
+
|
|
31
|
+
This defines the required DID sections. Adapt the system-level language to CSCI-level software design.
|
|
32
|
+
|
|
33
|
+
## Step 3 — Generate Document
|
|
34
|
+
|
|
35
|
+
Write the document in {document_output_language}, populating each template section:
|
|
36
|
+
|
|
37
|
+
### Section 1: Scope
|
|
38
|
+
- **1.1 Identification**: Identify the CSCI by name, version, and project-unique identifier
|
|
39
|
+
- **1.2 System overview**: Summarize the system and this CSCI's role within it
|
|
40
|
+
- **1.3 Document overview**: Describe this SDD document's purpose and contents
|
|
41
|
+
|
|
42
|
+
### Section 2: Referenced documents
|
|
43
|
+
- List all project artifacts and external references used
|
|
44
|
+
|
|
45
|
+
### Section 3: CSCI-wide design decisions
|
|
46
|
+
|
|
47
|
+
Describe design decisions that apply across the entire CSCI:
|
|
48
|
+
- **Architectural patterns**: Extract from Architecture document (e.g., MVC, microservices, event-driven)
|
|
49
|
+
- **Technology stack**: Languages, frameworks, libraries, and their versions
|
|
50
|
+
- **Behavioral design**: How the CSCI behaves from the user's perspective
|
|
51
|
+
- **Database/data design**: How data stores appear to users and external systems
|
|
52
|
+
- **Safety, security, privacy**: Approaches to meeting these requirements
|
|
53
|
+
- **Other decisions**: Flexibility, availability, maintainability approaches
|
|
54
|
+
|
|
55
|
+
Each decision should reference the requirement(s) it satisfies.
|
|
56
|
+
|
|
57
|
+
### Section 4: CSCI architectural design
|
|
58
|
+
|
|
59
|
+
- **4.1 CSCI components**: Identify all software components (modules, packages, services). Assign project-unique identifiers. Show static relationships (component diagrams). State each component's purpose and allocated requirements
|
|
60
|
+
- **4.2 Concept of execution**: Describe dynamic behavior — data flow, control flow, state transitions, timing, concurrency, error handling. Use diagrams where helpful
|
|
61
|
+
- **4.3 Interface design**: Document interfaces between components and with external entities. For each interface provide:
|
|
62
|
+
- Data elements with types, sizes, formats, units, ranges
|
|
63
|
+
- Communication methods and protocols
|
|
64
|
+
- Error handling and recovery
|
|
65
|
+
|
|
66
|
+
### Section 5: CSCI detailed design
|
|
67
|
+
|
|
68
|
+
For each component identified in Section 4.1, describe:
|
|
69
|
+
- Internal structure and sub-components
|
|
70
|
+
- Algorithms and processing logic (map from Stories/Epics)
|
|
71
|
+
- Internal data structures and data flows
|
|
72
|
+
- Constraints and limitations
|
|
73
|
+
|
|
74
|
+
### Section 6: Requirements traceability
|
|
75
|
+
- **6.a**: Map each CSCI component to the requirements it addresses (from SRS or PRD)
|
|
76
|
+
- **6.b**: Map each requirement to the components that implement it
|
|
77
|
+
|
|
78
|
+
### Section 7: Notes
|
|
79
|
+
- Glossary of design terms, acronyms, and abbreviations
|
|
80
|
+
|
|
81
|
+
## Step 4 — Validate
|
|
82
|
+
|
|
83
|
+
Before presenting to the user, verify:
|
|
84
|
+
- All template sections are populated or marked "Not applicable" with justification
|
|
85
|
+
- Components have unique identifiers
|
|
86
|
+
- Design decisions reference their driving requirements
|
|
87
|
+
- Interfaces are described consistently from both sides
|
|
88
|
+
- Document is written in {document_output_language}
|
|
89
|
+
|
|
90
|
+
## Step 5 — Review
|
|
91
|
+
|
|
92
|
+
Present the complete document to {user_name} for review.
|
|
93
|
+
Highlight any design decisions where assumptions were made.
|
|
94
|
+
Offer to refine any section based on feedback.
|
|
95
|
+
|
|
96
|
+
## Step 6 — Save
|
|
97
|
+
|
|
98
|
+
Write the final document to:
|
|
99
|
+
`{output_folder}/planning-artifacts/SDD.md`
|
|
100
|
+
|
|
101
|
+
Confirm the file was saved and display a summary of:
|
|
102
|
+
- Number of components identified
|
|
103
|
+
- Number of interfaces documented
|
|
104
|
+
- Any sections marked "Not applicable"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: "bmad-mil-generate-sdd"
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: "Generate a MIL-STD-498 Software Design Description (SDD). Use when the user says 'generate SDD' or 'generate software design description'"
|
|
4
|
+
|
|
5
|
+
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
|
6
|
+
user_name: "{config_source}:user_name"
|
|
7
|
+
communication_language: "{config_source}:communication_language"
|
|
8
|
+
document_output_language: "{config_source}:document_output_language"
|
|
9
|
+
output_folder: "{config_source}:output_folder"
|
|
10
|
+
date: system-generated
|
|
11
|
+
|
|
12
|
+
installed_path: "{project-root}/_bmad/bmm/workflows/mil498/sdd"
|
|
13
|
+
instructions: "{installed_path}/instructions.md"
|
|
14
|
+
|
|
15
|
+
# SDD uses SSDD template structure adapted for CSCI-level design
|
|
16
|
+
template: "{project-root}/_bmad/bmm/templates/mil498/SSDD.md"
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Generate Software Development Plan (SDP)
|
|
2
|
+
|
|
3
|
+
> MIL-STD-498 Data Item Description: DI-IPSC-81427
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
Generate a compliant SDP document by extracting project planning, methodology, and management information from existing project artifacts into the MIL-STD-498 SDP template structure.
|
|
8
|
+
|
|
9
|
+
## Step 1 — Discover Project Artifacts
|
|
10
|
+
|
|
11
|
+
Search the project for the following artifacts. Communicate in {communication_language}. Inform {user_name} which artifacts were found and which are missing.
|
|
12
|
+
|
|
13
|
+
| Priority | Artifact | Search Pattern |
|
|
14
|
+
|----------|----------|----------------|
|
|
15
|
+
| Required | Product Brief | `**/product-brief*.md` |
|
|
16
|
+
| Required | PRD | `**/prd.md`, `**/prd-*.md` |
|
|
17
|
+
| Recommended | Architecture | `**/architecture.md`, `**/architecture-*.md` |
|
|
18
|
+
| Recommended | Project Context | `**/project-context.md` |
|
|
19
|
+
| Optional | Sprint Status | `**/sprint-status*.yaml`, `**/sprint-status*.md` |
|
|
20
|
+
| Optional | Epics | `**/epics*.md` |
|
|
21
|
+
|
|
22
|
+
If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
|
|
23
|
+
|
|
24
|
+
## Step 2 — Load Template
|
|
25
|
+
|
|
26
|
+
Read the SDP template from:
|
|
27
|
+
`{template}`
|
|
28
|
+
|
|
29
|
+
This defines the required DID sections and content expectations for each paragraph.
|
|
30
|
+
|
|
31
|
+
## Step 3 — Generate Document
|
|
32
|
+
|
|
33
|
+
Write the document in {document_output_language}, populating each template section:
|
|
34
|
+
|
|
35
|
+
### Section 1: Scope
|
|
36
|
+
- **1.1 Identification**: Extract project name, version, identifiers from PRD
|
|
37
|
+
- **1.2 System overview**: Summarize from Product Brief and PRD
|
|
38
|
+
- **1.3 Document overview**: Describe this SDP document's purpose
|
|
39
|
+
- **1.4 Relationship to other plans**: Reference any related project plans
|
|
40
|
+
|
|
41
|
+
### Section 2: Referenced documents
|
|
42
|
+
- List all project artifacts and standards used
|
|
43
|
+
|
|
44
|
+
### Section 3: Overview of required work
|
|
45
|
+
- **Requirements and constraints**: From PRD scope and constraints
|
|
46
|
+
- **Documentation requirements**: What MIL-STD-498 documents are planned
|
|
47
|
+
- **Life cycle position**: Current project phase
|
|
48
|
+
- **Acquisition strategy**: From Product Brief
|
|
49
|
+
- **Schedule and resource constraints**: From PRD or Sprint Status
|
|
50
|
+
- **Other constraints**: Security, methods, standards, interdependencies
|
|
51
|
+
|
|
52
|
+
### Section 4: Plans for general software development activities
|
|
53
|
+
- **4.1 Software development process**: Describe the BMAD-METHOD lifecycle and how it maps to MIL-STD-498 activities
|
|
54
|
+
- **4.2 General plans for software development**: High-level approach to requirements analysis, design, implementation, testing
|
|
55
|
+
- Map the BMAD workflow (Product Brief → PRD → Architecture → Epics → Stories → Implementation) to MIL-STD-498 activities
|
|
56
|
+
|
|
57
|
+
### Section 5: Plans for performing detailed software development activities
|
|
58
|
+
- **Requirements analysis**: How requirements are gathered and validated (BMAD PRD creation)
|
|
59
|
+
- **Software design**: How architecture and detailed design are produced
|
|
60
|
+
- **Coding and testing**: Implementation approach, testing strategy
|
|
61
|
+
- **Integration**: How components are integrated
|
|
62
|
+
- **Qualification testing**: Test planning and execution approach
|
|
63
|
+
|
|
64
|
+
### Section 6: Schedules and activity network
|
|
65
|
+
- Map Epics/Sprint plans to a development schedule if available
|
|
66
|
+
- Identify milestones and deliverables
|
|
67
|
+
|
|
68
|
+
### Section 7: Project organization and resources
|
|
69
|
+
- Development team structure from Product Brief
|
|
70
|
+
- Tools, environments, and infrastructure from Architecture/Project Context
|
|
71
|
+
|
|
72
|
+
### Additional sections (as defined in template)
|
|
73
|
+
- Populate all remaining template sections based on available project information
|
|
74
|
+
- Mark sections "Not applicable" with justification where information is unavailable
|
|
75
|
+
|
|
76
|
+
## Step 4 — Validate
|
|
77
|
+
|
|
78
|
+
Before presenting to the user, verify:
|
|
79
|
+
- All template sections are populated or marked "Not applicable" with justification
|
|
80
|
+
- Development process description accurately reflects the actual methodology
|
|
81
|
+
- Schedule information is consistent with available Sprint/Epic data
|
|
82
|
+
- Document is written in {document_output_language}
|
|
83
|
+
|
|
84
|
+
## Step 5 — Review
|
|
85
|
+
|
|
86
|
+
Present the complete document to {user_name} for review.
|
|
87
|
+
Highlight any sections where information was inferred or assumptions were made.
|
|
88
|
+
Offer to refine any section based on feedback.
|
|
89
|
+
|
|
90
|
+
## Step 6 — Save
|
|
91
|
+
|
|
92
|
+
Write the final document to:
|
|
93
|
+
`{output_folder}/planning-artifacts/SDP.md`
|
|
94
|
+
|
|
95
|
+
Confirm the file was saved and display a summary of:
|
|
96
|
+
- Development phases identified
|
|
97
|
+
- Key milestones documented
|
|
98
|
+
- Any sections marked "Not applicable"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: "bmad-mil-generate-sdp"
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: "Generate a MIL-STD-498 Software Development Plan (SDP). Use when the user says 'generate SDP' or 'generate software development plan'"
|
|
4
|
+
|
|
5
|
+
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
|
6
|
+
user_name: "{config_source}:user_name"
|
|
7
|
+
communication_language: "{config_source}:communication_language"
|
|
8
|
+
document_output_language: "{config_source}:document_output_language"
|
|
9
|
+
output_folder: "{config_source}:output_folder"
|
|
10
|
+
date: system-generated
|
|
11
|
+
|
|
12
|
+
installed_path: "{project-root}/_bmad/bmm/workflows/mil498/sdp"
|
|
13
|
+
instructions: "{installed_path}/instructions.md"
|
|
14
|
+
|
|
15
|
+
template: "{project-root}/_bmad/bmm/templates/mil498/SDP.md"
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Generate Software Requirements Specification (SRS)
|
|
2
|
+
|
|
3
|
+
> MIL-STD-498 Data Item Description: DI-IPSC-81433
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
Generate a compliant SRS document by extracting and organizing software requirements from existing project artifacts into the MIL-STD-498 SRS template structure.
|
|
8
|
+
|
|
9
|
+
## Step 1 — Discover Project Artifacts
|
|
10
|
+
|
|
11
|
+
Search the project for the following artifacts. Communicate in {communication_language}. Inform {user_name} which artifacts were found and which are missing.
|
|
12
|
+
|
|
13
|
+
| Priority | Artifact | Search Pattern |
|
|
14
|
+
|----------|----------|----------------|
|
|
15
|
+
| Required | PRD | `**/prd.md`, `**/prd-*.md` |
|
|
16
|
+
| Required | Architecture | `**/architecture.md`, `**/architecture-*.md` |
|
|
17
|
+
| Recommended | UX Designs | `**/ux-design*.md`, `**/ux-*.md` |
|
|
18
|
+
| Recommended | Epics | `**/epics*.md`, `**/epic-*.md` |
|
|
19
|
+
| Optional | Product Brief | `**/product-brief*.md` |
|
|
20
|
+
| Optional | Existing SRS | `**/SRS.md` |
|
|
21
|
+
|
|
22
|
+
If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
|
|
23
|
+
|
|
24
|
+
If an existing SRS is found, ask the user whether to update it or generate from scratch.
|
|
25
|
+
|
|
26
|
+
## Step 2 — Load Template
|
|
27
|
+
|
|
28
|
+
Read the SRS template from:
|
|
29
|
+
`{template}`
|
|
30
|
+
|
|
31
|
+
This defines the required DID sections and content expectations for each paragraph.
|
|
32
|
+
|
|
33
|
+
## Step 3 — Generate Document
|
|
34
|
+
|
|
35
|
+
Write the document in {document_output_language}, populating each template section:
|
|
36
|
+
|
|
37
|
+
### Section 1: Scope
|
|
38
|
+
- **1.1 Identification**: Extract software name, version, CSCI identifiers from the PRD and Architecture
|
|
39
|
+
- **1.2 System overview**: Summarize purpose, nature, development history from PRD
|
|
40
|
+
- **1.3 Document overview**: Describe this SRS document's purpose and contents
|
|
41
|
+
|
|
42
|
+
### Section 2: Referenced documents
|
|
43
|
+
- List all project artifacts used as input sources, with their titles and versions
|
|
44
|
+
|
|
45
|
+
### Section 3: Requirements
|
|
46
|
+
|
|
47
|
+
- **3.1 Required states and modes**: Identify operational modes from Architecture (e.g., normal, degraded, maintenance, training). If none, state "The CSCI does not have distinct operational states or modes"
|
|
48
|
+
- **3.2 CSCI capability requirements**: Map each Epic/feature from the PRD to a numbered capability requirement (3.2.1, 3.2.2, etc.). Each requirement must have:
|
|
49
|
+
- A unique project identifier (e.g., SRS-CAP-001)
|
|
50
|
+
- Clear, testable acceptance criteria
|
|
51
|
+
- Parameters: response times, throughput, accuracy, capacity as applicable
|
|
52
|
+
- Error handling and boundary conditions
|
|
53
|
+
- **3.3 CSCI external interface requirements**: Map external interfaces from the Architecture document. Include user interfaces, hardware interfaces, software interfaces, and communication interfaces
|
|
54
|
+
- **3.4 CSCI internal interface requirements**: Document internal component interfaces from Architecture
|
|
55
|
+
- **3.5 CSCI internal data requirements**: Identify persistent data stores, databases, and data models
|
|
56
|
+
- **3.6 Adaptation requirements**: Document any site-specific or installation-specific requirements
|
|
57
|
+
- **3.7 Safety requirements**: Extract from PRD/Architecture if applicable
|
|
58
|
+
- **3.8 Security and privacy requirements**: Extract from PRD/Architecture
|
|
59
|
+
- **3.9 CSCI environment requirements**: Document runtime environment constraints
|
|
60
|
+
- **3.10 Computer resource requirements**: Extract hardware/software constraints from Architecture
|
|
61
|
+
- **3.11 Software quality factors**: Document quality attributes (reliability, maintainability, portability, etc.)
|
|
62
|
+
- **3.12 Design and implementation constraints**: Technology stack constraints from Architecture
|
|
63
|
+
- **3.13 Personnel-related requirements**: Any user skill or training requirements
|
|
64
|
+
- **3.14 Training-related requirements**: If applicable
|
|
65
|
+
- **3.15 Logistics-related requirements**: If applicable
|
|
66
|
+
- **3.16 Other requirements**: Any requirements not covered above
|
|
67
|
+
- **3.17 Packaging requirements**: Deployment and distribution requirements
|
|
68
|
+
- **3.18 Precedence and criticality of requirements**: Rank requirements by priority
|
|
69
|
+
|
|
70
|
+
### Section 4: Qualification provisions
|
|
71
|
+
- For each requirement in Section 3, specify the qualification method: Demonstration, Test, Analysis, or Inspection
|
|
72
|
+
|
|
73
|
+
### Section 5: Requirements traceability
|
|
74
|
+
- **5.a**: Map each SRS requirement to its parent system requirement
|
|
75
|
+
- **5.b**: Map each system requirement to the SRS requirements that address it
|
|
76
|
+
|
|
77
|
+
### Section 6: Notes
|
|
78
|
+
- Glossary of terms, acronyms, and abbreviations used in this document
|
|
79
|
+
|
|
80
|
+
## Step 4 — Validate
|
|
81
|
+
|
|
82
|
+
Before presenting to the user, verify:
|
|
83
|
+
- All template sections are populated or marked "Not applicable" with justification
|
|
84
|
+
- Every requirement has a unique identifier (SRS-xxx-nnn format)
|
|
85
|
+
- Every requirement is testable and traceable
|
|
86
|
+
- Cross-references between sections are consistent
|
|
87
|
+
- Document is written in {document_output_language}
|
|
88
|
+
|
|
89
|
+
## Step 5 — Review
|
|
90
|
+
|
|
91
|
+
Present the complete document to {user_name} for review.
|
|
92
|
+
Highlight any sections where information was inferred or assumptions were made.
|
|
93
|
+
Offer to refine any section based on feedback.
|
|
94
|
+
|
|
95
|
+
## Step 6 — Save
|
|
96
|
+
|
|
97
|
+
Write the final document to:
|
|
98
|
+
`{output_folder}/planning-artifacts/SRS.md`
|
|
99
|
+
|
|
100
|
+
Confirm the file was saved and display a summary of:
|
|
101
|
+
- Total number of requirements identified
|
|
102
|
+
- Number of capabilities documented
|
|
103
|
+
- Any sections marked "Not applicable"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: "bmad-mil-generate-srs"
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: "Generate a MIL-STD-498 Software Requirements Specification (SRS). Use when the user says 'generate SRS' or 'generate software requirements specification'"
|
|
4
|
+
|
|
5
|
+
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
|
6
|
+
user_name: "{config_source}:user_name"
|
|
7
|
+
communication_language: "{config_source}:communication_language"
|
|
8
|
+
document_output_language: "{config_source}:document_output_language"
|
|
9
|
+
output_folder: "{config_source}:output_folder"
|
|
10
|
+
date: system-generated
|
|
11
|
+
|
|
12
|
+
installed_path: "{project-root}/_bmad/bmm/workflows/mil498/srs"
|
|
13
|
+
instructions: "{installed_path}/instructions.md"
|
|
14
|
+
|
|
15
|
+
template: "{project-root}/_bmad/bmm/templates/mil498/SRS.md"
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Generate System/Subsystem Design Description (SSDD)
|
|
2
|
+
|
|
3
|
+
> MIL-STD-498 Data Item Description: DI-IPSC-81432
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
Generate a compliant SSDD document by extracting and organizing system architectural design decisions from existing project artifacts into the MIL-STD-498 SSDD template structure. The SSDD describes the system-level design — how the system is organized into components (HWCIs, CSCIs, and manual operations) and how they interact.
|
|
8
|
+
|
|
9
|
+
## Step 1 — Discover Project Artifacts
|
|
10
|
+
|
|
11
|
+
Search the project for the following artifacts. Communicate in {communication_language}. Inform {user_name} which artifacts were found and which are missing.
|
|
12
|
+
|
|
13
|
+
| Priority | Artifact | Search Pattern |
|
|
14
|
+
|----------|----------|----------------|
|
|
15
|
+
| Required | PRD | `**/prd.md`, `**/prd-*.md` |
|
|
16
|
+
| Required | Architecture | `**/architecture.md`, `**/architecture-*.md` |
|
|
17
|
+
| Recommended | Product Brief | `**/product-brief*.md` |
|
|
18
|
+
| Recommended | SSS | `**/SSS.md` |
|
|
19
|
+
| Optional | UX Designs | `**/ux-design*.md`, `**/ux-*.md` |
|
|
20
|
+
| Optional | Epics | `**/epics*.md`, `**/epic-*.md` |
|
|
21
|
+
| Optional | Any client documentation | Ask {user_name} if there are additional documents to consider |
|
|
22
|
+
|
|
23
|
+
If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
|
|
24
|
+
|
|
25
|
+
## Step 2 — Load Template
|
|
26
|
+
|
|
27
|
+
Read the SSDD template from:
|
|
28
|
+
`{template}`
|
|
29
|
+
|
|
30
|
+
This defines the required DID sections and content expectations for each paragraph.
|
|
31
|
+
|
|
32
|
+
## Step 3 — Generate Document
|
|
33
|
+
|
|
34
|
+
Write the document in {document_output_language}, populating each template section:
|
|
35
|
+
|
|
36
|
+
### Section 1: Scope
|
|
37
|
+
- **1.1 Identification**: Extract system name, version, and project-unique identifiers from PRD/Product Brief
|
|
38
|
+
- **1.2 System overview**: Summarize system purpose, history, stakeholders, and operating sites from Product Brief and PRD
|
|
39
|
+
- **1.3 Document overview**: Describe this SSDD document's purpose, contents, and any security/privacy considerations
|
|
40
|
+
|
|
41
|
+
### Section 2: Referenced documents
|
|
42
|
+
- List all project artifacts, standards, and external references used as inputs
|
|
43
|
+
|
|
44
|
+
### Section 3: System-wide design decisions
|
|
45
|
+
|
|
46
|
+
Document design decisions that apply across the entire system. For each decision, reference the requirement(s) it satisfies:
|
|
47
|
+
|
|
48
|
+
- **a. Input/output design**: System inputs, outputs, and user/external interfaces. Describe what the system accepts and produces from the Architecture document
|
|
49
|
+
- **b. Behavioral design**: System behavior in response to inputs and conditions — actions, response times, performance characteristics, algorithms, handling of invalid inputs. Extract from PRD and Architecture
|
|
50
|
+
- **c. Database/data design**: How databases and data files appear to users. Data models and storage approaches from Architecture
|
|
51
|
+
- **d. Safety, security, privacy**: Selected approaches to meeting these requirements from PRD
|
|
52
|
+
- **e. Hardware design choices**: Physical characteristics if applicable (for hardware-software systems)
|
|
53
|
+
- **f. Other system-wide decisions**: Flexibility, availability, maintainability approaches. Technology stack selections and their rationale from Architecture
|
|
54
|
+
|
|
55
|
+
### Section 4: System architectural design
|
|
56
|
+
|
|
57
|
+
- **4.1 System components**:
|
|
58
|
+
- Identify all system components (CSCIs, HWCIs, manual operations) from the Architecture document
|
|
59
|
+
- Assign project-unique identifiers to each component
|
|
60
|
+
- Show static relationships using component/block diagrams
|
|
61
|
+
- State each component's purpose and the system requirements allocated to it
|
|
62
|
+
- Identify each component's development status (new, reuse, reengineer)
|
|
63
|
+
- For computer systems: describe hardware resources (processors, memory, I/O, storage, networking) with specifications
|
|
64
|
+
|
|
65
|
+
- **4.2 Concept of execution**:
|
|
66
|
+
- Describe dynamic relationships between components from Architecture
|
|
67
|
+
- Include: execution flow, data flow, state transitions, timing/sequencing, priorities, interrupt handling, concurrency, dynamic allocation
|
|
68
|
+
- Use sequence diagrams or flow diagrams where helpful
|
|
69
|
+
|
|
70
|
+
- **4.3 Interface design**:
|
|
71
|
+
- **4.3.1 Interface identification and diagrams**: List all interfaces with unique identifiers, identify fixed vs. developing interfaces, provide interface diagrams
|
|
72
|
+
- **4.3.x (per interface)**: For each interface, document:
|
|
73
|
+
- Interfacing entities and their characteristics
|
|
74
|
+
- Data elements: names, types, sizes, formats, units, ranges, accuracy, constraints
|
|
75
|
+
- Data assemblies: records, messages, files, displays with structure and relationships
|
|
76
|
+
- Communication methods: links, message formats, flow control, data rates, routing
|
|
77
|
+
- Protocols: layers, packeting, error control, synchronization
|
|
78
|
+
- Physical compatibility considerations
|
|
79
|
+
|
|
80
|
+
### Section 5: Requirements traceability
|
|
81
|
+
- **5.a**: Map each system component to the system requirements it satisfies
|
|
82
|
+
- **5.b**: Map each system requirement to the components that address it
|
|
83
|
+
|
|
84
|
+
### Section 6: Notes
|
|
85
|
+
- Glossary of terms, acronyms, and abbreviations
|
|
86
|
+
- Background information to aid understanding
|
|
87
|
+
|
|
88
|
+
## Step 4 — Validate
|
|
89
|
+
|
|
90
|
+
Before presenting to the user, verify:
|
|
91
|
+
- All template sections are populated or marked "Not applicable" with justification
|
|
92
|
+
- Every component has a unique identifier
|
|
93
|
+
- System-wide design decisions reference their driving requirements
|
|
94
|
+
- Interface descriptions are complete and consistent from both sides
|
|
95
|
+
- Requirements traceability covers all system requirements
|
|
96
|
+
- Document is written in {document_output_language}
|
|
97
|
+
|
|
98
|
+
## Step 5 — Review
|
|
99
|
+
|
|
100
|
+
Present the complete document to {user_name} for review.
|
|
101
|
+
Highlight any sections where information was inferred or assumptions were made.
|
|
102
|
+
Specifically ask about:
|
|
103
|
+
- Are all system components identified?
|
|
104
|
+
- Are the interface descriptions accurate?
|
|
105
|
+
- Are there additional design decisions not captured in the Architecture?
|
|
106
|
+
|
|
107
|
+
Offer to refine any section based on feedback.
|
|
108
|
+
|
|
109
|
+
## Step 6 — Save
|
|
110
|
+
|
|
111
|
+
Write the final document to:
|
|
112
|
+
`{output_folder}/planning-artifacts/SSDD.md`
|
|
113
|
+
|
|
114
|
+
Confirm the file was saved and display a summary of:
|
|
115
|
+
- Number of system components identified
|
|
116
|
+
- Number of interfaces documented
|
|
117
|
+
- Number of system-wide design decisions captured
|
|
118
|
+
- Any sections marked "Not applicable"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: "bmad-mil-generate-ssdd"
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: "Generate a MIL-STD-498 System/Subsystem Design Description (SSDD). Use when the user says 'generate SSDD' or 'generate system design description'"
|
|
4
|
+
|
|
5
|
+
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
|
6
|
+
user_name: "{config_source}:user_name"
|
|
7
|
+
communication_language: "{config_source}:communication_language"
|
|
8
|
+
document_output_language: "{config_source}:document_output_language"
|
|
9
|
+
output_folder: "{config_source}:output_folder"
|
|
10
|
+
date: system-generated
|
|
11
|
+
|
|
12
|
+
installed_path: "{project-root}/_bmad/bmm/workflows/mil498/ssdd"
|
|
13
|
+
instructions: "{installed_path}/instructions.md"
|
|
14
|
+
|
|
15
|
+
template: "{project-root}/_bmad/bmm/templates/mil498/SSDD.md"
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Generate System/Subsystem Specification (SSS)
|
|
2
|
+
|
|
3
|
+
> MIL-STD-498 Data Item Description: DI-IPSC-81431
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
Generate a compliant SSS document by extracting and organizing system-level requirements from existing project artifacts into the MIL-STD-498 SSS template structure. The SSS specifies requirements at the system or subsystem level, not at the software (CSCI) level.
|
|
8
|
+
|
|
9
|
+
## Step 1 — Discover Project Artifacts
|
|
10
|
+
|
|
11
|
+
Search the project for the following artifacts. Communicate in {communication_language}. Inform {user_name} which artifacts were found and which are missing.
|
|
12
|
+
|
|
13
|
+
| Priority | Artifact | Search Pattern |
|
|
14
|
+
|----------|----------|----------------|
|
|
15
|
+
| Required | Product Brief | `**/product-brief*.md` |
|
|
16
|
+
| Required | PRD | `**/prd.md`, `**/prd-*.md` |
|
|
17
|
+
| Recommended | Architecture | `**/architecture.md`, `**/architecture-*.md` |
|
|
18
|
+
| Optional | OCD | `**/OCD.md` |
|
|
19
|
+
| Optional | UX Designs | `**/ux-design*.md` |
|
|
20
|
+
|
|
21
|
+
If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
|
|
22
|
+
|
|
23
|
+
## Step 2 — Load Template
|
|
24
|
+
|
|
25
|
+
Read the SSS template from:
|
|
26
|
+
`{template}`
|
|
27
|
+
|
|
28
|
+
This defines the required DID sections and content expectations for each paragraph.
|
|
29
|
+
|
|
30
|
+
## Step 3 — Generate Document
|
|
31
|
+
|
|
32
|
+
Write the document in {document_output_language}, populating each template section. Keep requirements at the **system/subsystem level** — avoid low-level software implementation details.
|
|
33
|
+
|
|
34
|
+
### Section 1: Scope
|
|
35
|
+
- **1.1 Identification**: Extract system name, version, identifiers from PRD/Product Brief
|
|
36
|
+
- **1.2 System overview**: Summarize system purpose, nature, and stakeholders
|
|
37
|
+
- **1.3 Document overview**: Describe this SSS document's purpose and contents
|
|
38
|
+
|
|
39
|
+
### Section 2: Referenced documents
|
|
40
|
+
- List all project artifacts and external standards used
|
|
41
|
+
|
|
42
|
+
### Section 3: Requirements
|
|
43
|
+
|
|
44
|
+
- **3.1 Required states and modes**: Identify system-level operational states from Architecture/PRD (e.g., operational, maintenance, degraded, emergency). If none, state so explicitly
|
|
45
|
+
- **3.2 System capability requirements**: Map high-level PRD features and Product Brief goals to system capabilities. Each capability requirement (3.2.1, 3.2.2, etc.) must have:
|
|
46
|
+
- A unique identifier (SSS-CAP-001 format)
|
|
47
|
+
- Clear, testable statement
|
|
48
|
+
- Performance parameters where applicable
|
|
49
|
+
- Behavior under error conditions
|
|
50
|
+
- **3.3 System external interface requirements**: Map top-level external interfaces from Architecture — other systems, hardware, users, networks
|
|
51
|
+
- **3.4 System internal interface requirements**: Map interfaces between major subsystems or components
|
|
52
|
+
- **3.5 System internal data requirements**: System-level data stores, data flows between subsystems
|
|
53
|
+
- **3.6 Adaptation requirements**: Installation and site-specific configuration needs
|
|
54
|
+
- **3.7 Safety requirements**: System-level safety requirements
|
|
55
|
+
- **3.8 Security and privacy requirements**: System-level security requirements from PRD
|
|
56
|
+
- **3.9 System environment requirements**: Physical, regulatory, and operational environment constraints
|
|
57
|
+
- **3.10 Computer resource requirements**: System-level hardware and infrastructure requirements
|
|
58
|
+
- **3.11 System quality factors**: Reliability, availability, maintainability, portability requirements
|
|
59
|
+
- **3.12 Design and implementation constraints**: Technology and methodology constraints
|
|
60
|
+
- **3.13-3.18**: Additional requirement categories as defined in the template
|
|
61
|
+
|
|
62
|
+
### Section 4: Qualification provisions
|
|
63
|
+
- For each requirement in Section 3, specify the qualification method: Demonstration, Test, Analysis, or Inspection
|
|
64
|
+
|
|
65
|
+
### Section 5: Requirements traceability
|
|
66
|
+
- **5.a**: For subsystem specs, map each requirement to parent system requirements
|
|
67
|
+
- **5.b**: Map parent requirements to subsystem requirements that address them
|
|
68
|
+
|
|
69
|
+
### Section 6: Notes
|
|
70
|
+
- Glossary of terms, acronyms, and abbreviations
|
|
71
|
+
|
|
72
|
+
## Step 4 — Validate
|
|
73
|
+
|
|
74
|
+
Before presenting to the user, verify:
|
|
75
|
+
- All template sections are populated or marked "Not applicable" with justification
|
|
76
|
+
- Requirements are at the system level (not CSCI/software level)
|
|
77
|
+
- Every requirement has a unique identifier and is testable
|
|
78
|
+
- Qualification methods are specified for all requirements
|
|
79
|
+
- Document is written in {document_output_language}
|
|
80
|
+
|
|
81
|
+
## Step 5 — Review
|
|
82
|
+
|
|
83
|
+
Present the complete document to {user_name} for review.
|
|
84
|
+
Highlight any sections where information was inferred or assumptions were made.
|
|
85
|
+
Offer to refine any section based on feedback.
|
|
86
|
+
|
|
87
|
+
## Step 6 — Save
|
|
88
|
+
|
|
89
|
+
Write the final document to:
|
|
90
|
+
`{output_folder}/planning-artifacts/SSS.md`
|
|
91
|
+
|
|
92
|
+
Confirm the file was saved and display a summary of:
|
|
93
|
+
- Total system requirements identified
|
|
94
|
+
- Number of capabilities documented
|
|
95
|
+
- Qualification methods assigned
|
|
96
|
+
- Any sections marked "Not applicable"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: "bmad-mil-generate-sss"
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: "Generate a MIL-STD-498 System/Subsystem Specification (SSS). Use when the user says 'generate SSS' or 'generate system specification'"
|
|
4
|
+
|
|
5
|
+
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
|
6
|
+
user_name: "{config_source}:user_name"
|
|
7
|
+
communication_language: "{config_source}:communication_language"
|
|
8
|
+
document_output_language: "{config_source}:document_output_language"
|
|
9
|
+
output_folder: "{config_source}:output_folder"
|
|
10
|
+
date: system-generated
|
|
11
|
+
|
|
12
|
+
installed_path: "{project-root}/_bmad/bmm/workflows/mil498/sss"
|
|
13
|
+
instructions: "{installed_path}/instructions.md"
|
|
14
|
+
|
|
15
|
+
template: "{project-root}/_bmad/bmm/templates/mil498/SSS.md"
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Generate Software Test Description (STD)
|
|
2
|
+
|
|
3
|
+
> MIL-STD-498 Data Item Description: DI-IPSC-81439
|
|
4
|
+
|
|
5
|
+
## Objective
|
|
6
|
+
|
|
7
|
+
Generate a compliant STD document by mapping test cases and procedures from project artifacts to the MIL-STD-498 STD template structure. The STD defines the test preparations, test cases, and test procedures for software qualification testing.
|
|
8
|
+
|
|
9
|
+
## Step 1 — Discover Project Artifacts
|
|
10
|
+
|
|
11
|
+
Search the project for the following artifacts. Communicate in {communication_language}. Inform {user_name} which artifacts were found and which are missing.
|
|
12
|
+
|
|
13
|
+
| Priority | Artifact | Search Pattern |
|
|
14
|
+
|----------|----------|----------------|
|
|
15
|
+
| Required | Epics & Stories | `**/epics*.md`, `**/epic-*.md`, `**/stories/*.md` |
|
|
16
|
+
| Required | Architecture | `**/architecture.md`, `**/architecture-*.md` |
|
|
17
|
+
| Recommended | SRS | `**/SRS.md` |
|
|
18
|
+
| Recommended | PRD | `**/prd.md`, `**/prd-*.md` |
|
|
19
|
+
| Optional | Existing test files | `**/test/**`, `**/tests/**`, `**/__tests__/**`, `**/*.test.*`, `**/*.spec.*` |
|
|
20
|
+
|
|
21
|
+
If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
|
|
22
|
+
|
|
23
|
+
## Step 2 — Load Template
|
|
24
|
+
|
|
25
|
+
Read the STD template from:
|
|
26
|
+
`{template}`
|
|
27
|
+
|
|
28
|
+
This defines the required DID sections and content expectations for each paragraph.
|
|
29
|
+
|
|
30
|
+
## Step 3 — Generate Document
|
|
31
|
+
|
|
32
|
+
Write the document in {document_output_language}, populating each template section:
|
|
33
|
+
|
|
34
|
+
### Section 1: Scope
|
|
35
|
+
- **1.1 Identification**: Extract system and software identifiers from PRD/Architecture
|
|
36
|
+
- **1.2 System overview**: Summarize the system and the CSCI(s) being tested
|
|
37
|
+
- **1.3 Document overview**: Describe this STD document's purpose and contents
|
|
38
|
+
|
|
39
|
+
### Section 2: Referenced documents
|
|
40
|
+
- List all project artifacts, test standards, and other references used
|
|
41
|
+
|
|
42
|
+
### Section 3: Test preparations
|
|
43
|
+
|
|
44
|
+
For each test identified, provide (organized as 3.x subsections):
|
|
45
|
+
|
|
46
|
+
- **3.x.1 Hardware preparation**: Test environment hardware requirements from Architecture — servers, devices, network configuration. Include setup procedures
|
|
47
|
+
- **3.x.2 Software preparation**: Test environment software requirements — OS, databases, dependencies, test frameworks. Include installation and configuration steps
|
|
48
|
+
- **3.x.3 Other pre-test preparations**: Test data setup, user accounts, external service mocks, environment variables. Include any prerequisites that must be satisfied
|
|
49
|
+
|
|
50
|
+
### Section 4: Test descriptions
|
|
51
|
+
|
|
52
|
+
For each test case (organized as 4.x subsections), derive from Story acceptance criteria and SRS requirements:
|
|
53
|
+
|
|
54
|
+
- **4.x.1 Test identifier**: Unique identifier (STD-TEST-001 format)
|
|
55
|
+
- **4.x.2 Test objective**: What requirement(s) this test verifies. Reference SRS requirement IDs if available
|
|
56
|
+
- **4.x.3 Input data**: Specific test inputs, preconditions, and initial state
|
|
57
|
+
- **4.x.4 Expected results**: Precise expected outputs, state changes, and behaviors
|
|
58
|
+
- **4.x.5 Criteria for evaluating results**: Pass/fail criteria
|
|
59
|
+
- **4.x.6 Test procedure**: Step-by-step procedure to execute the test
|
|
60
|
+
- **4.x.7 Assumptions and constraints**: Any assumptions about the test environment
|
|
61
|
+
|
|
62
|
+
Group test cases by capability/feature (mapping to Epics) for clarity.
|
|
63
|
+
|
|
64
|
+
### Section 5: Requirements traceability
|
|
65
|
+
- Map each test case to the SRS requirement(s) it verifies
|
|
66
|
+
- Ensure every SRS requirement has at least one associated test case
|
|
67
|
+
- Identify any requirements that cannot be tested and explain why
|
|
68
|
+
|
|
69
|
+
### Section 6: Notes
|
|
70
|
+
- Glossary of test terminology and abbreviations
|
|
71
|
+
- References to test automation frameworks or tools used
|
|
72
|
+
|
|
73
|
+
## Step 4 — Validate
|
|
74
|
+
|
|
75
|
+
Before presenting to the user, verify:
|
|
76
|
+
- All template sections are populated or marked "Not applicable" with justification
|
|
77
|
+
- Every test case has a unique identifier and clear pass/fail criteria
|
|
78
|
+
- Requirements traceability is complete (all requirements covered)
|
|
79
|
+
- Test procedures are detailed enough to be repeatable
|
|
80
|
+
- Document is written in {document_output_language}
|
|
81
|
+
|
|
82
|
+
## Step 5 — Review
|
|
83
|
+
|
|
84
|
+
Present the complete document to {user_name} for review.
|
|
85
|
+
Highlight any requirements without test coverage.
|
|
86
|
+
Offer to refine any section based on feedback.
|
|
87
|
+
|
|
88
|
+
## Step 6 — Save
|
|
89
|
+
|
|
90
|
+
Write the final document to:
|
|
91
|
+
`{output_folder}/planning-artifacts/STD.md`
|
|
92
|
+
|
|
93
|
+
Confirm the file was saved and display a summary of:
|
|
94
|
+
- Total number of test cases defined
|
|
95
|
+
- Requirements coverage percentage
|
|
96
|
+
- Any untestable requirements identified
|
|
97
|
+
- Any sections marked "Not applicable"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
name: "bmad-mil-generate-std"
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
description: "Generate a MIL-STD-498 Software Test Description (STD). Use when the user says 'generate STD' or 'generate software test description'"
|
|
4
|
+
|
|
5
|
+
config_source: "{project-root}/_bmad/bmm/config.yaml"
|
|
6
|
+
user_name: "{config_source}:user_name"
|
|
7
|
+
communication_language: "{config_source}:communication_language"
|
|
8
|
+
document_output_language: "{config_source}:document_output_language"
|
|
9
|
+
output_folder: "{config_source}:output_folder"
|
|
10
|
+
date: system-generated
|
|
11
|
+
|
|
12
|
+
installed_path: "{project-root}/_bmad/bmm/workflows/mil498/std"
|
|
13
|
+
instructions: "{installed_path}/instructions.md"
|
|
14
|
+
|
|
15
|
+
template: "{project-root}/_bmad/bmm/templates/mil498/STD.md"
|
package/lib/bmad.js
CHANGED
|
@@ -149,65 +149,71 @@ async function registerMilWorkflows(projectRoot) {
|
|
|
149
149
|
const milEntries = [
|
|
150
150
|
{
|
|
151
151
|
name: 'Generate SRS', code: 'GS',
|
|
152
|
-
file: '_bmad/bmm/workflows/mil498/
|
|
152
|
+
file: '_bmad/bmm/workflows/mil498/srs/workflow.yaml',
|
|
153
153
|
command: 'bmad-mil-generate-srs',
|
|
154
154
|
description: 'Generate a MIL-STD-498 Software Requirements Specification from BMAD project artifacts'
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
name: 'Generate SDD', code: 'GD',
|
|
158
|
-
file: '_bmad/bmm/workflows/mil498/
|
|
158
|
+
file: '_bmad/bmm/workflows/mil498/sdd/workflow.yaml',
|
|
159
159
|
command: 'bmad-mil-generate-sdd',
|
|
160
160
|
description: 'Generate a MIL-STD-498 Software Design Description from architecture and design docs'
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
name: 'Generate SDP', code: 'GP',
|
|
164
|
-
file: '_bmad/bmm/workflows/mil498/
|
|
164
|
+
file: '_bmad/bmm/workflows/mil498/sdp/workflow.yaml',
|
|
165
165
|
command: 'bmad-mil-generate-sdp',
|
|
166
166
|
description: 'Generate a MIL-STD-498 Software Development Plan from project planning artifacts'
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
name: 'Generate OCD', code: 'GO',
|
|
170
|
-
file: '_bmad/bmm/workflows/mil498/
|
|
170
|
+
file: '_bmad/bmm/workflows/mil498/ocd/workflow.yaml',
|
|
171
171
|
command: 'bmad-mil-generate-ocd',
|
|
172
172
|
description: 'Generate a MIL-STD-498 Operational Concept Description from PRD and architecture'
|
|
173
173
|
},
|
|
174
174
|
{
|
|
175
175
|
name: 'Generate SSS', code: 'SS',
|
|
176
|
-
file: '_bmad/bmm/workflows/mil498/
|
|
176
|
+
file: '_bmad/bmm/workflows/mil498/sss/workflow.yaml',
|
|
177
177
|
command: 'bmad-mil-generate-sss',
|
|
178
178
|
description: 'Generate a MIL-STD-498 System/Subsystem Specification from project requirements'
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
name: 'Generate STD', code: 'GT',
|
|
182
|
-
file: '_bmad/bmm/workflows/mil498/
|
|
182
|
+
file: '_bmad/bmm/workflows/mil498/std/workflow.yaml',
|
|
183
183
|
command: 'bmad-mil-generate-std',
|
|
184
184
|
description: 'Generate a MIL-STD-498 Software Test Description from epics stories and architecture'
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
name: 'Generate SSDD', code: 'SD',
|
|
188
|
+
file: '_bmad/bmm/workflows/mil498/ssdd/workflow.yaml',
|
|
189
|
+
command: 'bmad-mil-generate-ssdd',
|
|
190
|
+
description: 'Generate a MIL-STD-498 System/Subsystem Design Description from architecture and PRD'
|
|
185
191
|
}
|
|
186
192
|
];
|
|
187
193
|
|
|
188
|
-
// Append
|
|
194
|
+
// Append or update entries in module-help.csv
|
|
189
195
|
const moduleHelpPath = path.join(projectRoot, BMAD_DIR, 'bmm', 'module-help.csv');
|
|
190
196
|
if (fs.existsSync(moduleHelpPath)) {
|
|
191
197
|
let content = await fs.readFile(moduleHelpPath, 'utf-8');
|
|
192
198
|
for (const entry of milEntries) {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
199
|
+
const row = `bmm,anytime,${entry.name},${entry.code},,${entry.file},${entry.command},false,mil498,Create Mode,${entry.description},planning_artifacts,document,`;
|
|
200
|
+
// Remove any existing line for this command, then append the current one
|
|
201
|
+
const lines = content.split('\n').filter(line => !line.includes(entry.command));
|
|
202
|
+
content = lines.join('\n').trimEnd() + '\n' + row + '\n';
|
|
197
203
|
}
|
|
198
204
|
await fs.writeFile(moduleHelpPath, content, 'utf-8');
|
|
199
205
|
console.log(chalk.cyan(` + Registered MIL-STD-498 workflows in module-help.csv`));
|
|
200
206
|
}
|
|
201
207
|
|
|
202
|
-
// Append
|
|
208
|
+
// Append or update entries in bmad-help.csv
|
|
203
209
|
const bmadHelpPath = path.join(projectRoot, BMAD_DIR, '_config', 'bmad-help.csv');
|
|
204
210
|
if (fs.existsSync(bmadHelpPath)) {
|
|
205
211
|
let content = await fs.readFile(bmadHelpPath, 'utf-8');
|
|
206
212
|
for (const entry of milEntries) {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
213
|
+
const row = `bmm,anytime,${entry.name},${entry.code},,${entry.file},${entry.command},false,mil498,bmad:MIL-STD-498 compliance:agent:mil498,Joseph,📜 MIL-STD-498 Expert,Create Mode,${entry.description},planning_artifacts,document`;
|
|
214
|
+
// Remove any existing line for this command, then append the current one
|
|
215
|
+
const lines = content.split('\n').filter(line => !line.includes(entry.command));
|
|
216
|
+
content = lines.join('\n').trimEnd() + '\n' + row + '\n';
|
|
211
217
|
}
|
|
212
218
|
await fs.writeFile(bmadHelpPath, content, 'utf-8');
|
|
213
219
|
console.log(chalk.cyan(` + Registered MIL-STD-498 workflows in bmad-help.csv`));
|