ma-agents 2.17.1 → 2.19.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/README.md CHANGED
@@ -61,7 +61,7 @@ skills/code-review/
61
61
  | Joseph (MIL-STD-498) | `_bmad/skills/` | `generic` | `_bmad/bmm/agents/mil498.md` |
62
62
  | Antigravity | `_bmad/skills/` | `generic` | `_bmad/bmm/agents/antigravity.md` |
63
63
 
64
- ## Available Skills (25)
64
+ ## Available Skills (27)
65
65
 
66
66
  | Skill ID | Domain | Description |
67
67
  | :--- | :--- | :--- |
@@ -72,6 +72,8 @@ skills/code-review/
72
72
  | `test-accompanied-development` | Quality | Enforces "test-alongside" policy for every public method |
73
73
  | `code-documentation` | Quality | Enforces PEP 257, Doxygen, JSDoc, and XML standards |
74
74
  | `skill-creator` | Meta | Guide for creating new skills to extend agent capabilities |
75
+ | `document-revision-history` | Documentation | Manages revision history tables at the beginning of generated documents |
76
+ | `ai-audit-trail` | Audit | Tracks AI agent session activity, time spent, and token usage |
75
77
  | **Security** | | |
76
78
  | `python-security-skill` | Python | OWASP Top 10 2025 aligned guardrails for Python |
77
79
  | `js-ts-security-skill` | JS/TS | Security verification for JS/TS codebases (OWASP aligned) |
package/lib/agents.js CHANGED
@@ -233,7 +233,7 @@ 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
239
  getProjectPath: () => path.join(process.cwd(), '_bmad', 'skills', 'mil498'),
@@ -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:
@@ -31,54 +40,97 @@ This defines the required DID sections and content expectations for each paragra
31
40
 
32
41
  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
42
 
43
+ ### Revision History
44
+
45
+ Before writing any content, add a **Revision History table** immediately after the document title. If this is a new document, create the table with version `1.0`. If updating an existing document, read the existing revision history and add a new row with an incremented version number and a summary of all changes made in this session. See the `document-revision-history` skill for full formatting rules.
46
+
47
+ ```markdown
48
+ | Version | Date | Author | Changes |
49
+ |---------|------|--------|---------|
50
+ | 1.0 | {date} | Agent ({model}) | Initial document generation |
51
+ ```
52
+
34
53
  ### Section 1: Scope
35
54
  - **1.1 Identification**: Extract system name, version, identifiers from PRD
36
55
  - **1.2 System overview**: Summarize the system purpose from the user's perspective
37
56
  - **1.3 Document overview**: Describe this OCD document's purpose and contents
38
57
 
39
58
  ### Section 2: Referenced documents
40
- - List all project artifacts used as input sources
59
+ - List all project artifacts used as input sources, with number, title, revision, and date
41
60
 
42
61
  ### 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)
62
+ - **3.1 Background, objectives, and scope**: Describe the problem domain, mission/objectives, and scope from the PRD
63
+ - **3.2 Operational policies and constraints**: Current business rules, operational policies, and constraints
64
+ - **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):
65
+ - **a.** The operational environment and its characteristics
66
+ - **b.** Major system components and the interconnections among them
67
+ - **c.** Interfaces to external systems or procedures
68
+ - **d.** Capabilities/functions of the current system
69
+ - **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
70
+ - **f.** Performance characteristics: speed, throughput, volume, frequency
71
+ - **g.** Quality attributes: reliability, maintainability, availability, flexibility, portability, usability, efficiency
72
+ - **h.** Provisions for safety, security, privacy, and continuity of operations in emergencies
73
+ - **3.4 Users or involved personnel**: Identify all user types and stakeholders. Include organizational structures, training/skills, responsibilities, activities, and interactions
74
+ - **3.5 Support concept**: Current support and maintenance approach — support agencies, facilities, equipment, support software, repair/replacement criteria, maintenance levels and cycles
52
75
 
53
76
  ### 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
