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.
@@ -6,6 +6,8 @@
6
6
 
7
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
8
 
9
+ **Critical principle**: The SSDD describes design decisions from the user's point of view, ignoring internal implementation details. Design decisions must be framed as responses to specific requirements — not as technology selections.
10
+
9
11
  ## Step 1 — Discover Project Artifacts
10
12
 
11
13
  Search the project for the following artifacts. Communicate in {communication_language}. Inform {user_name} which artifacts were found and which are missing.
@@ -22,6 +24,19 @@ Search the project for the following artifacts. Communicate in {communication_la
22
24
 
23
25
  If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
24
26
 
27
+ ### Document Dependencies
28
+
29
+ The SSDD is best generated after the following MIL-STD-498 predecessor documents:
30
+
31
+ | Predecessor | Relationship | Search Pattern |
32
+ |-------------|-------------|----------------|
33
+ | SSS (System/Subsystem Specification) | Recommended — provides the system requirements the SSDD designs against | `**/SSS.md` |
34
+ | OCD (Operational Concept Description) | Optional — provides operational context | `**/OCD.md` |
35
+
36
+ If predecessor documents exist, they MUST be loaded and used as primary inputs. The SSDD should reference them in Section 2 and trace design decisions to their requirements.
37
+
38
+ If recommended predecessors have NOT been generated yet, **alert {user_name}**: "The SSS has not been generated yet. The SSDD is typically produced after the SSS, since it designs against system requirements defined there. Would you like to proceed without it, or generate the SSS first?"
39
+
25
40
  ## Step 2 — Load Template
26
41
 
27
42
  Read the SSDD template from:
@@ -29,9 +44,49 @@ Read the SSDD template from:
29
44
 
30
45
  This defines the required DID sections and content expectations for each paragraph.
31
46
 
47
+ ## Step 2.5 — CSCI Discovery Interview
48
+
49
+ Before generating the document, you must establish the correct CSCI decomposition through an interactive interview with {user_name}. **Do NOT map repositories, microservices, or deployment units 1:1 to CSCIs.** A CSCI is a configuration item — a logically cohesive unit that is independently specified, designed, tested, and managed.
50
+
51
+ ### Phase A: Initial Analysis
52
+
53
+ Analyze the Architecture document and identify:
54
+ - All services, modules, repositories, and deployment units mentioned
55
+ - Functional domains they belong to (e.g., detection, alerting, user management, frontend)
56
+ - Shared release cycles, shared teams, shared test suites
57
+ - Data coupling between components (which services share databases or communicate frequently?)
58
+
59
+ ### Phase B: Propose CSCI Hypothesis
60
+
61
+ Present {user_name} with a proposed CSCI decomposition that groups related services/modules into logically cohesive CSCIs. For each proposed CSCI:
62
+ - Give it a descriptive name and project-unique identifier
63
+ - List the services/modules/components it contains (these become CSCs — Computer Software Components — within the CSCI)
64
+ - State the functional rationale for the grouping
65
+ - Identify the system requirements allocated to it
66
+
67
+ ### Phase C: Guided Questions
68
+
69
+ Ask {user_name} the following questions to validate and refine the decomposition:
70
+
71
+ 1. **Release boundaries**: "Which of these services/modules share a release cycle and are always deployed together?"
72
+ 2. **Team boundaries**: "Which components are developed and maintained by the same team?"
73
+ 3. **Test boundaries**: "Which components are always tested together as a unit?"
74
+ 4. **Delivery boundaries**: "What are your contractual or organizational delivery boundaries — what does the customer/stakeholder receive as distinct deliverables?"
75
+ 5. **Configuration management**: "Which components are independently baselined and version-controlled as a unit?"
76
+
77
+ ### Phase D: Refine and Confirm
78
+
79
+ Based on {user_name}'s answers:
80
+ - Merge or split CSCIs as needed
81
+ - Ensure each CSCI has clear functional cohesion
82
+ - Assign final project-unique identifiers (e.g., CSCI-SA for Situational Awareness, CSCI-FE for Frontend)
83
+ - Get explicit approval from {user_name} before proceeding to document generation
84
+
85
+ **Do NOT proceed to Step 3 until {user_name} approves the CSCI decomposition.**
86
+
32
87
  ## Step 3 — Generate Document
33
88
 
34
- Write the document in {document_output_language}, populating each template section:
89
+ Write the document in {document_output_language}, populating each template section.
35
90
 
36
91
  ### Section 1: Scope
37
92
  - **1.1 Identification**: Extract system name, version, and project-unique identifiers from PRD/Product Brief
@@ -39,60 +94,88 @@ Write the document in {document_output_language}, populating each template secti
39
94
  - **1.3 Document overview**: Describe this SSDD document's purpose, contents, and any security/privacy considerations
40
95
 
41
96
  ### Section 2: Referenced documents
42
- - List all project artifacts, standards, and external references used as inputs
97
+ - List all project artifacts, standards, and external references used as inputs. Include number, title, revision, and date for each
43
98
 
44
99
  ### Section 3: System-wide design decisions
45
100
 
46
- Document design decisions that apply across the entire system. For each decision, reference the requirement(s) it satisfies:
101
+ **CRITICAL BEHAVIORAL GUIDANCE**: This section describes the system's behavioral design how it will behave from a user's point of view in meeting its requirements, ignoring internal implementation. Follow these rules strictly:
47
102
 
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
103
+ 1. **Requirements-driven**: Every design decision MUST cite the specific requirement(s) it satisfies (e.g., "To satisfy NFR-P2 (< 1s detection latency)...")
104
+ 2. **Behavioral, not implementation**: Describe patterns and approaches, NOT specific tools or products. Write "An asynchronous message distribution pattern is selected..." NOT "RabbitMQ serves as the message broker..."
105
+ 3. **Technology names belong in the Architecture document**, not here. If a technology choice is essential context, mention it parenthetically after the behavioral description
106
+ 4. **State-dependent decisions**: If a design decision depends on system states or modes, indicate this dependency explicitly
107
+
108
+ For each of the following subsections, document the design decisions and reference their driving requirements:
109
+
110
+ - **a. Input/output design**: What the system accepts and produces. Describe system inputs, outputs, and user/external interfaces from the user's perspective. If Interface Design Descriptions (IDDs) exist, they may be referenced
111
+ - **b. Behavioral design**: How the system behaves in response to inputs and conditions — actions, response times, performance characteristics, selected algorithms/rules, and handling of invalid inputs or error conditions. Describe behavioral patterns (event-driven processing, request-response cycles, etc.) without naming specific tools
112
+ - **c. Database/data design**: How databases and data files appear to users and external systems. Describe data models, storage approaches, and data lifecycle from the user's perspective. If Database Design Descriptions (DBDDs) exist, they may be referenced
113
+ - **d. Safety, security, privacy**: Selected approaches to meeting safety, security, and privacy requirements. Place these in **separate subparagraphs** as the DID requires special treatment for critical requirements
114
+ - **e. Hardware/physical design choices**: Physical characteristics if applicable (for hardware-software systems) — size, color, shape, weight, materials, markings
115
+ - **f. Other system-wide decisions**: Flexibility, availability, maintainability approaches. Describe the rationale for architectural patterns selected (e.g., "A service-isolation pattern is selected to satisfy NFR-A1 availability requirement, enabling independent failure recovery")
54
116
 
55
117
  ### Section 4: System architectural design
56
118
 
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
119
+ - **4.1 System components** (items a through f — all are required):
120
+
121
+ **a.** Identify all system components using the approved CSCI decomposition from Step 2.5. Each CSCI shall have a project-unique identifier. For each CSCI, list the CSCs (services, modules) it contains. Also identify HWCIs and manual operations as applicable. Note: a database may be treated as a CSCI or as part of a CSCI.
122
+
123
+ **b.** Show the static ("consists of") relationships using component/block diagrams. Multiple relationship views may be presented (structural, deployment, data ownership).
124
+
125
+ **c.** State each component's purpose and the system requirements allocated to it. (Alternatively, allocation may be provided in Section 5.a.)
126
+
127
+ **d.** Identify each component's development status: new development, existing reuse as-is, existing design reuse, reengineering, planned for a specific build, etc. For existing components, provide identifying information (name, version, documentation references, location).
128
+
129
+ **e.** For each computer system or hardware aggregate, describe computer hardware resources: processors, memory, I/O devices, auxiliary storage, communications/network equipment. Include:
130
+ - Manufacturer, model, speed/capacity for processors
131
+ - Type, size, speed, configuration for memory
132
+ - Type, speed/capacity for I/O devices
133
+ - Type, amount, speed for auxiliary storage
134
+ - Data transfer rates, topologies, protocols for network equipment
135
+ - Growth capabilities and diagnostic capabilities
136
+ - Resource utilization allocation per CSCI (e.g., "20% of resource capacity allocated to CSCI-SA")
137
+
138
+ **f.** Present a **specification tree** — a diagram that identifies and shows the relationships among the planned specifications for the system components. This is a tree showing which specification documents (SSS, SRS, SDD, IRS, etc.) apply to which components.
64
139
 
65
140
  - **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
141
+ - Describe dynamic relationships between components how they interact during system operation
142
+ - Include: execution flow, data flow, dynamically controlled sequencing, state transitions, timing/sequencing, priorities, interrupt handling, concurrent execution, dynamic allocation/deallocation, exception handling
143
+ - Use sequence diagrams, timing diagrams, or state transition diagrams where helpful
69
144
 
70
145
  - **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
146
+ - **4.3.1 Interface identification and diagrams**: List all interfaces with project-unique identifiers. Identify interfacing entities by name, number, version. State which entities have fixed interface characteristics vs. developing ones. Provide interface diagrams.
147
+ - **4.3.x (per interface)**: For each interface, document the following as applicable:
148
+ - **a.** Priority assigned to the interface
149
+ - **b.** Type of interface (real-time data transfer, storage-and-retrieval, etc.)
150
+ - **c.** Data elements: names/identifiers (project-unique, natural-language, technical), data types, sizes/formats, units, ranges, accuracy/precision, timing/frequency/volume constraints, security/privacy constraints, sources and recipients
151
+ - **d.** Data element assemblies: records, messages, files, displays — their names, structure, medium, visual/auditory characteristics, relationships, constraints, sources and recipients
152
+ - **e.** Communication methods: links/media, message formatting, flow control, data transfer rates, routing/addressing, transmission services, safety/security considerations
153
+ - **f.** Protocols: priority/layer, packeting/fragmentation, error control/recovery, synchronization, status/reporting
154
+ - **g.** Physical compatibility considerations (dimensions, tolerances, loads, voltages, plug compatibility)
79
155
 
80
156
  ### Section 5: Requirements traceability
81
157
  - **5.a**: Map each system component to the system requirements it satisfies
82
158
  - **5.b**: Map each system requirement to the components that address it
159
+ - Ensure every system requirement is accounted for in both directions
83
160
 
84
161
  ### Section 6: Notes
85
- - Glossary of terms, acronyms, and abbreviations
162
+ - Alphabetical listing of all acronyms, abbreviations, and their meanings
163
+ - Glossary of terms and definitions needed to understand this document
86
164
  - Background information to aid understanding
87
165
 
166
+ ### Appendix A
167
+ - Include any supplementary material (charts, detailed data, classified information) that supports the main body
168
+ - Reference each appendix from the main body where the data would normally appear
169
+
88
170
  ## Step 4 — Validate
89
171
 
90
172
  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
173
+ - All template sections (1-6 and Appendix A) are populated or marked "Not applicable" with justification
174
+ - Every CSCI has a project-unique identifier and represents a logically cohesive grouping (not a 1:1 service mapping)
175
+ - The specification tree (4.1.f) is present and shows relationships among planned specifications
176
+ - System-wide design decisions (Section 3) are framed as behavioral responses to requirements — **no tool/product names appear as primary descriptions**
177
+ - Interface descriptions (4.3.x) cover all seven aspects (a through g) where applicable
178
+ - Requirements traceability (Section 5) covers all system requirements in both directions
96
179
  - Document is written in {document_output_language}
97
180
 
98
181
  ## Step 5 — Review
@@ -100,9 +183,11 @@ Before presenting to the user, verify:
100
183
  Present the complete document to {user_name} for review.
101
184
  Highlight any sections where information was inferred or assumptions were made.
102
185
  Specifically ask about:
103
- - Are all system components identified?
104
- - Are the interface descriptions accurate?
186
+ - Is the CSCI decomposition correct? Are there components that should be merged or split?
187
+ - Are the interface descriptions accurate and complete?
105
188
  - Are there additional design decisions not captured in the Architecture?
189
+ - Does Section 3 correctly describe behavioral design without leaking implementation details?
190
+ - Is the specification tree in 4.1.f accurate?
106
191
 
107
192
  Offer to refine any section based on feedback.
108
193
 
@@ -112,7 +197,9 @@ Write the final document to:
112
197
  `{output_folder}/planning-artifacts/SSDD.md`
113
198
 
114
199
  Confirm the file was saved and display a summary of:
115
- - Number of system components identified
200
+ - Number of CSCIs identified (with their identifiers)
201
+ - Number of CSCs per CSCI
116
202
  - Number of interfaces documented
117
203
  - Number of system-wide design decisions captured
204
+ - Specification tree completeness
118
205
  - Any sections marked "Not applicable"
@@ -20,6 +20,20 @@ Search the project for the following artifacts. Communicate in {communication_la
20
20
 
21
21
  If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
22
22
 
23
+ ### Document Dependencies
24
+
25
+ The SSS is typically one of the earliest MIL-STD-498 documents generated, after the OCD. It defines system-level requirements that downstream documents (SSDD, SRS) will design against and trace to.
26
+
27
+ | Predecessor | Relationship | Search Pattern |
28
+ |-------------|-------------|----------------|
29
+ | OCD (Operational Concept Description) | Recommended — provides operational context and user needs | `**/OCD.md` |
30
+
31
+ If the OCD has been generated, it MUST be loaded and used as an input — particularly for deriving capability requirements (3.2) and understanding operational scenarios.
32
+
33
+ If the OCD has NOT been generated yet, **inform {user_name}**: "The OCD has not been generated yet. The SSS benefits from the operational context in the OCD. Would you like to proceed without it, or generate the OCD first?"
34
+
35
+ **Note**: The SSS feeds into the SSDD, SRS, and STD. Ensure requirements are written to be traceable — each requirement needs a unique identifier that downstream documents can reference.
36
+
23
37
  ## Step 2 — Load Template
24
38
 
25
39
  Read the SSS template from:
@@ -29,59 +43,122 @@ This defines the required DID sections and content expectations for each paragra
29
43
 
30
44
  ## Step 3 — Generate Document
31
45
 
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.
46
+ Write the document in {document_output_language}, populating each template section. Keep requirements at the **system/subsystem level** — avoid low-level software implementation details. Each requirement shall be assigned a project-unique identifier, be stated so that an objective test can be defined for it, and be annotated with qualification method(s).
33
47
 
34
48
  ### Section 1: Scope
35
49
  - **1.1 Identification**: Extract system name, version, identifiers from PRD/Product Brief
36
50
  - **1.2 System overview**: Summarize system purpose, nature, and stakeholders
37
- - **1.3 Document overview**: Describe this SSS document's purpose and contents
51
+ - **1.3 Document overview**: Describe this SSS document's purpose, contents, and any security/privacy considerations
38
52
 
39
53
  ### Section 2: Referenced documents
40
- - List all project artifacts and external standards used
54
+ - List all project artifacts and external standards used, with number, title, revision, and date
41
55
 
42
56
  ### Section 3: Requirements
43
57
 
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:
58
+ - **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. If states/modes exist, correlate each requirement to the applicable states/modes.
59
+
60
+ - **3.2 System capability requirements**: Map high-level PRD features and Product Brief goals to system capabilities (3.2.1, 3.2.2, etc.). Each requirement must have:
46
61
  - A unique identifier (SSS-CAP-001 format)
47
62
  - 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
63
+ - Parameters: response times, throughput, accuracy, capacity, priorities as applicable
64
+ - Error handling: behavior under unexpected, unallowed, or out-of-bounds conditions
65
+ - Provisions for continuity of operations in emergencies
66
+
67
+ - **3.3 System external interface requirements**:
68
+ - **3.3.1 Interface identification and diagrams**: Identify all required external interfaces with project-unique identifiers. Designate interfacing entities by name, number, version. State which have fixed vs. developing characteristics. Provide interface diagrams.
69
+ - **3.3.x (per interface)**: For each external interface, specify requirements imposed on the system. Cover:
70
+ - **a.** Priority the system must assign the interface
71
+ - **b.** Type of interface (real-time data transfer, storage-and-retrieval, etc.)
72
+ - **c.** Data elements: names/identifiers, data types, sizes/formats, units, ranges, accuracy/precision, timing/frequency constraints, security constraints, sources and recipients
73
+ - **d.** Data element assemblies: records, messages, files, displays — names, structure, medium, characteristics, relationships, constraints
74
+ - **e.** Communication methods: links/media, message formatting, flow control, data transfer rates, routing, transmission services, security considerations
75
+ - **f.** Protocols: priority/layer, packeting, error control/recovery, synchronization, status/reporting
76
+ - **g.** Physical compatibility (dimensions, tolerances, loads, plug compatibility, voltages)
77
+
78
+ - **3.4 System internal interface requirements**: Interfaces between major subsystems. If left to design or component specs, state so. If requirements exist, follow 3.3 topics.
79
+
80
+ - **3.5 System internal data requirements**: System-level data stores, data flows between subsystems. If left to design or component specs, state so.
81
+
82
+ - **3.6 Adaptation requirements**: Installation and site-specific configuration needs, operational parameters that may vary
83
+
84
+ - **3.7 Safety requirements**: Requirements for preventing/minimizing unintended hazards to personnel, property, and environment. Include nuclear component requirements if applicable.
85
+
86
+ - **3.8 Security and privacy requirements**: Security/privacy environment, type/degree of protection, risks, safeguards, policy, accountability, certification criteria
87
+
88
+ - **3.9 System environment requirements**: Physical, regulatory, and operational environment constraints. For hardware-software systems: transportation, storage, operation conditions (wind, rain, temperature, shock, noise, electromagnetic radiation, explosions)
89
+
90
+ - **3.10 Computer resource requirements**:
91
+ - **3.10.1 Computer hardware requirements**: Required hardware — processors, memory, I/O devices, auxiliary storage, communications/network equipment (number, type, size, capacity)
92
+ - **3.10.2 Computer hardware resource utilization requirements**: Maximum allowable utilization (% of processor, memory, I/O, storage, network capacity) with conditions for measurement
93
+ - **3.10.3 Computer software requirements**: Required software (OS, DBMS, network software, utilities) with nomenclature, version, and documentation references
94
+ - **3.10.4 Computer communications requirements**: Geographic locations, network topology, transmission techniques, data transfer rates, gateways, use times, data volume, time boundaries, peak volumes, diagnostics
95
+
96
+ - **3.11 System quality factors**: Quantitative requirements for: functionality, reliability (e.g., MTBF for equipment), maintainability, availability, flexibility, portability, reusability, testability, usability
97
+
98
+ - **3.12 Design and construction constraints**: Requirements constraining system design and construction. For hardware-software systems, include physical requirements:
99
+ - **a.** Architecture constraints: required subsystems, standard/military/existing components, Government-furnished property
100
+ - **b.** Design/construction standards, data standards, programming languages, workmanship requirements
101
+ - **c.** Physical characteristics: weight limits, dimensional limits, color, protective coatings, interchangeability, transportability, setup requirements
102
+ - **d.** Materials: allowed/prohibited materials, toxic material handling, electromagnetic radiation limits
103
+ - **e.** Nameplates, part marking, serial/lot number marking, other identifying markings
104
+ - **f.** Flexibility and expandability for anticipated growth, technology changes, threat changes, mission changes
105
+
106
+ - **3.13 Personnel-related requirements**: Number of users, skill levels, duty cycles, training needs, human factors engineering (capabilities/limitations, foreseeable errors, critical indicator placement, adjustable workstations, error message color/duration, auditory signals)
107
+
108
+ - **3.14 Training-related requirements**: Training devices and training materials to be included in the system
109
+
110
+ - **3.15 Logistics-related requirements**: System maintenance, software support, transportation modes, supply-system requirements, facility impacts, equipment impacts
111
+
112
+ - **3.16 Other requirements**: Additional requirements not covered above. Examples: system documentation requirements (specifications, drawings, manuals, test plans)
113
+
114
+ - **3.17 Packaging requirements**: Requirements for packaging, labeling, and handling for delivery
115
+
116
+ - **3.18 Precedence and criticality of requirements**: Order of precedence, criticality, or assigned weights. Identify requirements critical to safety, security, or privacy
61
117
 
62
118
  ### Section 4: Qualification provisions
63
- - For each requirement in Section 3, specify the qualification method: Demonstration, Test, Analysis, or Inspection
119
+ For each requirement in Section 3, specify the qualification method(s). A table may be used:
120
+ - **a.** Demonstration: Observable functional operation without instrumentation
121
+ - **b.** Test: Operation using instrumentation or special test equipment
122
+ - **c.** Analysis: Processing of accumulated data (reduction, interpolation, extrapolation)
123
+ - **d.** Inspection: Visual examination of system components, documentation
124
+ - **e.** Special qualification methods: Special tools, techniques, procedures, facilities, acceptance limits, standard samples, preproduction samples, pilot models/lots
64
125
 
65
126
  ### 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
127
+ - For **system-level specifications**: This paragraph does not apply (state so).
128
+ - For **subsystem-level specifications**:
129
+ - **5.a**: Map each subsystem requirement to the system requirements it addresses. Note: some requirements may trace to "system implementation" or system design decisions.
130
+ - **5.b**: Map each system requirement allocated to this subsystem to the subsystem requirements that address it. All allocated requirements shall be accounted for.
68
131
 
69
132
  ### Section 6: Notes
70
- - Glossary of terms, acronyms, and abbreviations
133
+ - Alphabetical listing of all acronyms, abbreviations, and their meanings
134
+ - Glossary of terms and definitions
135
+
136
+ ### Appendix A
137
+ - Include any supplementary material (requirement matrices, charts, classified data) that supports the main body
71
138
 
72
139
  ## Step 4 — Validate
73
140
 
74
141
  Before presenting to the user, verify:
75
- - All template sections are populated or marked "Not applicable" with justification
142
+ - All template sections (1-6 and Appendix A) are populated or marked "Not applicable" with justification
76
143
  - Requirements are at the system level (not CSCI/software level)
77
144
  - Every requirement has a unique identifier and is testable
78
- - Qualification methods are specified for all requirements
145
+ - External interfaces (3.3.x) cover all seven categories (a through g) where applicable
146
+ - Computer resource requirements (3.10) has all four subsections (3.10.1-3.10.4)
147
+ - Design constraints (3.12) cover items a through f including physical requirements where applicable
148
+ - Qualification methods are specified for all requirements including special methods (4.e)
149
+ - Section 5 correctly handles system vs. subsystem distinction
79
150
  - Document is written in {document_output_language}
80
151
 
81
152
  ## Step 5 — Review
82
153
 
83
154
  Present the complete document to {user_name} for review.
84
155
  Highlight any sections where information was inferred or assumptions were made.
156
+ Specifically ask about:
157
+ - Are all system capabilities captured?
158
+ - Are the interface requirements (3.3) accurate and complete?
159
+ - Are there physical or environmental constraints not captured in 3.9 and 3.12?
160
+ - Is the precedence/criticality ranking (3.18) correct?
161
+
85
162
  Offer to refine any section based on feedback.
86
163
 
87
164
  ## Step 6 — Save
@@ -92,5 +169,6 @@ Write the final document to:
92
169
  Confirm the file was saved and display a summary of:
93
170
  - Total system requirements identified
94
171
  - Number of capabilities documented
172
+ - Number of interfaces specified
95
173
  - Qualification methods assigned
96
174
  - Any sections marked "Not applicable"
@@ -20,6 +20,31 @@ Search the project for the following artifacts. Communicate in {communication_la
20
20
 
21
21
  If **required** artifacts are missing, warn the user and ask whether to proceed with available data or stop.
22
22
 
23
+ ### Document Dependencies
24
+
25
+ The STD defines test descriptions that verify requirements specified in the SRS. It should be generated after both the SSDD and the SRS for the CSCI being tested.
26
+
27
+ | Predecessor | Relationship | Search Pattern |
28
+ |-------------|-------------|----------------|
29
+ | SRS (Software Requirements Specification) | **Required** — provides the requirements that tests must verify | `**/SRS.md`, `**/SRS-*.md` |
30
+ | SSDD (System/Subsystem Design Description) | **Required** — provides system context and CSCI decomposition | `**/SSDD.md` |
31
+ | SDD (Software Design Description) | Recommended — provides design details useful for test planning | `**/SDD.md`, `**/SDD-*.md` |
32
+
33
+ If the SRS has NOT been generated yet, **alert {user_name}**: "The SRS has not been generated yet. The STD needs the SRS to know which requirements must be verified by tests. Would you like to proceed without the SRS, or generate the SRS first?"
34
+
35
+ If the SSDD has NOT been generated yet, **alert {user_name}**: "The SSDD has not been generated yet. The STD benefits from the system design context in the SSDD. Would you like to proceed without it, or generate the SSDD first?"
36
+
37
+ If predecessor documents exist, they MUST be loaded and used as primary inputs. Test cases MUST trace back to specific SRS requirements.
38
+
39
+ ### CSCI/System Scoping
40
+
41
+ Ask {user_name}: **"Is this STD for CSCI-level testing or system-level testing? If CSCI-level, which CSCI?"**
42
+
43
+ - For CSCI-level testing: requirements come from the CSCI's SRS
44
+ - For system-level testing: requirements come from the SSS
45
+
46
+ If the SSDD exists, present the list of CSCIs and ask the user to select scope.
47
+
23
48
  ## Step 2 — Load Template
24
49
 
25
50
  Read the STD template from:
@@ -29,7 +54,7 @@ This defines the required DID sections and content expectations for each paragra
29
54
 
30
55
  ## Step 3 — Generate Document
31
56
 
32
- Write the document in {document_output_language}, populating each template section:
57
+ Write the document in {document_output_language}, populating each template section. **Important**: Safety precautions (marked by WARNING or CAUTION) and security/privacy considerations shall be included as applicable throughout Sections 3 and 4.
33
58
 
34
59
  ### Section 1: Scope
35
60
  - **1.1 Identification**: Extract system and software identifiers from PRD/Architecture
@@ -37,52 +62,122 @@ Write the document in {document_output_language}, populating each template secti
37
62
  - **1.3 Document overview**: Describe this STD document's purpose and contents
38
63
 
39
64
  ### Section 2: Referenced documents
40
- - List all project artifacts, test standards, and other references used
65
+ - List all project artifacts, test standards, and other references with number, title, revision, and date
41
66
 
42
67
  ### Section 3: Test preparations
43
68
 
44
- For each test identified, provide (organized as 3.x subsections):
69
+ Organize as 3.x subsections, one per test. For each test (3.x), provide a brief description and the following:
45
70
 
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
71
+ - **3.x.1 Hardware preparation**: Procedures to prepare hardware for the test:
72
+ - **a.** Specific hardware to be used, identified by name and number
73
+ - **b.** Switch settings and cabling necessary to connect the hardware
74
+ - **c.** Diagrams showing hardware, interconnecting control, and data paths
75
+ - **d.** Step-by-step instructions for placing hardware in a state of readiness
76
+ - **3.x.2 Software preparation**: Procedures to prepare software for the test:
77
+ - **a.** Specific software to be used in the test
78
+ - **b.** Storage medium of the item(s) under test
79
+ - **c.** Storage medium of related software (simulators, test drivers, databases)
80
+ - **d.** Instructions for loading software, including required sequence
81
+ - **e.** Instructions for software initialization common to more than one test case
82
+ - **3.x.3 Other pre-test preparations**: Any other personnel actions, preparations, or procedures necessary (test data setup, user accounts, external service mocks, environment variables)
51
83
 
52
- For each test case (organized as 4.x subsections), derive from Story acceptance criteria and SRS requirements:
84
+ When information duplicates another test's preparation, reference it rather than repeating it.
53
85
 
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
86
+ ### Section 4: Test descriptions
61
87
 
62
- Group test cases by capability/feature (mapping to Epics) for clarity.
88
+ Organize as a **two-level hierarchy**: 4.x per test, then 4.x.y per test case within each test. Group test cases by capability/feature (mapping to Epics) for clarity.
89
+
90
+ For each test (4.x), identify the test by project-unique identifier. Then for each test case (4.x.y), provide:
91
+
92
+ - **4.x.y.1 Requirements addressed**: Identify the CSCI or system requirements addressed by this test case. Reference specific SRS requirement IDs (e.g., SRS-CAP-001). (Alternatively, this traceability may be provided in Section 5.a.)
93
+
94
+ - **4.x.y.2 Prerequisite conditions**: Conditions that must be established prior to the test case:
95
+ - **a.** Hardware and software configuration
96
+ - **b.** Flags, initial breakpoints, pointers, control parameters, or initial data to be set/reset
97
+ - **c.** Preset hardware conditions or electrical states
98
+ - **d.** Initial conditions for timing measurements
99
+ - **e.** Conditioning of the simulated environment
100
+ - **f.** Other special conditions peculiar to the test case
101
+
102
+ - **4.x.y.3 Test inputs**: Test inputs necessary for the test case:
103
+ - **a.** Name, purpose, and description (range of values, accuracy) of each test input
104
+ - **b.** Source of the test input and method for selecting it
105
+ - **c.** Whether the test input is real or simulated
106
+ - **d.** Time or event sequence of test input
107
+ - **e.** How input data will be controlled to:
108
+ 1. Test with minimum/reasonable number of data types and values
109
+ 2. Exercise with a range of valid data (overload, saturation, worst-case)
110
+ 3. Exercise with invalid data types and values (error handling)
111
+ 4. Permit retesting if necessary
112
+
113
+ - **4.x.y.4 Expected test results**: All expected results — both intermediate and final results
114
+
115
+ - **4.x.y.5 Criteria for evaluating results**: Criteria for intermediate and final results:
116
+ - **a.** Range or accuracy over which output can vary and still be acceptable
117
+ - **b.** Minimum number of input/output combinations that constitute acceptable results
118
+ - **c.** Maximum/minimum allowable test duration (time or number of events)
119
+ - **d.** Maximum number of interrupts, halts, or system breaks that may occur
120
+ - **e.** Allowable severity of processing errors
121
+ - **f.** Conditions under which the result is inconclusive and retesting is needed
122
+ - **g.** Conditions indicating irregularities in input data, test database, or procedures
123
+ - **h.** Allowable indications of control, status, and results readiness for next test case
124
+ - **i.** Additional criteria not covered above
125
+
126
+ - **4.x.y.6 Test procedure**: Defined as individually numbered steps in sequential order:
127
+ - **a.** Test operator actions and equipment operation for each step, including commands to:
128
+ 1. Initiate the test case and apply test inputs
129
+ 2. Inspect test conditions
130
+ 3. Perform interim evaluations of test results
131
+ 4. Record data
132
+ 5. Halt or interrupt the test case
133
+ 6. Request data dumps or other aids
134
+ 7. Modify the database/data files
135
+ 8. Repeat the test case if unsuccessful
136
+ 9. Apply alternate modes as required
137
+ 10. Terminate the test case
138
+ - **b.** Expected result and evaluation criteria for each step
139
+ - **c.** If addressing multiple requirements, which steps address which requirements
140
+ - **d.** Actions to follow in event of program stop or error (recording critical data, halting time-sensitive software, collecting records)
141
+ - **e.** Procedures for reducing and analyzing test results (detect output, identify media/location, evaluate for continuation, evaluate against required output)
142
+
143
+ - **4.x.y.7 Assumptions and constraints**: Assumptions made and constraints imposed (limitations on timing, interfaces, equipment, personnel, database). If waivers/exceptions to limits are approved, address their effects.
63
144
 
64
145
  ### 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
146
+ - **5.a**: Map each test case to the system or CSCI requirements it addresses. If a test case addresses multiple requirements, indicate which test procedure steps address which requirements.
147
+ - **5.b**: Map each requirement covered by this STD to the test case(s) that address it. For CSCI testing, trace from each SRS requirement. For system testing, trace from each SSS requirement. Indicate specific test procedure steps where applicable.
148
+ - Ensure every requirement has at least one associated test case. Identify any requirements that cannot be tested and explain why.
68
149
 
69
150
  ### Section 6: Notes
70
- - Glossary of test terminology and abbreviations
151
+ - Alphabetical listing of all acronyms, abbreviations, and their meanings
152
+ - Glossary of test terminology
71
153
  - References to test automation frameworks or tools used
72
154
 
155
+ ### Appendix A
156
+ - Test procedures may be included as an appendix for convenience in document maintenance
157
+ - Include any supplementary material (test data sets, detailed configurations)
158
+
73
159
  ## Step 4 — Validate
74
160
 
75
161
  Before presenting to the user, verify:
76
- - All template sections are populated or marked "Not applicable" with justification
162
+ - All template sections (1-6 and Appendix A) are populated or marked "Not applicable" with justification
163
+ - Test hierarchy is preserved: 4.x (test) → 4.x.y (test case) → 4.x.y.1-7 (details)
164
+ - Every test case has all seven sub-items (4.x.y.1 through 4.x.y.7)
77
165
  - Every test case has a unique identifier and clear pass/fail criteria
78
- - Requirements traceability is complete (all requirements covered)
166
+ - Requirements traceability is complete every SRS/SSS requirement has at least one test case
79
167
  - Test procedures are detailed enough to be repeatable
168
+ - Safety precautions and security considerations are included where applicable
80
169
  - Document is written in {document_output_language}
81
170
 
82
171
  ## Step 5 — Review
83
172
 
84
173
  Present the complete document to {user_name} for review.
85
174
  Highlight any requirements without test coverage.
175
+ Specifically ask about:
176
+ - Are the test preparations complete for the target environment?
177
+ - Are the evaluation criteria (4.x.y.5) realistic and measurable?
178
+ - Are there additional test cases needed for edge cases or error scenarios?
179
+ - Are the test procedures detailed enough to be executed by someone unfamiliar with the system?
180
+
86
181
  Offer to refine any section based on feedback.
87
182
 
88
183
  ## Step 6 — Save
@@ -91,7 +186,8 @@ Write the final document to:
91
186
  `{output_folder}/planning-artifacts/STD.md`
92
187
 
93
188
  Confirm the file was saved and display a summary of:
94
- - Total number of test cases defined
189
+ - Total number of tests (4.x level)
190
+ - Total number of test cases (4.x.y level)
95
191
  - Requirements coverage percentage
96
192
  - Any untestable requirements identified
97
193
  - Any sections marked "Not applicable"