ma-agents 2.17.0 → 2.18.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/agents.js CHANGED
@@ -152,7 +152,7 @@ const agents = [
152
152
  version: '1.0.0',
153
153
  category: 'bmad',
154
154
  description: 'Specialized SRE Agent for BMAD-METHOD',
155
- getProjectPath: () => path.join(process.cwd(), '_bmad', 'skills'),
155
+ getProjectPath: () => path.join(process.cwd(), '_bmad', 'skills', 'sre'),
156
156
  getGlobalPath: () => {
157
157
  const platform = os.platform();
158
158
  if (platform === 'win32') {
@@ -194,7 +194,7 @@ const agents = [
194
194
  version: '1.0.0',
195
195
  category: 'bmad',
196
196
  description: 'Specialized DevOps Agent for BMAD-METHOD',
197
- getProjectPath: () => path.join(process.cwd(), '_bmad', 'skills'),
197
+ getProjectPath: () => path.join(process.cwd(), '_bmad', 'skills', 'devops'),
198
198
  getGlobalPath: () => {
199
199
  const platform = os.platform();
200
200
  if (platform === 'win32') {
@@ -215,7 +215,7 @@ const agents = [
215
215
  version: '1.0.0',
216
216
  category: 'bmad',
217
217
  description: 'Specialized Cyber Security Analyst (Yael) for BMAD-METHOD',
218
- getProjectPath: () => path.join(process.cwd(), '_bmad', 'skills'),
218
+ getProjectPath: () => path.join(process.cwd(), '_bmad', 'skills', 'cyber'),
219
219
  getGlobalPath: () => {
220
220
  const platform = os.platform();
221
221
  if (platform === 'win32') {
@@ -233,10 +233,10 @@ const agents = [
233
233
  {
234
234
  id: 'bmm-mil498',
235
235
  name: 'MIL-STD-498 Expert',
236
- version: '1.0.0',
236
+ version: '2.0.0',
237
237
  category: 'bmad',
238
238
  description: 'MIL-STD-498 Documentation Expert',
239
- getProjectPath: () => path.join(process.cwd(), '_bmad', 'skills'),
239
+ getProjectPath: () => path.join(process.cwd(), '_bmad', 'skills', 'mil498'),
240
240
  getGlobalPath: () => {
241
241
  const platform = os.platform();
242
242
  if (platform === 'win32') {
@@ -20,6 +20,15 @@ Search the project for the following artifacts. Communicate in {communication_la
20
20
 
21
21
  If the **PRD** is missing, warn the user and ask whether to proceed with available data or stop.
22
22
 
23
+ ### Document Dependencies
24
+
25
+ The OCD is the **first document** in the MIL-STD-498 generation chain. It has no MIL-STD-498 predecessor documents — it draws from project artifacts (PRD, Product Brief, UX Designs) only.
26
+
27
+ **Note**: The OCD feeds into the SSS and other downstream documents. Ensure the operational scenarios and user descriptions are thorough, as they will be referenced by:
28
+ - **SSS** — for deriving system requirements from operational needs
29
+ - **SSDD** — for understanding operational context behind design decisions
30
+ - **SDP** — for understanding the operational environment
31
+
23
32
  ## Step 2 — Load Template
24
33
 
25
34
  Read the OCD template from:
@@ -37,48 +46,81 @@ Write the document in {document_output_language}, populating each template secti
37
46
  - **1.3 Document overview**: Describe this OCD document's purpose and contents
38
47
 
39
48
  ### Section 2: Referenced documents
40
- - List all project artifacts used as input sources
49
+ - List all project artifacts used as input sources, with number, title, revision, and date
41
50
 
42
51
  ### 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
+ - **3.1 Background, objectives, and scope**: Describe the problem domain, mission/objectives, and scope from the PRD
53
+ - **3.2 Operational policies and constraints**: Current business rules, operational policies, and constraints
54
+ - **3.3 Description of current system or situation**: How things work today. Describe differences associated with different states or modes of operation. Include all of the following (items a through h per the DID):
55
+ - **a.** The operational environment and its characteristics
56
+ - **b.** Major system components and the interconnections among them
57
+ - **c.** Interfaces to external systems or procedures
58
+ - **d.** Capabilities/functions of the current system
59
+ - **e.** Charts and descriptions depicting inputs, outputs, data flow, and manual/automated processes sufficient to understand the current system from the user's point of view
60
+ - **f.** Performance characteristics: speed, throughput, volume, frequency
61
+ - **g.** Quality attributes: reliability, maintainability, availability, flexibility, portability, usability, efficiency
62
+ - **h.** Provisions for safety, security, privacy, and continuity of operations in emergencies
63
+ - **3.4 Users or involved personnel**: Identify all user types and stakeholders. Include organizational structures, training/skills, responsibilities, activities, and interactions
64
+ - **3.5 Support concept**: Current support and maintenance approach — support agencies, facilities, equipment, support software, repair/replacement criteria, maintenance levels and cycles
52
65
 
53
66
  ### 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
67
+ - **4.1 Justification for change**:
68
+ - **a.** New or modified aspects of user needs, threats, missions, objectives, environments, interfaces, personnel, or other factors requiring a new/modified system
69
+ - **b.** Deficiencies or limitations in the current system that make it unable to respond to these factors
70
+ - **4.2 Description of needed changes**: New or modified capabilities, functions, processes, interfaces, or other changes needed
71
+ - **4.3 Priorities among the changes**: Identify each change as essential, desirable, or optional. Prioritize the desirable and optional changes
72
+ - **4.4 Changes considered but not included**: Identify changes that were considered but excluded, with rationale for not including them
73
+ - **4.5 Assumptions and constraints**: Any assumptions and constraints applicable to the changes identified
74
+
75
+ ### Section 5: Concept for the new or modified system
76
+ - **5.1 Background, objectives, and scope**: Vision, mission/objectives, and scope for the new system from Product Brief/PRD
77
+ - **5.2 Operational policies and constraints**: New or changed operational policies and constraints
78
+ - **5.3 Description of the new or modified system**: How the new system will work. Describe differences associated with different states or modes. Include all of the following (items a through h, mirroring Section 3.3):
79
+ - **a.** The operational environment and its characteristics
80
+ - **b.** Major system components and the interconnections among them
81
+ - **c.** Interfaces to external systems or procedures
82
+ - **d.** Capabilities/functions of the new or modified system
83
+ - **e.** Charts and descriptions depicting inputs, outputs, data flow, and manual/automated processes from the user's point of view
84
+ - **f.** Performance characteristics: speed, throughput, volume, frequency
85
+ - **g.** Quality attributes: reliability, maintainability, availability, flexibility, portability, usability, efficiency
86
+ - **h.** Provisions for safety, security, privacy, and continuity of operations in emergencies
87
+ - **5.4 Users/affected personnel**: How user roles change with the new system — organizational structures, training/skills, responsibilities, and interactions
88
+ - **5.5 Support concept**: Planned support approach — support agencies, facilities, equipment, support software, repair/replacement criteria, maintenance levels and cycles
68
89
 
69
90
  ### 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
91
+ - Document one or more operational scenarios that illustrate the role of the new/modified system
92
+ - Each scenario should include: the system's interaction with users, interfaces with other systems, and all states/modes identified
93
+ - Include: events, actions, stimuli, information, interactions
94
+ - Cover both normal operation and exception/error scenarios
95
+ - Reference may be made to other media (e.g., videos, mockups) to provide part of this information
96
+
97
+ ### Section 7: Summary of impacts
98
+ - **7.1 Operational impacts**: Anticipated operational impacts on user, acquirer, developer, and support agencies. Include: changes in interfaces with operating centers, procedure changes, use of new data sources, changes in data input quantity/type/timing, changes in data retention, new modes of operation
99
+ - **7.2 Organizational impacts**: Anticipated organizational impacts. Include: modification of responsibilities, addition/elimination of positions, training/retraining needs, changes in number/skill levels/locations of personnel
100
+ - **7.3 Impacts during development**: Anticipated impacts during the development effort. Include: meetings/discussions, database development/modification, training, parallel operation of new and existing systems, testing impacts, monitoring activities
101
+
102
+ ### Section 8: Analysis of the proposed system
103
+ - **8.1 Summary of advantages**: Qualitative and quantitative summary of advantages — new capabilities, enhanced capabilities, improved performance, and their relationship to deficiencies identified in 4.1
104
+ - **8.2 Summary of disadvantages/limitations**: Qualitative and quantitative summary of disadvantages — degraded/missing capabilities, less-than-desired performance, excessive resource use, undesirable operational impacts, conflicts with user assumptions
105
+ - **8.3 Alternatives and trade-offs considered**: Major alternatives considered, trade-offs among them, and rationale for the decisions reached
106
+
107
+ ### Section 9: Notes
108
+ - Alphabetical listing of all acronyms, abbreviations, and their meanings
109
+ - Glossary of terms and definitions
110
+ - Background information to aid understanding
111
+
112
+ ### Appendix A
113
+ - Include any supplementary material (charts, detailed data, classified information) that supports the main body
114
+ - Reference each appendix from the main body where the data would normally appear
76
115
 
77
116
  ## Step 4 — Validate
78
117
 
79
118
  Before presenting to the user, verify:
80
- - All template sections are populated or marked "Not applicable" with justification
119
+ - All template sections (1-9 and Appendix A) are populated or marked "Not applicable" with justification
81
120
  - Document is written from the user/stakeholder perspective, not the developer perspective
121
+ - Sections 3.3 and 5.3 cover all eight items (a through h)
122
+ - Section 4 includes all five subsections (4.1-4.5)
123
+ - Section 7 (impacts) and Section 8 (analysis) are present and substantive
82
124
  - Operational scenarios are complete and realistic
83
125
  - Document is written in {document_output_language}
84
126
 
@@ -86,6 +128,12 @@ Before presenting to the user, verify:
86
128
 
87
129
  Present the complete document to {user_name} for review.
88
130
  Highlight any sections where information was inferred or assumptions were made.
131
+ Specifically ask about:
132
+ - Are the current system descriptions (Section 3) accurate?
133
+ - Are the operational scenarios (Section 6) complete?
134
+ - Are there additional impacts (Section 7) not captured?
135
+ - Does the analysis (Section 8) accurately represent advantages and disadvantages?
136
+
89
137
  Offer to refine any section based on feedback.
90
138
 
91
139
  ## Step 6 — Save
@@ -96,4 +144,6 @@ Write the final document to:
96
144
  Confirm the file was saved and display a summary of:
97
145
  - Number of user roles identified
98
146
  - Number of operational scenarios documented
147
+ - Number of changes justified (Section 4)
148
+ - Number of impacts identified (Section 7)
99
149
  - Any sections marked "Not applicable"
@@ -4,9 +4,9 @@
4
4
 
5
5
  ## Objective
6
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).
7
+ Generate a compliant SDD document by mapping the CSCI's software design to the MIL-STD-498 Software Design Description template structure. The SDD describes the design of a single CSCI (Computer Software Configuration Item) — its internal architecture, components (CSCs), interfaces, and detailed unit design.
8
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.
9
+ **Critical principle**: The SDD is a **per-CSCI document**. It designs the internal structure of ONE CSCI as defined in the SSDD. The primary inputs are the SRS (what this CSCI must do), the Architecture document (how it's built), and the Epics/Stories (detailed behavioral specifications and acceptance criteria).
10
10
 
11
11
  ## Step 1 — Discover Project Artifacts
12
12
 
@@ -15,82 +15,161 @@ Search the project for the following artifacts. Communicate in {communication_la
15
15
  | Priority | Artifact | Search Pattern |
16
16
  |----------|----------|----------------|
17
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` |
18
+ | Required | Epics | `**/epics*.md`, `**/epic-*.md` |
19
+ | Required | User Stories | `**/stories/*.md`, `**/story-*.md`, `**/user-stories*.md` |
20
+ | Recommended | PRD | `**/prd.md`, `**/prd-*.md` |
21
21
  | Optional | UX Designs | `**/ux-design*.md`, `**/ux-*.md` |
22
22
  | Optional | Product Brief | `**/product-brief*.md` |
23
23
 
24
24
  If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
25
25
 
26
+ ### Document Dependencies
27
+
28
+ The SDD is a **per-CSCI document** that designs the internal structure of a CSCI against its requirements. It MUST be generated after the SRS (which defines what the CSCI must do) and the SSDD (which defines the CSCI boundaries).
29
+
30
+ | Predecessor | Relationship | Search Pattern |
31
+ |-------------|-------------|----------------|
32
+ | SRS (Software Requirements Specification) | **Required** — provides the CSCI requirements this SDD designs against | `**/SRS.md`, `**/SRS-*.md` |
33
+ | SSDD (System/Subsystem Design Description) | **Required** — defines CSCI boundaries, system-wide design decisions, and allocated requirements | `**/SSDD.md` |
34
+ | SSS (System/Subsystem Specification) | Optional — provides system-level requirements context | `**/SSS.md` |
35
+
36
+ If the SRS has NOT been generated yet, **alert {user_name}**: "The SRS has not been generated yet. The SDD designs the internal structure of a CSCI against the requirements defined in its SRS. Would you like to proceed without the SRS, or generate the SRS first?"
37
+
38
+ If the SSDD has NOT been generated yet, **alert {user_name}**: "The SSDD has not been generated yet. The SDD needs the SSDD to understand CSCI boundaries and system-wide design decisions. Would you like to proceed without the SSDD, or generate the SSDD first?"
39
+
40
+ If predecessor documents exist, they MUST be loaded and used as primary inputs. The SDD should reference them in Section 2 and trace design decisions to SRS requirements.
41
+
42
+ ### CSCI Scoping
43
+
44
+ Ask {user_name}: **"Which CSCI is this SDD for?"**
45
+
46
+ If the SSDD exists, present the list of CSCIs defined in it and ask the user to select one. The SDD will describe the design of ONLY the selected CSCI — its internal CSCs (Computer Software Components) and software units.
47
+
48
+ If generating SDD documents for multiple CSCIs, generate them one at a time, each as a separate document.
49
+
50
+ ### Source Mapping
51
+
52
+ For the selected CSCI, the agent must:
53
+ 1. From the **SSDD**: Extract the CSCI's allocated system requirements, its CSCs, and the system-wide design decisions that constrain it
54
+ 2. From the **SRS**: Extract all CSCI requirements (capabilities, interfaces, quality factors, constraints) — these are what the SDD must design against
55
+ 3. From the **Architecture**: Extract the internal structure, technology stack, patterns, and integration approach for this CSCI's components
56
+ 4. From **Epics/Stories**: Extract detailed behavioral specifications, acceptance criteria, algorithms, business rules, and processing logic that inform the detailed design (Section 5)
57
+
26
58
  ## Step 2 — Load Template
27
59
 
28
- Read the design document template from:
60
+ Read the SDD template from:
29
61
  `{template}`
30
62
 
31
- This defines the required DID sections. Adapt the system-level language to CSCI-level software design.
63
+ This defines the required DID sections and content expectations for each paragraph.
32
64
 
33
65
  ## Step 3 — Generate Document
34
66
 
35
- Write the document in {document_output_language}, populating each template section:
67
+ Write the document in {document_output_language}, populating each template section.
36
68
 
37
69
  ### 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
70
+ - **1.1 Identification**: Identify the CSCI by name, version, and project-unique identifier (as assigned in the SSDD)
71
+ - **1.2 System overview**: Summarize the system and this CSCI's role within it, referencing the SSDD
40
72
  - **1.3 Document overview**: Describe this SDD document's purpose and contents
41
73
 
42
74
  ### Section 2: Referenced documents
43
- - List all project artifacts and external references used
75
+ - List all predecessor MIL-STD-498 documents (SSDD, SRS, SSS) and project artifacts used. Include number, title, revision, and date
44
76
 
45
77
  ### Section 3: CSCI-wide design decisions
46
78
 
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
79
+ **CRITICAL BEHAVIORAL GUIDANCE**: Like the SSDD, this section describes the CSCI's behavioral design — how it will behave from a user's point of view, ignoring internal implementation. Follow these rules:
80
+
81
+ 1. **Requirements-driven**: Every design decision MUST cite the specific SRS requirement(s) it satisfies
82
+ 2. **Behavioral, not implementation**: Describe patterns and approaches first, then technology choices parenthetically if essential
83
+ 3. **State-dependent decisions**: If a design decision depends on CSCI states or modes, indicate this dependency
84
+
85
+ Document the following CSCI-wide design decisions (items a through e per the DID):
54
86
 
55
- Each decision should reference the requirement(s) it satisfies.
87
+ - **a. CSCI behavioral design**: How the CSCI behaves in response to inputs and conditions — actions, response times, algorithms/rules, error handling. Describe from the user's perspective. Reference SRS capability requirements (3.2.x)
88
+ - **b. Database/data file design**: How databases and data files within this CSCI appear to users and external systems. Reference SRS internal data requirements (3.5). If Database Design Descriptions (DBDDs) exist, they may be referenced
89
+ - **c. Safety, security, privacy**: Selected approaches to meeting safety, security, and privacy requirements for this CSCI. Place in **separate subparagraphs** for critical requirements. Reference SRS sections 3.7, 3.8
90
+ - **d. Other CSCI-wide design decisions**: Flexibility, availability, maintainability approaches. Rationale for architectural patterns selected. Reference SRS quality factors (3.11) and design constraints (3.12)
91
+ - **e. Design and implementation standards**: Standards to be followed for design, coding, testing (reference SDP if available)
56
92
 
57
93
  ### Section 4: CSCI architectural design
58
94
 
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
95
+ - **4.1 CSCI components** (items a through f all are required):
96
+
97
+ **a.** Identify all CSCs (Computer Software Components) within this CSCI — modules, packages, services, libraries. Each CSC shall have a project-unique identifier. Also identify software units within CSCs where applicable.
98
+
99
+ **b.** Show static ("consists of") relationships using component/class/package diagrams. Multiple relationship views may be presented.
100
+
101
+ **c.** State each CSC's purpose and the SRS requirements allocated to it. (Alternatively, allocation may be provided in Section 6.a.)
102
+
103
+ **d.** Identify each CSC's development status: new development, existing reuse as-is, existing design reuse, reengineering, etc. For existing components, provide identifying information.
104
+
105
+ **e.** Describe **resource utilization** — allocation of computer hardware resources (processor capacity, memory, I/O, storage) to each CSC. State conditions under which utilization will be measured. (This differs from SSDD 4.1.e which describes hardware; here it's about utilization allocation.)
106
+
107
+ **f.** Describe the CSCI's **program library** — contents including computer files, data files, program files, and their relationships.
108
+
109
+ - **4.2 Concept of execution**:
110
+ - Describe dynamic relationships between CSCs — how they interact during operation
111
+ - Include: execution flow, data flow, state transitions, timing/sequencing, priorities, interrupt handling, concurrent execution, dynamic allocation/deallocation, exception handling
112
+ - Use sequence diagrams, state transition diagrams, or timing diagrams where helpful
113
+
114
+ - **4.3 Interface design**:
115
+ - **4.3.1 Interface identification and diagrams**: List all interfaces (between CSCs and with external entities) with project-unique identifiers. Identify fixed vs. developing interfaces. Provide interface diagrams.
116
+ - **4.3.x (per interface)**: For each interface, document as applicable:
117
+ - **a.** Priority assigned to the interface
118
+ - **b.** Type of interface (real-time data transfer, storage-and-retrieval, etc.)
119
+ - **c.** Data elements: names/identifiers, data types, sizes/formats, units, ranges, accuracy/precision, timing/frequency constraints, security constraints, sources and recipients
120
+ - **d.** Data element assemblies: records, messages, data structures — names, structure, medium, relationships, constraints
121
+ - **e.** Communication methods: links/media, message formatting, flow control, data transfer rates, routing
122
+ - **f.** Protocols: priority/layer, packeting, error control/recovery, synchronization
123
+ - **g.** Physical compatibility considerations
65
124
 
66
125
  ### Section 5: CSCI detailed design
67
126
 
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
127
+ **This is the most important section of the SDD.** For each software unit identified in Section 4.1, provide a detailed design description. Organize as subsections (5.x per CSC, or 5.x per software unit):
128
+
129
+ For each software unit (5.x), document the following items (a through f per the DID):
130
+
131
+ - **a. Unit design decisions**: Design decisions specific to this unit, including algorithms, processing logic, data transformations, and business rules. **Extract from Epics and User Stories** — map Story acceptance criteria to specific processing logic. Reference the SRS requirements this unit satisfies.
132
+ - **b. Design constraints**: Any constraints on the unit's design imposed by the CSCI-wide decisions, standards, or external interfaces
133
+ - **c. Programming language**: If different from the CSCI-wide language specified in Section 3.e
134
+ - **d. Control flow / logic description**: Describe the unit's control logic — how it processes inputs, makes decisions, handles conditions. Use flowcharts, pseudocode, or decision tables where helpful. Map from Story acceptance criteria and business rules.
135
+ - **e. Data elements and structures**: Internal data elements, record layouts, data structures, file formats used by the unit
136
+ - **f. Restrictions and limitations**: Any restrictions on the unit's use, dependencies, known limitations, or assumptions
73
137
 
74
138
  ### 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
139
+ - **6.a**: Map each CSC/software unit to the SRS requirements it addresses
140
+ - **6.b**: Map each SRS requirement to the CSCs/units that implement it
141
+ - Ensure every SRS requirement allocated to this CSCI is accounted for in both directions
77
142
 
78
143
  ### Section 7: Notes
79
- - Glossary of design terms, acronyms, and abbreviations
144
+ - Alphabetical listing of all acronyms, abbreviations, and their meanings
145
+ - Glossary of design terms and definitions
146
+
147
+ ### Appendix A
148
+ - Include any supplementary material (detailed algorithms, data dictionaries, message format specifications) that supports the main body
80
149
 
81
150
  ## Step 4 — Validate
82
151
 
83
152
  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
153
+ - All template sections (1-7 and Appendix A) are populated or marked "Not applicable" with justification
154
+ - This SDD covers exactly ONE CSCI as defined in the SSDD
155
+ - Every CSC has a project-unique identifier
156
+ - CSCI-wide design decisions (Section 3) are framed as behavioral responses to SRS requirements
157
+ - Section 5 (detailed design) has entries for every software unit, with algorithms and logic extracted from Epics/Stories
158
+ - Resource utilization (4.1.e) and program library (4.1.f) are documented
159
+ - Interface descriptions (4.3.x) cover all seven aspects (a through g) where applicable
160
+ - Requirements traceability (Section 6) covers all SRS requirements in both directions
88
161
  - Document is written in {document_output_language}
89
162
 
90
163
  ## Step 5 — Review
91
164
 
92
165
  Present the complete document to {user_name} for review.
93
- Highlight any design decisions where assumptions were made.
166
+ Highlight any sections where information was inferred or assumptions were made.
167
+ Specifically ask about:
168
+ - Is the CSC decomposition correct for this CSCI?
169
+ - Are the algorithms and processing logic in Section 5 accurately extracted from the Stories?
170
+ - Are there design decisions not captured in the Architecture or Epics?
171
+ - Is the resource utilization allocation realistic?
172
+
94
173
  Offer to refine any section based on feedback.
95
174
 
96
175
  ## Step 6 — Save
@@ -98,7 +177,13 @@ Offer to refine any section based on feedback.
98
177
  Write the final document to:
99
178
  `{output_folder}/planning-artifacts/SDD.md`
100
179
 
180
+ (If this is not the first CSCI's SDD, save as `SDD-{CSCI-identifier}.md`)
181
+
101
182
  Confirm the file was saved and display a summary of:
102
- - Number of components identified
183
+ - CSCI identifier and name
184
+ - Number of CSCs identified
185
+ - Number of software units with detailed design
103
186
  - Number of interfaces documented
187
+ - Number of SRS requirements traced
188
+ - Requirements coverage percentage
104
189
  - Any sections marked "Not applicable"