77
+ - **4.1 Justification for change**:
78
+ - **a.** New or modified aspects of user needs, threats, missions, objectives, environments, interfaces, personnel, or other factors requiring a new/modified system
79
+ - **b.** Deficiencies or limitations in the current system that make it unable to respond to these factors
80
+ - **4.2 Description of needed changes**: New or modified capabilities, functions, processes, interfaces, or other changes needed
81
+ - **4.3 Priorities among the changes**: Identify each change as essential, desirable, or optional. Prioritize the desirable and optional changes
82
+ - **4.4 Changes considered but not included**: Identify changes that were considered but excluded, with rationale for not including them
83
+ - **4.5 Assumptions and constraints**: Any assumptions and constraints applicable to the changes identified
84
+
85
+ ### Section 5: Concept for the new or modified system
86
+ - **5.1 Background, objectives, and scope**: Vision, mission/objectives, and scope for the new system from Product Brief/PRD
87
+ - **5.2 Operational policies and constraints**: New or changed operational policies and constraints
88
+ - **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):
89
+ - **a.** The operational environment and its characteristics
90
+ - **b.** Major system components and the interconnections among them
91
+ - **c.** Interfaces to external systems or procedures
92
+ - **d.** Capabilities/functions of the new or modified system
93
+ - **e.** Charts and descriptions depicting inputs, outputs, data flow, and manual/automated processes from the user's point of view
94
+ - **f.** Performance characteristics: speed, throughput, volume, frequency
95
+ - **g.** Quality attributes: reliability, maintainability, availability, flexibility, portability, usability, efficiency
96
+ - **h.** Provisions for safety, security, privacy, and continuity of operations in emergencies
97
+ - **5.4 Users/affected personnel**: How user roles change with the new system — organizational structures, training/skills, responsibilities, and interactions
98
+ - **5.5 Support concept**: Planned support approach — support agencies, facilities, equipment, support software, repair/replacement criteria, maintenance levels and cycles
68
99
 
69
100
  ### 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
101
+ - Document one or more operational scenarios that illustrate the role of the new/modified system
102
+ - Each scenario should include: the system's interaction with users, interfaces with other systems, and all states/modes identified
103
+ - Include: events, actions, stimuli, information, interactions
104
+ - Cover both normal operation and exception/error scenarios
105
+ - Reference may be made to other media (e.g., videos, mockups) to provide part of this information
106
+
107
+ ### Section 7: Summary of impacts
108
+ - **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
109
+ - **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
110
+ - **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
111
+
112
+ ### Section 8: Analysis of the proposed system
113
+ - **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
114
+ - **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
115
+ - **8.3 Alternatives and trade-offs considered**: Major alternatives considered, trade-offs among them, and rationale for the decisions reached
116
+
117
+ ### Section 9: Notes
118
+ - Alphabetical listing of all acronyms, abbreviations, and their meanings
119
+ - Glossary of terms and definitions
120
+ - Background information to aid understanding
121
+
122
+ ### Appendix A
123
+ - Include any supplementary material (charts, detailed data, classified information) that supports the main body
124
+ - Reference each appendix from the main body where the data would normally appear
76
125
 
77
126
  ## Step 4 — Validate
78
127
 
79
128
  Before presenting to the user, verify:
80
- - All template sections are populated or marked "Not applicable" with justification
129
+ - All template sections (1-9 and Appendix A) are populated or marked "Not applicable" with justification
81
130
  - Document is written from the user/stakeholder perspective, not the developer perspective
131
+ - Sections 3.3 and 5.3 cover all eight items (a through h)
132
+ - Section 4 includes all five subsections (4.1-4.5)
133
+ - Section 7 (impacts) and Section 8 (analysis) are present and substantive
82
134
  - Operational scenarios are complete and realistic
83
135
  - Document is written in {document_output_language}
84
136
 
@@ -86,6 +138,12 @@ Before presenting to the user, verify:
86
138
 
87
139
  Present the complete document to {user_name} for review.
88
140
  Highlight any sections where information was inferred or assumptions were made.
141
+ Specifically ask about:
142
+ - Are the current system descriptions (Section 3) accurate?
143
+ - Are the operational scenarios (Section 6) complete?
144
+ - Are there additional impacts (Section 7) not captured?
145
+ - Does the analysis (Section 8) accurately represent advantages and disadvantages?
146
+
89
147
  Offer to refine any section based on feedback.
90
148
 
91
149
  ## Step 6 — Save
@@ -96,4 +154,6 @@ Write the final document to:
96
154
  Confirm the file was saved and display a summary of:
97
155
  - Number of user roles identified
98
156
  - Number of operational scenarios documented
157
+ - Number of changes justified (Section 4)
158
+ - Number of impacts identified (Section 7)
99
159
  - 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,171 @@ 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.
68
+
69
+ ### Revision History
70
+
71
+ Before writing any content, add a **Revision History table** immediately after the document title. If this is a new document, create the table with version `1.0`. If updating an existing document, read the existing revision history and add a new row with an incremented version number and a summary of all changes made in this session. See the `document-revision-history` skill for full formatting rules.
72
+
73
+ ```markdown
74
+ | Version | Date | Author | Changes |
75
+ |---------|------|--------|---------|
76
+ | 1.0 | {date} | Agent ({model}) | Initial document generation |
77
+ ```
36
78
 
37
79
  ### 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
80
+ - **1.1 Identification**: Identify the CSCI by name, version, and project-unique identifier (as assigned in the SSDD)
81
+ - **1.2 System overview**: Summarize the system and this CSCI's role within it, referencing the SSDD
40
82
  - **1.3 Document overview**: Describe this SDD document's purpose and contents
41
83
 
42
84
  ### Section 2: Referenced documents
43
- - List all project artifacts and external references used
85
+ - List all predecessor MIL-STD-498 documents (SSDD, SRS, SSS) and project artifacts used. Include number, title, revision, and date
44
86
 
45
87
  ### Section 3: CSCI-wide design decisions
46
88
 
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
89
+ **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:
54
90
 
55
- Each decision should reference the requirement(s) it satisfies.
91
+ 1. **Requirements-driven**: Every design decision MUST cite the specific SRS requirement(s) it satisfies
92
+ 2. **Behavioral, not implementation**: Describe patterns and approaches first, then technology choices parenthetically if essential
93
+ 3. **State-dependent decisions**: If a design decision depends on CSCI states or modes, indicate this dependency
94
+
95
+ Document the following CSCI-wide design decisions (items a through e per the DID):
96
+
97
+ - **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)
98
+ - **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
99
+ - **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
100
+ - **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)
101
+ - **e. Design and implementation standards**: Standards to be followed for design, coding, testing (reference SDP if available)
56
102
 
57
103
  ### Section 4: CSCI architectural design
58
104
 
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
105
+ - **4.1 CSCI components** (items a through f all are required):
106
+
107
+ **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.
108
+
109
+ **b.** Show static ("consists of") relationships using component/class/package diagrams. Multiple relationship views may be presented.
110
+
111
+ **c.** State each CSC's purpose and the SRS requirements allocated to it. (Alternatively, allocation may be provided in Section 6.a.)
112
+
113
+ **d.** Identify each CSC's development status: new development, existing reuse as-is, existing design reuse, reengineering, etc. For existing components, provide identifying information.
114
+
115
+ **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.)
116
+
117
+ **f.** Describe the CSCI's **program library** — contents including computer files, data files, program files, and their relationships.
118
+
119
+ - **4.2 Concept of execution**:
120
+ - Describe dynamic relationships between CSCs — how they interact during operation
121
+ - Include: execution flow, data flow, state transitions, timing/sequencing, priorities, interrupt handling, concurrent execution, dynamic allocation/deallocation, exception handling
122
+ - Use sequence diagrams, state transition diagrams, or timing diagrams where helpful
123
+
124
+ - **4.3 Interface design**:
125
+ - **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.
126
+ - **4.3.x (per interface)**: For each interface, document as applicable:
127
+ - **a.** Priority assigned to the interface
128
+ - **b.** Type of interface (real-time data transfer, storage-and-retrieval, etc.)
129
+ - **c.** Data elements: names/identifiers, data types, sizes/formats, units, ranges, accuracy/precision, timing/frequency constraints, security constraints, sources and recipients
130
+ - **d.** Data element assemblies: records, messages, data structures — names, structure, medium, relationships, constraints
131
+ - **e.** Communication methods: links/media, message formatting, flow control, data transfer rates, routing
132
+ - **f.** Protocols: priority/layer, packeting, error control/recovery, synchronization
133
+ - **g.** Physical compatibility considerations
65
134
 
66
135
  ### Section 5: CSCI detailed design
67
136
 
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
137
+ **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):
138
+
139
+ For each software unit (5.x), document the following items (a through f per the DID):
140
+
141
+ - **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.
142
+ - **b. Design constraints**: Any constraints on the unit's design imposed by the CSCI-wide decisions, standards, or external interfaces
143
+ - **c. Programming language**: If different from the CSCI-wide language specified in Section 3.e
144
+ - **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.
145
+ - **e. Data elements and structures**: Internal data elements, record layouts, data structures, file formats used by the unit
146
+ - **f. Restrictions and limitations**: Any restrictions on the unit's use, dependencies, known limitations, or assumptions
73
147
 
74
148
  ### 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
149
+ - **6.a**: Map each CSC/software unit to the SRS requirements it addresses
150
+ - **6.b**: Map each SRS requirement to the CSCs/units that implement it
151
+ - Ensure every SRS requirement allocated to this CSCI is accounted for in both directions
77
152
 
78
153
  ### Section 7: Notes
79
- - Glossary of design terms, acronyms, and abbreviations
154
+ - Alphabetical listing of all acronyms, abbreviations, and their meanings
155
+ - Glossary of design terms and definitions
156
+
157
+ ### Appendix A
158
+ - Include any supplementary material (detailed algorithms, data dictionaries, message format specifications) that supports the main body
80
159
 
81
160
  ## Step 4 — Validate
82
161
 
83
162
  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
163
+ - All template sections (1-7 and Appendix A) are populated or marked "Not applicable" with justification
164
+ - This SDD covers exactly ONE CSCI as defined in the SSDD
165
+ - Every CSC has a project-unique identifier
166
+ - CSCI-wide design decisions (Section 3) are framed as behavioral responses to SRS requirements
167
+ - Section 5 (detailed design) has entries for every software unit, with algorithms and logic extracted from Epics/Stories
168
+ - Resource utilization (4.1.e) and program library (4.1.f) are documented
169
+ - Interface descriptions (4.3.x) cover all seven aspects (a through g) where applicable
170
+ - Requirements traceability (Section 6) covers all SRS requirements in both directions
88
171
  - Document is written in {document_output_language}
89
172
 
90
173
  ## Step 5 — Review
91
174
 
92
175
  Present the complete document to {user_name} for review.
93
- Highlight any design decisions where assumptions were made.
176
+ Highlight any sections where information was inferred or assumptions were made.
177
+ Specifically ask about:
178
+ - Is the CSC decomposition correct for this CSCI?
179
+ - Are the algorithms and processing logic in Section 5 accurately extracted from the Stories?
180
+ - Are there design decisions not captured in the Architecture or Epics?
181
+ - Is the resource utilization allocation realistic?
182
+
94
183
  Offer to refine any section based on feedback.
95
184
 
96
185
  ## Step 6 — Save
@@ -98,7 +187,13 @@ Offer to refine any section based on feedback.
98
187
  Write the final document to:
99
188
  `{output_folder}/planning-artifacts/SDD.md`
100
189
 
190
+ (If this is not the first CSCI's SDD, save as `SDD-{CSCI-identifier}.md`)
191
+
101
192
  Confirm the file was saved and display a summary of:
102
- - Number of components identified
193
+ - CSCI identifier and name
194
+ - Number of CSCs identified
195
+ - Number of software units with detailed design
103
196
  - Number of interfaces documented
197
+ - Number of SRS requirements traced
198
+ - Requirements coverage percentage
104
199
  - Any sections marked "Not applicable"