diff --git a/src/bmm/workflows/3-solutioning/create-syrs/checklist.md b/src/bmm/workflows/3-solutioning/create-syrs/checklist.md new file mode 100644 index 000000000..ab219f072 --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/checklist.md @@ -0,0 +1,173 @@ +# SyRS Workflow - ISO 29148 Clause 8 Validation Checklist + +## Document Structure Completeness + +- [ ] Section 1 (Introduction) includes system purpose, scope, and overview +- [ ] Section 1 includes system context diagram or description +- [ ] Section 1 includes system functions summary +- [ ] Section 1 includes user characteristics +- [ ] Section 1 includes definitions, acronyms, and abbreviations +- [ ] Section 2 (References) lists all referenced documents including StRS, PRD, and standards +- [ ] Section 3 (System Requirements) contains all requirement subsections +- [ ] Section 4 (Verification) includes verification methods and summary table +- [ ] Section 5 (Assumptions and Dependencies) is documented +- [ ] Section 6 (Traceability) includes both StRS and PRD traceability matrices +- [ ] Appendices include glossary and requirements index + +## Functional Requirements (Section 3.1) + +- [ ] All PRD functional requirements mapped to system-level functional requirements +- [ ] Each requirement uses SYS-FUNC-### identifier format +- [ ] Each requirement has priority attribute (Critical / High / Medium / Low) +- [ ] Each requirement has source attribute referencing PRD FR +- [ ] Each requirement has V&V method attribute (Inspection / Analysis / Demonstration / Test) +- [ ] Requirements are atomic (one requirement per statement) +- [ ] Requirements are verifiable (measurable or observable) +- [ ] Requirements are unambiguous (single interpretation) +- [ ] Requirements are consistent (no conflicts between requirements) +- [ ] Requirements are traceable (clear source and rationale) + +## System Interfaces (Section 3.2) + +- [ ] User interfaces defined with technical specificity +- [ ] Hardware interfaces defined (if applicable) +- [ ] Software interfaces defined with protocols and data formats +- [ ] Communication interfaces defined with protocols and standards +- [ ] Each interface requirement uses SYS-IF-### identifier format +- [ ] Interface requirements reference relevant standards + +## Performance Requirements (Section 3.3) + +- [ ] Response time targets specified with measurable values +- [ ] Throughput requirements specified with measurable values +- [ ] Capacity requirements specified with measurable values +- [ ] Scalability targets defined +- [ ] Each requirement uses SYS-PERF-### identifier format +- [ ] All performance targets are measurable (specific numbers, not vague terms) + +## Usability Requirements (Section 3.4) + +- [ ] Ease of use requirements specified +- [ ] Accessibility requirements specified (WCAG level if applicable) +- [ ] Learnability requirements specified +- [ ] Error handling and recovery from user perspective defined +- [ ] Each requirement uses SYS-USAB-### identifier format + +## Security Requirements (Section 3.5) + +- [ ] Authentication requirements defined +- [ ] Authorization requirements defined +- [ ] Data protection requirements defined +- [ ] Audit and logging requirements defined +- [ ] Compliance requirements referenced (GDPR, HIPAA, etc. if applicable) +- [ ] Each requirement uses SYS-SEC-### identifier format + +## Operational Requirements (Sections 3.6 - 3.9) + +- [ ] System operations documented (startup, shutdown, backup, recovery) +- [ ] System modes defined (operational, degraded, maintenance, emergency) +- [ ] State transitions documented with conditions +- [ ] Physical characteristics specified (if applicable) +- [ ] Environment conditions specified (operating environment, deployment targets) +- [ ] Each requirement uses appropriate identifier format (SYS-OPS-###, SYS-MODE-###, etc.) + +## Constraints and Lifecycle (Sections 3.10 - 3.13) + +- [ ] Information management requirements defined (data retention, archival, disposal) +- [ ] Policy and regulation requirements documented +- [ ] System lifecycle sustainability addressed (maintenance, evolution, decommission) +- [ ] Design constraints documented (technology, standards, organizational) +- [ ] Each requirement uses appropriate identifier format + +## Verification Plan (Section 4) + +- [ ] Every system requirement has an assigned verification method +- [ ] Verification methods are appropriate (Inspection / Analysis / Demonstration / Test) +- [ ] Verification summary table is complete with all requirements listed +- [ ] TEA module integration noted for Enterprise track +- [ ] Verification responsibilities identified where applicable + +## Traceability (Section 6) + +- [ ] Every system requirement traces to at least one StRS requirement +- [ ] Every system requirement traces to at least one PRD requirement +- [ ] Traceability to StRS is documented in matrix format +- [ ] Traceability to PRD is documented in matrix format +- [ ] No orphan requirements (requirements without source) +- [ ] No gaps in coverage (all StRS/PRD requirements addressed) + +## Requirement Quality Criteria (per requirement) + +For each requirement, verify these 9 quality criteria: + +1. [ ] **Necessary** - The requirement is essential for system success +2. [ ] **Appropriate** - The requirement is at the correct level of abstraction (system level) +3. [ ] **Unambiguous** - The requirement has only one interpretation +4. [ ] **Complete** - The requirement is fully stated with all necessary information +5. [ ] **Singular** - The requirement addresses one thing only (atomic) +6. [ ] **Feasible** - The requirement is technically achievable +7. [ ] **Verifiable** - The requirement can be verified by Inspection, Analysis, Demonstration, or Test +8. [ ] **Correct** - The requirement accurately represents the stakeholder need +9. [ ] **Conforming** - The requirement conforms to the SyRS template and ISO 29148 standard + +## Cross-Section Consistency + +- [ ] No conflicting requirements between sections +- [ ] Terminology is consistent throughout the document +- [ ] Identifier numbering is sequential and gap-free +- [ ] All cross-references between sections are valid +- [ ] Performance requirements align with functional requirements +- [ ] Security requirements align with interface requirements +- [ ] Operational requirements align with system modes and states + +## Assumptions and Dependencies + +- [ ] All assumptions are explicitly stated +- [ ] Dependencies on external systems documented +- [ ] Dependencies on other project artifacts documented +- [ ] Risk implications of assumptions noted + +## Glossary + +- [ ] All technical terms defined +- [ ] All acronyms expanded +- [ ] All domain-specific terms explained +- [ ] Definitions are consistent with ISO 29148 terminology + +## Issues Found + +### Critical Issues (must fix before approval) + +- + +### Minor Issues (can be addressed in next baseline) + +- + +### Missing Information (to note for user) + +- + +## Completion Criteria + +All items in the following sections must be checked: + +- Document Structure Completeness +- Functional Requirements +- System Interfaces +- Performance Requirements +- Security Requirements +- Operational Requirements +- Constraints and Lifecycle +- Verification Plan +- Traceability +- Cross-Section Consistency + +The SyRS is complete when: + +1. All critical checklist items are satisfied +2. No critical issues remain +3. Every requirement passes the 9 quality criteria +4. Full traceability to StRS and PRD is established +5. Every requirement has an assigned verification method +6. User has reviewed and approved the specification diff --git a/src/bmm/workflows/3-solutioning/create-syrs/steps/step-01-init.md b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-01-init.md new file mode 100644 index 000000000..d69c2f7ed --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-01-init.md @@ -0,0 +1,207 @@ +--- +name: 'step-01-init' +description: 'Initialize SyRS workflow, discover and load required input documents (StRS, PRD, Architecture), create output file from template' + +# Path Definitions +workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-syrs' + +# File References +thisStepFile: './step-01-init.md' +nextStepFile: './step-02-system-context.md' +workflowFile: '{workflow_path}/workflow.md' +outputFile: '{planning_artifacts}/syrs-{{project_name}}.md' +syrsTemplate: '{workflow_path}/templates/syrs-template.md' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 1: SyRS Workflow Initialization + +## STEP GOAL: + +Initialize the System Requirements Specification workflow by discovering and loading all required input documents, validating prerequisites, and creating the output document from the SyRS template. + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- πŸ›‘ NEVER generate content without user input +- πŸ“– CRITICAL: Read the complete step file before taking any action +- πŸ”„ CRITICAL: When loading next step with 'C', ensure entire file is read +- πŸ“‹ YOU ARE A FACILITATOR, not a content generator +- βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- βœ… You are a System Architecture and Requirements Engineering specialist +- βœ… If you already have been given communication or persona patterns, continue to use those while playing this new role +- βœ… We engage in collaborative dialogue, not command-response +- βœ… You bring ISO 29148 compliance expertise and system-level requirements engineering +- βœ… User brings domain expertise, stakeholder context, and system knowledge + +### Step-Specific Rules: + +- 🎯 Focus ONLY on initialization and document discovery +- 🚫 FORBIDDEN to start writing requirements content in this step +- πŸ’¬ Discover and validate input documents +- πŸšͺ DETECT existing workflow state and handle continuation properly +- ⚠️ StRS and PRD are REQUIRED inputs - warn prominently if missing + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- πŸ’Ύ Initialize document and update frontmatter +- πŸ“– Set up frontmatter `stepsCompleted: [1]` before loading next step +- 🚫 FORBIDDEN to load next step until setup is complete + +## CONTEXT BOUNDARIES: + +- Variables from workflow.md are available in memory +- Previous context = what's in output document + frontmatter +- Don't assume knowledge from other steps +- Input document discovery happens in this step + +## INITIALIZATION SEQUENCE: + +### 1. Check for Existing Workflow + +First, check if the output document already exists: + +- Look for existing `{planning_artifacts}/*syrs*.md` +- If exists, read the complete file(s) including frontmatter +- If the document exists and has frontmatter with `stepsCompleted`: + - Determine the last completed step + - Report current state to user + - Ask if they want to resume from where they left off or restart + - If resume: Load the appropriate step file based on last completed step + - If restart: Continue with fresh workflow setup below +- If not exists, this is a fresh workflow + +### 2. Fresh Workflow Setup (If No Document) + +If no document exists or user chose to restart: + +#### A. Input Document Discovery + +Discover and load context documents using smart discovery. Documents can be in the following locations: +- {planning_artifacts}/** +- {output_folder}/** +- {product_knowledge}/** +- docs/** + +Also - when searching - documents can be a single markdown file, or a folder with an index and multiple files. For example, if searching for `*foo*.md` and not found, also search for a folder called *foo*/index.md (which indicates sharded content). + +Try to discover the following: + +**REQUIRED Documents:** +- Stakeholder Requirements Specification (`*strs*.md` or `*stakeholder-req*.md` or `*stakeholder*.md`) +- Product Requirements Document (`*prd*.md`) + +**RECOMMENDED Documents:** +- Architecture Document (`*architecture*.md`) +- Product Brief (`*brief*.md`) +- UX Design (`*ux-design*.md`) +- Research Documents (`*research*.md`) +- Project Context (`**/project-context.md`) + +Confirm what you have found with the user, along with asking if the user wants to provide anything else. Only after this confirmation will you proceed to follow the loading rules. + +**Loading Rules:** + +- Load ALL discovered files completely that the user confirmed or provided (no offset/limit) +- For sharded folders, load ALL files to get complete picture, using the index first to potentially know the potential of each document +- index.md is a guide to what's relevant whenever available +- Track all successfully loaded files in frontmatter `inputDocuments` array + +#### B. Validate Required Inputs + +Before proceeding, verify we have the essential inputs: + +**StRS Validation (REQUIRED):** + +- If no StRS found: "⚠️ WARNING: The StRS (Stakeholder Requirements Specification) was not found. The SyRS derives system requirements from stakeholder requirements. Without StRS, traceability to stakeholder needs will be incomplete. You can still proceed, but traceability gaps will be noted throughout." +- Strongly recommend running StRS workflow first or providing the StRS file path + +**PRD Validation (REQUIRED):** + +- If no PRD found: "⚠️ WARNING: The PRD (Product Requirements Document) was not found. The SyRS transforms PRD functional requirements into system-level requirements. Without PRD, the functional requirements section will lack source material." +- Strongly recommend running PRD workflow first or providing the PRD file path + +**Architecture Document (RECOMMENDED):** + +- If found: "Architecture document informs system constraints and interface decisions but does not replace the SyRS. I will reference it for technical context." +- If not found: "Architecture document not found. System interface and constraint sections will rely on collaborative discovery with you." + +**CRITICAL:** If BOTH StRS and PRD are missing, strongly advise the user to create them first. Allow proceeding only with explicit user acknowledgment of traceability gaps. + +#### C. Create Initial Document + +Copy the template from `{syrsTemplate}` to `{outputFile}`: + +1. Load the SyRS template +2. Create the output file at `{planning_artifacts}/syrs-{{project_name}}.md` +3. Replace `{{project_name}}` with the actual project name +4. Replace `{{user_name}}` with the config user_name +5. Replace `{{date}}` with the current date +6. Initialize frontmatter with workflow state and inputDocuments array + +#### D. Complete Initialization and Report + +Complete setup and report to user: + +**Document Setup:** + +- Created: `{planning_artifacts}/syrs-{{project_name}}.md` from SyRS template +- Initialized frontmatter with workflow state + +**Report:** +"Welcome {{user_name}}! I've set up your System Requirements Specification workspace for {{project_name}}. + +**ISO 29148 Clause 8 Compliance:** This workflow will guide you through creating a fully compliant SyRS with sections covering system context, functional requirements, interfaces, performance, security, operations, lifecycle, and verification. + +**Documents Found:** + +- StRS: {status - loaded or "Not found - RECOMMENDED"} +- PRD: {status - loaded or "Not found - RECOMMENDED"} +- Architecture: {status - loaded or "Not found - optional"} +- Other documents: {list of additional files loaded or "None found"} + +**Files loaded:** {list of specific file names} + +**Track:** Enterprise - includes full verification planning and TEA module integration + +Ready to begin system requirements engineering. Do you have any other documents you'd like me to include? + +[C] Continue to system context definition" + +## SUCCESS METRICS: + +βœ… Existing workflow detected and resume/restart offered correctly +βœ… Fresh workflow initialized with SyRS template and frontmatter +βœ… Input documents discovered and loaded using sharded-first logic +βœ… All discovered files tracked in frontmatter `inputDocuments` +βœ… StRS and PRD requirement validated and clearly communicated +βœ… Architecture document relationship to SyRS explained +βœ… User confirmed document setup and can proceed + +## FAILURE MODES: + +❌ Proceeding with fresh initialization when existing workflow exists +❌ Not warning about missing StRS or PRD +❌ Not updating frontmatter with discovered input documents +❌ Creating document without proper template +❌ Not checking sharded folders first before whole files +❌ Not reporting what documents were found to user +❌ Proceeding without validating required document status + +❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions +❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file +❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols + +## NEXT STEP: + +After user selects [C] to continue, only after ensuring all the template output has been created and frontmatter updated with `stepsCompleted: [1]`, then load `./step-02-system-context.md` to define the system context and introduction. + +Remember: Do NOT proceed to step-02 until user explicitly selects [C] and setup is confirmed! diff --git a/src/bmm/workflows/3-solutioning/create-syrs/steps/step-02-system-context.md b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-02-system-context.md new file mode 100644 index 000000000..71ace5607 --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-02-system-context.md @@ -0,0 +1,276 @@ +--- +name: 'step-02-system-context' +description: 'Define system purpose, scope, overview, boundaries, stakeholders, and references for SyRS Sections 1 and 2' + +# Path Definitions +workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-syrs' + +# File References +thisStepFile: './step-02-system-context.md' +nextStepFile: './step-03-functional-requirements.md' +workflowFile: '{workflow_path}/workflow.md' +outputFile: '{planning_artifacts}/syrs-{{project_name}}.md' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 2: System Context + +## STEP GOAL: + +Define the system purpose, scope, overview, boundaries, stakeholders, and references. This step populates ISO 29148 Clause 8 Sections 1 (Introduction) and 2 (References) of the SyRS. + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- πŸ›‘ NEVER generate content without user input +- πŸ“– CRITICAL: Read the complete step file before taking any action +- πŸ”„ CRITICAL: When loading next step with 'C', ensure entire file is read +- πŸ“‹ YOU ARE A FACILITATOR, not a content generator +- βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- βœ… You are a System Architecture and Requirements Engineering specialist +- βœ… If you already have been given communication or persona patterns, continue to use those while playing this new role +- βœ… We engage in collaborative dialogue, not command-response +- βœ… You bring ISO 29148 system context framing expertise +- βœ… User brings domain expertise and system knowledge + +### Step-Specific Rules: + +- 🎯 Focus ONLY on system context, scope, and introduction content +- 🚫 FORBIDDEN to start writing system requirements in this step +- πŸ’¬ Frame the system from a system engineering perspective, not product perspective +- πŸšͺ Differentiate between product-level context (PRD) and system-level context (SyRS) + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating system context content +- πŸ’Ύ ONLY save when user chooses C (Continue) +- πŸ“– Update frontmatter `stepsCompleted: [1, 2]` before loading next step +- 🚫 FORBIDDEN to load next step until C is selected + +## COLLABORATION MENUS (A/P/C): + +This step will generate content and present choices: + +- **A (Advanced Elicitation)**: Use discovery protocols to develop deeper insights about system boundaries and context +- **P (Party Mode)**: Bring multiple perspectives to analyze system context from different engineering angles +- **C (Continue)**: Save the content to the document and proceed to next step + +## PROTOCOL INTEGRATION: + +- When 'A' selected: Read fully and follow: {advancedElicitationTask} +- When 'P' selected: Read fully and follow: {partyModeWorkflow} +- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed +- User accepts/rejects protocol changes before proceeding + +## CONTEXT BOUNDARIES: + +- Current document and frontmatter from step 1 are available +- Input documents already loaded are in memory (StRS, PRD, Architecture, etc.) +- Focus on system-level context framing +- No requirements writing yet - pure system context definition + +## SYSTEM CONTEXT ANALYSIS SEQUENCE: + +### 1. Analyze Input Documents for System Context + +**From StRS (if available):** + +- Extract the overall system purpose from stakeholder perspective +- Identify system boundaries as defined by stakeholders +- Note stakeholder-identified constraints and operational environment +- Extract stakeholder groups and their relationship to the system + +**From PRD (if available):** + +- Extract product scope and map to system scope +- Identify system functions from product features +- Extract user types and characteristics +- Note any product-level assumptions that become system constraints + +**From Architecture (if available):** + +- Extract system boundary definitions +- Note external system interfaces +- Identify deployment environment characteristics +- Reference architectural decisions that constrain the system + +### 2. Define System Purpose (Section 1.1) + +Collaborate with user to define: + +- Why the system exists (its reason for being) +- What problem it solves at the system level +- How it relates to the broader organizational or business context +- The system's role within any larger system-of-systems + +### 3. Define System Scope (Section 1.2) + +Collaborate with user to define: + +- What is IN scope for this system +- What is explicitly OUT of scope +- System boundaries (what the system includes vs. external entities) +- The system's relationship to adjacent systems + +### 4. Define System Overview (Section 1.3) + +#### System Context (1.3.1): + +- Describe the system's operating environment +- Identify external entities the system interacts with +- Define the system boundary clearly +- Present a textual system context description (or suggest diagram contents) + +#### System Functions (1.3.2): + +- List the high-level system functions derived from PRD features +- Group functions logically +- Note which functions are primary vs. supporting +- Map functions to stakeholder needs from StRS + +#### User Characteristics (1.3.3): + +- Define user types from a system perspective +- Characterize user expertise levels +- Note user access patterns and frequency +- Define any user role hierarchies + +### 5. Define Glossary (Section 1.4) + +- Extract domain-specific terms from input documents +- Define ISO 29148 terminology used in the document +- Add system-specific acronyms and abbreviations +- Ensure alignment with StRS and PRD glossaries + +### 6. Compile References (Section 2) + +Create the references section listing: + +- ISO/IEC/IEEE 29148:2018 - Systems and software engineering - Life cycle processes - Requirements engineering +- StRS document (if available, with version/date) +- PRD document (if available, with version/date) +- Architecture document (if available, with version/date) +- Any other standards, regulations, or documents referenced +- Organizational standards or policies that apply + +### 7. Generate System Context Content + +Prepare the content to replace placeholders in Sections 1 and 2: + +#### Content Structure: + +```markdown +## 1. Introduction + +### 1.1 System Purpose + +{{system_purpose_content}} + +### 1.2 System Scope + +{{system_scope_content}} + +### 1.3 System Overview + +#### 1.3.1 System Context + +{{system_context_content}} + +#### 1.3.2 System Functions + +{{system_functions_content}} + +#### 1.3.3 User Characteristics + +{{user_characteristics_content}} + +### 1.4 Definitions, Acronyms, and Abbreviations + +{{glossary_content}} + +## 2. References + +{{references_content}} +``` + +### 8. Present Content and Menu + +Show the generated content and present choices: + +"I've drafted the System Context and Introduction sections based on your input documents and our discussion. + +**Here's what I'll add to the SyRS document (Sections 1 and 2):** + +[Show the complete markdown content from step 7] + +**What would you like to do?** +[A] Advanced Elicitation - Dive deeper into system boundary definition and context +[P] Party Mode - Analyze system context from different engineering perspectives +[C] Continue - Save this content and proceed to functional requirements" + +### 9. Handle Menu Selection + +#### If 'A' (Advanced Elicitation): + +- Read fully and follow: {advancedElicitationTask} with the current system context analysis +- Process enhanced insights about system boundaries and context +- Ask user: "Accept these enhancements to the system context? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'P' (Party Mode): + +- Read fully and follow: {partyModeWorkflow} with the current system context +- Process collaborative improvements to system understanding +- Ask user: "Accept these changes to the system context? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'C' (Continue): + +- Write the final content to Sections 1 and 2 in `{outputFile}` +- Update frontmatter: `stepsCompleted: [1, 2]` +- Load `{nextStepFile}` + +## APPEND TO DOCUMENT: + +When user selects 'C', replace the placeholder content in Sections 1 and 2 of the output document with the finalized content. + +## SUCCESS METRICS: + +βœ… System purpose clearly defined from system engineering perspective +βœ… System scope and boundaries explicitly stated +βœ… System context described with external entities identified +βœ… System functions mapped from PRD features +βœ… User characteristics defined at system level +βœ… Glossary initiated with domain and standard terms +βœ… References section complete with all applicable documents and standards +βœ… A/P/C menu presented and handled correctly +βœ… Content properly written to document when C selected + +## FAILURE MODES: + +❌ Confusing product-level context with system-level context +❌ Not defining system boundaries explicitly +❌ Missing external entities in system context +❌ Not referencing ISO 29148 in the references section +❌ Skipping glossary initialization +❌ Not presenting A/P/C menu after content generation + +❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions +❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file +❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load `./step-03-functional-requirements.md` to begin defining system functional requirements. + +Remember: Do NOT proceed to step-03 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/3-solutioning/create-syrs/steps/step-03-functional-requirements.md b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-03-functional-requirements.md new file mode 100644 index 000000000..75b780b49 --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-03-functional-requirements.md @@ -0,0 +1,282 @@ +--- +name: 'step-03-functional-requirements' +description: 'Transform PRD functional requirements into system-level functional requirements with Enterprise attributes for SyRS Section 3.1' + +# Path Definitions +workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-syrs' + +# File References +thisStepFile: './step-03-functional-requirements.md' +nextStepFile: './step-04-interface-requirements.md' +workflowFile: '{workflow_path}/workflow.md' +outputFile: '{planning_artifacts}/syrs-{{project_name}}.md' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 3: System Functional Requirements + +## STEP GOAL: + +Transform PRD functional requirements into system-level functional requirements. Map each PRD FR to system functions using the SYS-FUNC-### identifier format with Enterprise attributes (priority, source, V&V method). This step populates ISO 29148 Clause 8 Section 3.1 (Functional Requirements). + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- πŸ›‘ NEVER generate content without user input +- πŸ“– CRITICAL: Read the complete step file before taking any action +- πŸ”„ CRITICAL: When loading next step with 'C', ensure entire file is read +- πŸ“‹ YOU ARE A FACILITATOR, not a content generator +- βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- βœ… You are a System Architecture and Requirements Engineering specialist +- βœ… If you already have been given communication or persona patterns, continue to use those while playing this new role +- βœ… We engage in collaborative dialogue, not command-response +- βœ… You bring requirements transformation and decomposition expertise +- βœ… User brings domain knowledge and priority decisions + +### Step-Specific Rules: + +- 🎯 Focus ONLY on functional requirements (Section 3.1) +- 🚫 FORBIDDEN to write interface, performance, or other requirement types in this step +- πŸ’¬ Transform PRD FRs to system-level - do NOT copy them verbatim +- πŸšͺ Every system requirement MUST trace back to at least one PRD FR +- πŸ“ Each requirement must be atomic, verifiable, and unambiguous + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating functional requirements content +- πŸ’Ύ ONLY save when user chooses C (Continue) +- πŸ“– Update frontmatter `stepsCompleted: [1, 2, 3]` before loading next step +- 🚫 FORBIDDEN to load next step until C is selected + +## COLLABORATION MENUS (A/P/C): + +This step will generate content and present choices: + +- **A (Advanced Elicitation)**: Use discovery protocols to uncover hidden functional requirements or refine transformations +- **P (Party Mode)**: Bring multiple perspectives to evaluate requirement completeness and quality +- **C (Continue)**: Save the content to the document and proceed to next step + +## PROTOCOL INTEGRATION: + +- When 'A' selected: Read fully and follow: {advancedElicitationTask} +- When 'P' selected: Read fully and follow: {partyModeWorkflow} +- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed +- User accepts/rejects protocol changes before proceeding + +## CONTEXT BOUNDARIES: + +- Current document with Sections 1 and 2 completed from step 2 +- Input documents already loaded are in memory (StRS, PRD, Architecture) +- Focus on system-level functional requirement engineering +- Use system functions identified in Section 1.3.2 as a framework + +## FUNCTIONAL REQUIREMENTS ENGINEERING SEQUENCE: + +### 1. Extract PRD Functional Requirements + +From the loaded PRD document, systematically extract ALL functional requirements: + +**Extraction Method:** + +- Look for numbered items like "FR1:", "Functional Requirement 1:", or similar +- Identify requirement statements that describe what the system must DO +- Include user actions, system behaviors, and business rules +- Count total PRD FRs extracted + +Present to user: +"I've identified {{fr_count}} functional requirements from the PRD. Let me show you how I plan to transform these into system-level requirements." + +### 2. Explain Transformation Approach + +Explain the PRD-to-System requirement transformation: + +"**PRD-to-SyRS Transformation:** + +PRD requirements describe what the PRODUCT should do from a user/business perspective. +System requirements describe what the SYSTEM must do from an engineering perspective. + +**Example Transformation:** +- PRD FR: 'Users shall be able to search for products by name, category, or price range' +- System Requirements: + - SYS-FUNC-001: The system shall accept search queries containing text strings up to 256 characters + - SYS-FUNC-002: The system shall support search filtering by product category from the defined category taxonomy + - SYS-FUNC-003: The system shall support search filtering by price range with minimum and maximum values + - SYS-FUNC-004: The system shall return search results within the response time defined in SYS-PERF-001 + +Note: One PRD FR may produce multiple system requirements, and multiple PRD FRs may contribute to a single system function." + +### 3. Transform Requirements by System Function Group + +Organize system functional requirements by the system functions identified in Section 1.3.2: + +For each system function group: + +**Format each requirement as:** + +```markdown +**SYS-FUNC-###:** [Requirement statement - atomic, verifiable, unambiguous] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [PRD FR reference(s), e.g., "PRD-FR-001, PRD-FR-003"] | +| V&V Method | [Inspection / Analysis / Demonstration / Test] | +| Rationale | [Brief justification for this system requirement] | +``` + +**Requirement Quality Rules:** + +- **Atomic**: Each requirement addresses exactly one capability +- **Verifiable**: Must be testable or inspectable with clear pass/fail criteria +- **Unambiguous**: Only one possible interpretation +- **System-Level**: Expressed in terms of what the SYSTEM does, not the user experience +- **Shall Statements**: Use "The system shall..." phrasing consistently + +### 4. Map StRS Traceability + +If StRS is available, also note which StRS requirements each system requirement supports: + +- Add StRS reference to the Source attribute where applicable +- Note any StRS requirements that don't yet have system-level coverage +- Flag gaps for discussion with user + +### 5. Completeness Check + +After transforming all requirements, verify: + +- Every PRD FR has at least one corresponding SYS-FUNC requirement +- No PRD FR was overlooked or dropped +- System functions from Section 1.3.2 all have corresponding requirements +- Present a coverage summary: + +``` +**PRD FR Coverage Summary:** +- PRD FRs extracted: {{count}} +- System functional requirements created: {{count}} +- PRD FRs fully covered: {{count}} +- PRD FRs partially covered: {{count}} (list them) +- PRD FRs not covered: {{count}} (list them - REQUIRES ATTENTION) +``` + +### 6. Generate Functional Requirements Content + +Prepare the content to replace the Section 3.1 placeholder: + +#### Content Structure: + +```markdown +### 3.1 Functional Requirements + +#### 3.1.1 [System Function Group 1 Name] + +**SYS-FUNC-001:** [Requirement statement] + +| Attribute | Value | +|-----------|-------| +| Priority | [value] | +| Source | [PRD FR ref] | +| V&V Method | [method] | +| Rationale | [justification] | + +**SYS-FUNC-002:** [Requirement statement] +... + +#### 3.1.2 [System Function Group 2 Name] +... + +#### PRD FR Coverage Map + +| PRD FR | System Requirements | Coverage Status | +|--------|-------------------|-----------------| +| PRD-FR-001 | SYS-FUNC-001, SYS-FUNC-002 | Full | +| PRD-FR-002 | SYS-FUNC-003 | Full | +... +``` + +### 7. Present Content and Menu + +Show the generated content and present choices: + +"I've transformed the PRD functional requirements into {{sys_func_count}} system-level functional requirements organized by system function groups. + +**Coverage Summary:** +- {{prd_fr_count}} PRD FRs mapped to {{sys_func_count}} system requirements +- Coverage: {{coverage_percentage}}% + +**Here's what I'll add to the SyRS document (Section 3.1):** + +[Show the complete markdown content from step 6] + +**What would you like to do?** +[A] Advanced Elicitation - Uncover hidden requirements or refine transformations +[P] Party Mode - Evaluate requirement quality from different perspectives +[C] Continue - Save these requirements and proceed to interface requirements" + +### 8. Handle Menu Selection + +#### If 'A' (Advanced Elicitation): + +- Read fully and follow: {advancedElicitationTask} with the current functional requirements +- Process enhanced insights about missing or refined requirements +- Ask user: "Accept these enhancements to the functional requirements? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'P' (Party Mode): + +- Read fully and follow: {partyModeWorkflow} with the current functional requirements +- Process collaborative improvements to requirement quality +- Ask user: "Accept these changes to the functional requirements? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'C' (Continue): + +- Write the final content to Section 3.1 in `{outputFile}` +- Update frontmatter: `stepsCompleted: [1, 2, 3]` +- Load `{nextStepFile}` + +## APPEND TO DOCUMENT: + +When user selects 'C', replace the `{{functional_requirements}}` placeholder in Section 3.1 of the output document with the finalized content. + +## SUCCESS METRICS: + +βœ… All PRD functional requirements extracted and counted +βœ… PRD FRs transformed to system-level requirements (not copied verbatim) +βœ… Each requirement uses SYS-FUNC-### identifier format +βœ… Each requirement has Enterprise attributes (priority, source, V&V method, rationale) +βœ… Each requirement is atomic, verifiable, and unambiguous +βœ… PRD FR coverage map complete with no unexplained gaps +βœ… Requirements organized by system function groups +βœ… StRS traceability noted where applicable +βœ… A/P/C menu presented and handled correctly +βœ… Content properly written to document when C selected + +## FAILURE MODES: + +❌ Copying PRD FRs verbatim instead of transforming to system level +❌ Missing PRD FRs in the coverage map +❌ Creating non-atomic requirements (multiple capabilities in one statement) +❌ Using vague or non-verifiable language +❌ Missing Enterprise attributes on any requirement +❌ Not organizing by system function groups +❌ Not presenting A/P/C menu after content generation + +❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions +❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file +❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load `./step-04-interface-requirements.md` to define system interface requirements. + +Remember: Do NOT proceed to step-04 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/3-solutioning/create-syrs/steps/step-04-interface-requirements.md b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-04-interface-requirements.md new file mode 100644 index 000000000..d09ed3f18 --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-04-interface-requirements.md @@ -0,0 +1,334 @@ +--- +name: 'step-04-interface-requirements' +description: 'Define system interface requirements (user, hardware, software, communication) for SyRS Section 3.2' + +# Path Definitions +workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-syrs' + +# File References +thisStepFile: './step-04-interface-requirements.md' +nextStepFile: './step-05-quality-requirements.md' +workflowFile: '{workflow_path}/workflow.md' +outputFile: '{planning_artifacts}/syrs-{{project_name}}.md' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 4: System Interface Requirements + +## STEP GOAL: + +Define all system interface requirements covering user interfaces, hardware interfaces, software interfaces, and communication interfaces. These are more technically focused than PRD interfaces - centered on system integration and interoperability. This step populates ISO 29148 Clause 8 Section 3.2 (System Interfaces). + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- πŸ›‘ NEVER generate content without user input +- πŸ“– CRITICAL: Read the complete step file before taking any action +- πŸ”„ CRITICAL: When loading next step with 'C', ensure entire file is read +- πŸ“‹ YOU ARE A FACILITATOR, not a content generator +- βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- βœ… You are a System Architecture and Requirements Engineering specialist +- βœ… If you already have been given communication or persona patterns, continue to use those while playing this new role +- βœ… We engage in collaborative dialogue, not command-response +- βœ… You bring system integration and interface engineering expertise +- βœ… User brings knowledge of external systems and integration needs + +### Step-Specific Rules: + +- 🎯 Focus ONLY on interface requirements (Section 3.2) +- 🚫 FORBIDDEN to write performance, security, or operational requirements in this step +- πŸ’¬ Define interfaces at the SYSTEM integration level, not product feature level +- πŸšͺ Reference the system context and external entities from Section 1.3.1 +- πŸ“ Each interface requirement must specify protocols, data formats, and standards where applicable + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating interface requirements content +- πŸ’Ύ ONLY save when user chooses C (Continue) +- πŸ“– Update frontmatter `stepsCompleted: [1, 2, 3, 4]` before loading next step +- 🚫 FORBIDDEN to load next step until C is selected + +## COLLABORATION MENUS (A/P/C): + +This step will generate content and present choices: + +- **A (Advanced Elicitation)**: Use discovery protocols to uncover hidden interface requirements or integration complexities +- **P (Party Mode)**: Bring multiple perspectives to evaluate interface completeness (security, ops, dev) +- **C (Continue)**: Save the content to the document and proceed to next step + +## PROTOCOL INTEGRATION: + +- When 'A' selected: Read fully and follow: {advancedElicitationTask} +- When 'P' selected: Read fully and follow: {partyModeWorkflow} +- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed +- User accepts/rejects protocol changes before proceeding + +## CONTEXT BOUNDARIES: + +- Current document with Sections 1, 2, and 3.1 completed +- System context and external entities defined in Section 1.3.1 +- Functional requirements from Section 3.1 inform interface needs +- Architecture document (if loaded) provides technical interface details +- Focus on system-to-system and system-to-user integration points + +## INTERFACE REQUIREMENTS ENGINEERING SEQUENCE: + +### 1. Identify Interface Points + +Using the system context from Section 1.3.1 and the functional requirements from Section 3.1, identify all interface points: + +**Interface Discovery Sources:** + +- External entities identified in system context diagram/description +- System functions that require external communication +- Architecture document interface decisions (if available) +- PRD interface requirements (if any) +- StRS interface expectations (if available) + +Present to user: +"Based on the system context and functional requirements, I've identified the following interface categories. Let me walk through each one." + +### 2. User Interfaces (Section 3.2.1) + +Define system-level user interface requirements: + +**NOTE:** These are NOT UI design requirements (that's UX). These are system requirements about HOW the system presents information to and accepts input from users. + +For each user interface requirement: + +```markdown +**SYS-IF-###:** [Requirement statement about user interface capability] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [PRD FR ref or StRS ref] | +| V&V Method | [Inspection / Analysis / Demonstration / Test] | +| Interface Type | User Interface | +| Standards | [Applicable standards, e.g., WCAG 2.1 AA] | +``` + +**Consider:** +- Input methods and modalities the system must support +- Output formats and presentation methods the system must provide +- Accessibility requirements at system level +- Localization/internationalization requirements +- Error communication mechanisms + +### 3. Hardware Interfaces (Section 3.2.2) + +Define system-level hardware interface requirements: + +For each hardware interface requirement: + +```markdown +**SYS-IF-###:** [Requirement statement about hardware interface] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [PRD FR ref or StRS ref] | +| V&V Method | [Inspection / Analysis / Demonstration / Test] | +| Interface Type | Hardware Interface | +| Protocol | [Applicable protocol or standard] | +``` + +**Consider:** +- Physical device connections +- Sensor interfaces +- Display or output device requirements +- Storage device interfaces +- Network hardware requirements +- If not applicable, explicitly state: "No hardware interface requirements identified for this system." + +### 4. Software Interfaces (Section 3.2.3) + +Define system-level software interface requirements: + +For each software interface requirement: + +```markdown +**SYS-IF-###:** [Requirement statement about software interface] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [PRD FR ref or StRS ref] | +| V&V Method | [Inspection / Analysis / Demonstration / Test] | +| Interface Type | Software Interface | +| Protocol | [API protocol, e.g., REST, GraphQL, gRPC] | +| Data Format | [e.g., JSON, XML, Protocol Buffers] | +| External System | [Name of external system or service] | +``` + +**Consider:** +- Third-party API integrations +- Database interfaces +- Operating system interfaces +- Authentication/authorization service interfaces (OAuth, SAML, etc.) +- Cloud service interfaces (storage, compute, messaging) +- Monitoring and logging system interfaces +- CI/CD pipeline interfaces + +### 5. Communication Interfaces (Section 3.2.4) + +Define system-level communication interface requirements: + +For each communication interface requirement: + +```markdown +**SYS-IF-###:** [Requirement statement about communication interface] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [PRD FR ref or StRS ref] | +| V&V Method | [Inspection / Analysis / Demonstration / Test] | +| Interface Type | Communication Interface | +| Protocol | [e.g., HTTPS, WebSocket, MQTT, AMQP] | +| Standard | [Applicable communication standard] | +``` + +**Consider:** +- Network protocols required +- Real-time communication requirements +- Message queue/event bus interfaces +- Email/notification interfaces +- File transfer protocols +- Encryption and secure communication requirements + +### 6. Interface Consistency Check + +Verify interface requirements are consistent with: + +- Functional requirements in Section 3.1 (every function that communicates externally has an interface requirement) +- System context entities from Section 1.3.1 (every external entity has interface requirements) +- Architecture document interface decisions (if available) + +Present summary: +``` +**Interface Requirements Summary:** +- User Interfaces: {{count}} requirements +- Hardware Interfaces: {{count}} requirements (or N/A) +- Software Interfaces: {{count}} requirements +- Communication Interfaces: {{count}} requirements +- Total: {{total_count}} interface requirements + +**Coverage Check:** +- External entities with interface requirements: {{covered}}/{{total_entities}} +- Uncovered entities: {{list or "None"}} +``` + +### 7. Generate Interface Requirements Content + +Prepare the content to replace the Section 3.2 placeholders: + +#### Content Structure: + +```markdown +### 3.2 System Interfaces + +#### 3.2.1 User Interfaces + +[User interface requirements with SYS-IF-### format and attribute tables] + +#### 3.2.2 Hardware Interfaces + +[Hardware interface requirements or "No hardware interface requirements identified for this system."] + +#### 3.2.3 Software Interfaces + +[Software interface requirements with protocols and data formats] + +#### 3.2.4 Communication Interfaces + +[Communication interface requirements with protocols and standards] +``` + +### 8. Present Content and Menu + +Show the generated content and present choices: + +"I've defined {{total_if_count}} system interface requirements covering all identified integration points. + +**Interface Summary:** +- User Interfaces: {{ui_count}} requirements +- Hardware Interfaces: {{hw_count}} requirements +- Software Interfaces: {{sw_count}} requirements +- Communication Interfaces: {{comm_count}} requirements + +**Here's what I'll add to the SyRS document (Section 3.2):** + +[Show the complete markdown content from step 7] + +**What would you like to do?** +[A] Advanced Elicitation - Explore hidden interface complexities or integration challenges +[P] Party Mode - Evaluate interfaces from security, operations, and development perspectives +[C] Continue - Save these interface requirements and proceed to quality requirements" + +### 9. Handle Menu Selection + +#### If 'A' (Advanced Elicitation): + +- Read fully and follow: {advancedElicitationTask} with the current interface requirements +- Process enhanced insights about interface complexities +- Ask user: "Accept these enhancements to the interface requirements? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'P' (Party Mode): + +- Read fully and follow: {partyModeWorkflow} with the current interface requirements +- Process collaborative improvements to interface coverage +- Ask user: "Accept these changes to the interface requirements? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'C' (Continue): + +- Write the final content to Section 3.2 in `{outputFile}` +- Update frontmatter: `stepsCompleted: [1, 2, 3, 4]` +- Load `{nextStepFile}` + +## APPEND TO DOCUMENT: + +When user selects 'C', replace the interface placeholder sections (3.2.1 through 3.2.4) in the output document with the finalized content. + +## SUCCESS METRICS: + +βœ… All external entities from system context have interface requirements +βœ… Interface requirements organized by type (user, hardware, software, communication) +βœ… Each requirement uses SYS-IF-### identifier format +βœ… Each requirement has Enterprise attributes (priority, source, V&V method) +βœ… Protocols and data formats specified for software/communication interfaces +βœ… Standards referenced where applicable +βœ… Consistency with functional requirements verified +βœ… A/P/C menu presented and handled correctly +βœ… Content properly written to document when C selected + +## FAILURE MODES: + +❌ Confusing UI design requirements with system-level user interface requirements +❌ Missing interfaces for external entities identified in system context +❌ Not specifying protocols and data formats +❌ Missing Enterprise attributes on any requirement +❌ Not checking consistency with functional requirements +❌ Not presenting A/P/C menu after content generation + +❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions +❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file +❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load `./step-05-quality-requirements.md` to define quality and performance requirements. + +Remember: Do NOT proceed to step-05 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/3-solutioning/create-syrs/steps/step-05-quality-requirements.md b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-05-quality-requirements.md new file mode 100644 index 000000000..299d3be5a --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-05-quality-requirements.md @@ -0,0 +1,307 @@ +--- +name: 'step-05-quality-requirements' +description: 'Define performance, usability, and security requirements with measurable targets for SyRS Sections 3.3-3.5' + +# Path Definitions +workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-syrs' + +# File References +thisStepFile: './step-05-quality-requirements.md' +nextStepFile: './step-06-operational-requirements.md' +workflowFile: '{workflow_path}/workflow.md' +outputFile: '{planning_artifacts}/syrs-{{project_name}}.md' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 5: Quality & Performance Requirements + +## STEP GOAL: + +Define performance requirements with measurable targets, usability requirements, and security requirements at the system level. All quality requirements must have quantifiable acceptance criteria. This step populates ISO 29148 Clause 8 Sections 3.3 (Performance), 3.4 (Usability), and 3.5 (Security). + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- πŸ›‘ NEVER generate content without user input +- πŸ“– CRITICAL: Read the complete step file before taking any action +- πŸ”„ CRITICAL: When loading next step with 'C', ensure entire file is read +- πŸ“‹ YOU ARE A FACILITATOR, not a content generator +- βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- βœ… You are a System Architecture and Requirements Engineering specialist +- βœ… If you already have been given communication or persona patterns, continue to use those while playing this new role +- βœ… We engage in collaborative dialogue, not command-response +- βœ… You bring performance engineering and security requirements expertise +- βœ… User brings business context for quality targets and risk tolerance + +### Step-Specific Rules: + +- 🎯 Focus ONLY on performance, usability, and security requirements (Sections 3.3-3.5) +- 🚫 FORBIDDEN to write operational or lifecycle requirements in this step +- πŸ’¬ Every performance requirement MUST have a measurable target (specific number, not "fast" or "responsive") +- πŸšͺ Security requirements must be at system level, not implementation level +- πŸ“ Quality requirements must be verifiable with clear pass/fail criteria + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating quality requirements content +- πŸ’Ύ ONLY save when user chooses C (Continue) +- πŸ“– Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5]` before loading next step +- 🚫 FORBIDDEN to load next step until C is selected + +## COLLABORATION MENUS (A/P/C): + +This step will generate content and present choices: + +- **A (Advanced Elicitation)**: Use discovery protocols to refine performance targets or uncover security concerns +- **P (Party Mode)**: Bring multiple perspectives to evaluate quality requirements from ops, security, and UX angles +- **C (Continue)**: Save the content to the document and proceed to next step + +## PROTOCOL INTEGRATION: + +- When 'A' selected: Read fully and follow: {advancedElicitationTask} +- When 'P' selected: Read fully and follow: {partyModeWorkflow} +- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed +- User accepts/rejects protocol changes before proceeding + +## CONTEXT BOUNDARIES: + +- Current document with Sections 1, 2, 3.1, and 3.2 completed +- Functional and interface requirements inform quality targets +- PRD NFRs are primary source for quality requirements +- Architecture document may specify performance constraints +- Focus on measurable, verifiable quality attributes + +## QUALITY REQUIREMENTS ENGINEERING SEQUENCE: + +### 1. Extract Quality-Related Requirements from Sources + +**From PRD NFRs:** + +- Extract all performance-related NFRs +- Extract all usability-related NFRs +- Extract all security-related NFRs +- Note the business context and rationale for each + +**From StRS (if available):** + +- Extract stakeholder quality expectations +- Note any compliance or regulatory quality requirements +- Identify stakeholder-driven performance thresholds + +**From Architecture (if available):** + +- Note any performance constraints from architectural decisions +- Identify security architecture patterns that imply requirements +- Extract any capacity planning assumptions + +### 2. Performance Requirements (Section 3.3) + +Define measurable performance requirements: + +**Performance Categories to Address:** + +1. **Response Time** - How quickly the system must respond to specific operations +2. **Throughput** - How many operations the system must handle per time unit +3. **Capacity** - Maximum load the system must support (users, data, transactions) +4. **Scalability** - How the system must scale under increasing load +5. **Resource Utilization** - Constraints on CPU, memory, storage, bandwidth +6. **Availability** - Uptime requirements (e.g., 99.9% availability) +7. **Recovery Time** - How quickly the system must recover from failures + +For each performance requirement: + +```markdown +**SYS-PERF-###:** [Requirement statement with specific measurable target] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [PRD NFR ref or StRS ref] | +| V&V Method | [Test / Analysis] | +| Measurement | [How this will be measured, e.g., "p95 latency under load test"] | +| Target | [Specific numeric target, e.g., "< 200ms"] | +| Conditions | [Under what conditions, e.g., "with 1000 concurrent users"] | +``` + +**CRITICAL RULE:** Every performance requirement MUST have a specific numeric target. Reject vague terms: +- "The system shall respond quickly" - REJECTED +- "The system shall respond to API requests within 200ms at the 95th percentile under a load of 500 concurrent users" - ACCEPTED + +### 3. Usability Requirements (Section 3.4) + +Define measurable usability requirements: + +**Usability Categories to Address:** + +1. **Ease of Use** - Task completion metrics +2. **Learnability** - Time to proficiency for new users +3. **Accessibility** - WCAG compliance level and specific accommodations +4. **Error Tolerance** - System behavior when users make mistakes +5. **User Satisfaction** - Measurable satisfaction targets (if applicable) + +For each usability requirement: + +```markdown +**SYS-USAB-###:** [Requirement statement with measurable criteria] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [PRD NFR ref or StRS ref] | +| V&V Method | [Demonstration / Test / Inspection] | +| Measurement | [How this will be verified] | +``` + +**Consider:** +- Task completion rate targets +- Error rate thresholds +- Accessibility compliance levels (WCAG 2.1 Level A, AA, or AAA) +- Localization and internationalization requirements +- Help and documentation accessibility + +### 4. Security Requirements (Section 3.5) + +Define system-level security requirements: + +**Security Categories to Address:** + +1. **Authentication** - How the system verifies user identity +2. **Authorization** - How the system controls access to functions and data +3. **Data Protection** - How the system protects data at rest and in transit +4. **Audit & Logging** - What the system must record for security monitoring +5. **Compliance** - Regulatory security requirements (GDPR, HIPAA, SOC2, etc.) +6. **Vulnerability Management** - How the system must handle security updates +7. **Session Management** - How the system manages user sessions securely + +For each security requirement: + +```markdown +**SYS-SEC-###:** [Requirement statement at system level] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [PRD NFR ref, StRS ref, or Regulatory requirement] | +| V&V Method | [Test / Inspection / Analysis] | +| Standard | [Applicable security standard, e.g., "OWASP Top 10"] | +``` + +**CRITICAL RULE:** Security requirements must be at the system level, not implementation level: +- "The system shall use bcrypt for password hashing" - IMPLEMENTATION LEVEL (too specific) +- "The system shall store user credentials using a one-way cryptographic hash function that meets NIST SP 800-63B requirements" - SYSTEM LEVEL (correct) + +### 5. Cross-Reference Quality with Functional Requirements + +Verify that quality requirements align with functional requirements: + +- Performance requirements should reference the functions they apply to +- Security requirements should cover all sensitive functions identified in 3.1 +- Usability requirements should address user-facing functions + +### 6. Generate Quality Requirements Content + +Prepare the content to replace the Sections 3.3-3.5 placeholders: + +#### Content Structure: + +```markdown +### 3.3 Performance Requirements + +[Performance requirements with SYS-PERF-### format, each with measurable targets] + +### 3.4 Usability Requirements + +[Usability requirements with SYS-USAB-### format] + +### 3.5 Security Requirements + +[Security requirements with SYS-SEC-### format] +``` + +### 7. Present Content and Menu + +Show the generated content and present choices: + +"I've defined quality and performance requirements across three areas: + +**Quality Requirements Summary:** +- Performance: {{perf_count}} requirements (all with measurable targets) +- Usability: {{usab_count}} requirements +- Security: {{sec_count}} requirements + +**Here's what I'll add to the SyRS document (Sections 3.3-3.5):** + +[Show the complete markdown content from step 6] + +**What would you like to do?** +[A] Advanced Elicitation - Refine performance targets or explore security concerns +[P] Party Mode - Evaluate quality requirements from operations, security, and UX perspectives +[C] Continue - Save these quality requirements and proceed to operational requirements" + +### 8. Handle Menu Selection + +#### If 'A' (Advanced Elicitation): + +- Read fully and follow: {advancedElicitationTask} with the current quality requirements +- Process enhanced insights about performance targets or security concerns +- Ask user: "Accept these enhancements to the quality requirements? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'P' (Party Mode): + +- Read fully and follow: {partyModeWorkflow} with the current quality requirements +- Process collaborative improvements to quality requirements +- Ask user: "Accept these changes to the quality requirements? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'C' (Continue): + +- Write the final content to Sections 3.3-3.5 in `{outputFile}` +- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5]` +- Load `{nextStepFile}` + +## APPEND TO DOCUMENT: + +When user selects 'C', replace the placeholder content in Sections 3.3, 3.4, and 3.5 of the output document with the finalized content. + +## SUCCESS METRICS: + +βœ… All performance requirements have specific measurable targets (no vague language) +βœ… Performance requirements include conditions and measurement methods +βœ… Usability requirements address accessibility with compliance levels +βœ… Security requirements are at system level, not implementation level +βœ… Each requirement uses appropriate identifier format (SYS-PERF, SYS-USAB, SYS-SEC) +βœ… Each requirement has Enterprise attributes +βœ… Quality requirements cross-referenced with functional requirements +βœ… A/P/C menu presented and handled correctly +βœ… Content properly written to document when C selected + +## FAILURE MODES: + +❌ Using vague performance targets ("fast", "responsive", "scalable") +❌ Missing measurement methods for performance requirements +❌ Specifying implementation-level security instead of system-level +❌ Not addressing accessibility in usability requirements +❌ Missing Enterprise attributes on any requirement +❌ Not cross-referencing with functional requirements +❌ Not presenting A/P/C menu after content generation + +❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions +❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file +❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load `./step-06-operational-requirements.md` to define operational requirements. + +Remember: Do NOT proceed to step-06 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/3-solutioning/create-syrs/steps/step-06-operational-requirements.md b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-06-operational-requirements.md new file mode 100644 index 000000000..f02502e54 --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-06-operational-requirements.md @@ -0,0 +1,334 @@ +--- +name: 'step-06-operational-requirements' +description: 'Define system operations, modes and states, physical characteristics, and environment conditions for SyRS Sections 3.6-3.9' + +# Path Definitions +workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-syrs' + +# File References +thisStepFile: './step-06-operational-requirements.md' +nextStepFile: './step-07-constraints-lifecycle.md' +workflowFile: '{workflow_path}/workflow.md' +outputFile: '{planning_artifacts}/syrs-{{project_name}}.md' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 6: Operational Requirements + +## STEP GOAL: + +Define system operations and maintenance, system modes and states (operational, degraded, maintenance, emergency), physical characteristics (if applicable), and environment conditions. This step populates ISO 29148 Clause 8 Sections 3.6 (System Operations), 3.7 (System Modes and States), 3.8 (Physical Characteristics), and 3.9 (Environment Conditions). + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- πŸ›‘ NEVER generate content without user input +- πŸ“– CRITICAL: Read the complete step file before taking any action +- πŸ”„ CRITICAL: When loading next step with 'C', ensure entire file is read +- πŸ“‹ YOU ARE A FACILITATOR, not a content generator +- βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- βœ… You are a System Architecture and Requirements Engineering specialist +- βœ… If you already have been given communication or persona patterns, continue to use those while playing this new role +- βœ… We engage in collaborative dialogue, not command-response +- βœ… You bring operational systems engineering and resilience expertise +- βœ… User brings operational context, deployment environment knowledge, and operational procedures + +### Step-Specific Rules: + +- 🎯 Focus ONLY on operational requirements (Sections 3.6-3.9) +- 🚫 FORBIDDEN to write constraint or lifecycle requirements in this step +- πŸ’¬ System modes and states must include transition conditions +- πŸšͺ Physical characteristics should be marked N/A if truly not applicable (e.g., pure software systems) +- πŸ“ Operational requirements must be consistent with performance and security from previous step + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating operational requirements content +- πŸ’Ύ ONLY save when user chooses C (Continue) +- πŸ“– Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6]` before loading next step +- 🚫 FORBIDDEN to load next step until C is selected + +## COLLABORATION MENUS (A/P/C): + +This step will generate content and present choices: + +- **A (Advanced Elicitation)**: Use discovery protocols to explore edge cases in system operations and failure scenarios +- **P (Party Mode)**: Bring multiple perspectives to evaluate operational completeness (ops, SRE, infrastructure) +- **C (Continue)**: Save the content to the document and proceed to next step + +## PROTOCOL INTEGRATION: + +- When 'A' selected: Read fully and follow: {advancedElicitationTask} +- When 'P' selected: Read fully and follow: {partyModeWorkflow} +- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed +- User accepts/rejects protocol changes before proceeding + +## CONTEXT BOUNDARIES: + +- Current document with Sections 1, 2, 3.1-3.5 completed +- Performance and security requirements inform operational needs +- Architecture document may define deployment and operational patterns +- Focus on how the system operates, not what it does functionally + +## OPERATIONAL REQUIREMENTS ENGINEERING SEQUENCE: + +### 1. System Operations (Section 3.6) + +Define how the system is operated and maintained: + +**Operations Categories to Address:** + +1. **System Startup** - How the system is brought online +2. **System Shutdown** - How the system is gracefully stopped +3. **Backup and Recovery** - Data backup requirements and recovery procedures +4. **Monitoring** - What the system must expose for monitoring +5. **Alerting** - What conditions trigger alerts and to whom +6. **Maintenance Windows** - Requirements for planned maintenance +7. **Data Management** - Routine data operations (archival, cleanup, migration) + +For each operational requirement: + +```markdown +**SYS-OPS-###:** [Requirement statement about system operation] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [PRD NFR ref, StRS ref, or Operational need] | +| V&V Method | [Demonstration / Test / Inspection] | +``` + +**Consider:** +- Who operates the system (operations team, automated systems, end users)? +- What operational procedures are required? +- What level of operational expertise is assumed? +- What operational documentation must the system support? + +### 2. System Modes and States (Section 3.7) + +Define the system's operational modes and state transitions: + +**Standard Modes to Consider:** + +1. **Operational Mode** - Normal full-functionality operation +2. **Degraded Mode** - Reduced functionality when components fail +3. **Maintenance Mode** - System available for maintenance activities only +4. **Emergency Mode** - Critical situation handling +5. **Initialization Mode** - System startup/bootstrapping +6. **Shutdown Mode** - Graceful termination +7. **Standby Mode** - System ready but not actively processing (if applicable) + +For each mode: + +```markdown +**SYS-MODE-###:** [Requirement statement about system mode] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [PRD NFR ref, StRS ref, or Operational need] | +| V&V Method | [Demonstration / Test] | +| Mode | [Mode name] | +| Available Functions | [What functions are available in this mode] | +| Restricted Functions | [What functions are restricted in this mode] | +``` + +**State Transition Requirements:** + +Define the conditions under which the system transitions between modes: + +```markdown +**State Transition Table:** + +| From State | To State | Trigger Condition | Actions Required | +|------------|----------|-------------------|------------------| +| Operational | Degraded | [condition] | [actions] | +| Degraded | Operational | [condition] | [actions] | +| Operational | Maintenance | [condition] | [actions] | +| Maintenance | Operational | [condition] | [actions] | +| Any | Emergency | [condition] | [actions] | +| Emergency | Operational | [condition] | [actions] | +``` + +### 3. Physical Characteristics (Section 3.8) + +Define physical requirements of the system: + +**For software-only systems:** +"This system is a software system with no dedicated physical hardware requirements. Physical characteristics are governed by the deployment environment specified in Section 3.9." + +**For systems with physical components:** + +```markdown +**SYS-PHYS-###:** [Requirement statement about physical characteristic] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [StRS ref or Operational need] | +| V&V Method | [Inspection / Test] | +``` + +**Consider:** +- Size and weight constraints +- Power requirements +- Heat dissipation requirements +- Physical security requirements (locks, enclosures) +- Portability requirements +- Hardware component specifications + +### 4. Environment Conditions (Section 3.9) + +Define the environment in which the system must operate: + +**Environment Categories:** + +1. **Deployment Environment** - Where the system runs (cloud, on-premise, hybrid, edge) +2. **Operating System Requirements** - Supported OS versions +3. **Runtime Environment** - Required runtime dependencies +4. **Network Environment** - Network conditions the system must handle +5. **Geographic Distribution** - Multi-region or single-region deployment +6. **Regulatory Environment** - Data residency or jurisdictional requirements + +For each environment requirement: + +```markdown +**SYS-ENV-###:** [Requirement statement about environment condition] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [StRS ref, Architecture ref, or Operational need] | +| V&V Method | [Inspection / Analysis / Demonstration] | +``` + +**Consider:** +- Cloud provider requirements or constraints +- Container/orchestration requirements (Kubernetes, Docker) +- Network latency and bandwidth constraints +- Browser/client environment requirements +- Temperature, humidity, vibration (for physical deployments) + +### 5. Consistency Check + +Verify operational requirements are consistent with: + +- Performance requirements from Section 3.3 (e.g., availability targets match mode definitions) +- Security requirements from Section 3.5 (e.g., maintenance mode security) +- Functional requirements from Section 3.1 (e.g., functions available per mode) + +### 6. Generate Operational Requirements Content + +Prepare the content to replace the Sections 3.6-3.9 placeholders: + +#### Content Structure: + +```markdown +### 3.6 System Operations + +[Operational requirements with SYS-OPS-### format] + +### 3.7 System Modes and States + +[Mode requirements with SYS-MODE-### format] + +[State Transition Table] + +### 3.8 Physical Characteristics + +[Physical requirements with SYS-PHYS-### format, or N/A statement for software systems] + +### 3.9 Environment Conditions + +[Environment requirements with SYS-ENV-### format] +``` + +### 7. Present Content and Menu + +Show the generated content and present choices: + +"I've defined operational requirements covering system operations, modes, physical characteristics, and environment. + +**Operational Requirements Summary:** +- System Operations: {{ops_count}} requirements +- System Modes: {{mode_count}} modes defined with state transition table +- Physical Characteristics: {{phys_count}} requirements (or N/A) +- Environment Conditions: {{env_count}} requirements + +**Here's what I'll add to the SyRS document (Sections 3.6-3.9):** + +[Show the complete markdown content from step 6] + +**What would you like to do?** +[A] Advanced Elicitation - Explore edge cases in operations and failure scenarios +[P] Party Mode - Evaluate from operations, SRE, and infrastructure perspectives +[C] Continue - Save these operational requirements and proceed to constraints and lifecycle" + +### 8. Handle Menu Selection + +#### If 'A' (Advanced Elicitation): + +- Read fully and follow: {advancedElicitationTask} with the current operational requirements +- Process enhanced insights about operational edge cases +- Ask user: "Accept these enhancements to the operational requirements? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'P' (Party Mode): + +- Read fully and follow: {partyModeWorkflow} with the current operational requirements +- Process collaborative improvements to operational coverage +- Ask user: "Accept these changes to the operational requirements? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'C' (Continue): + +- Write the final content to Sections 3.6-3.9 in `{outputFile}` +- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6]` +- Load `{nextStepFile}` + +## APPEND TO DOCUMENT: + +When user selects 'C', replace the placeholder content in Sections 3.6, 3.7, 3.8, and 3.9 of the output document with the finalized content. + +## SUCCESS METRICS: + +βœ… System operations cover startup, shutdown, backup, monitoring, and maintenance +βœ… System modes defined with clear available/restricted functions per mode +βœ… State transition table complete with trigger conditions and actions +βœ… Physical characteristics addressed (requirements or explicit N/A) +βœ… Environment conditions cover deployment, runtime, and network requirements +βœ… Each requirement uses appropriate identifier format (SYS-OPS, SYS-MODE, SYS-PHYS, SYS-ENV) +βœ… Each requirement has Enterprise attributes +βœ… Consistency with performance and security requirements verified +βœ… A/P/C menu presented and handled correctly +βœ… Content properly written to document when C selected + +## FAILURE MODES: + +❌ Not defining system modes and state transitions +❌ Missing degraded mode definition (critical for resilience) +❌ Not addressing physical characteristics (even to say N/A) +❌ Vague environment conditions without specific targets +❌ Operational requirements inconsistent with performance targets +❌ Missing Enterprise attributes on any requirement +❌ Not presenting A/P/C menu after content generation + +❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions +❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file +❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load `./step-07-constraints-lifecycle.md` to define constraints and lifecycle requirements. + +Remember: Do NOT proceed to step-07 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/3-solutioning/create-syrs/steps/step-07-constraints-lifecycle.md b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-07-constraints-lifecycle.md new file mode 100644 index 000000000..aebbf4f92 --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-07-constraints-lifecycle.md @@ -0,0 +1,322 @@ +--- +name: 'step-07-constraints-lifecycle' +description: 'Define design constraints, information management, policy and regulation, and lifecycle sustainability for SyRS Sections 3.10-3.13' + +# Path Definitions +workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-syrs' + +# File References +thisStepFile: './step-07-constraints-lifecycle.md' +nextStepFile: './step-08-verification-plan.md' +workflowFile: '{workflow_path}/workflow.md' +outputFile: '{planning_artifacts}/syrs-{{project_name}}.md' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 7: Constraints & Lifecycle + +## STEP GOAL: + +Define design constraints at the system level, information management requirements, policy and regulation requirements, and lifecycle sustainability (maintenance, evolution, decommission). This step populates ISO 29148 Clause 8 Sections 3.10 (Information Management), 3.11 (Policies and Regulations), 3.12 (System Lifecycle Sustainability), and 3.13 (Design Constraints). + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- πŸ›‘ NEVER generate content without user input +- πŸ“– CRITICAL: Read the complete step file before taking any action +- πŸ”„ CRITICAL: When loading next step with 'C', ensure entire file is read +- πŸ“‹ YOU ARE A FACILITATOR, not a content generator +- βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- βœ… You are a System Architecture and Requirements Engineering specialist +- βœ… If you already have been given communication or persona patterns, continue to use those while playing this new role +- βœ… We engage in collaborative dialogue, not command-response +- βœ… You bring systems lifecycle engineering and governance expertise +- βœ… User brings organizational context, regulatory knowledge, and long-term vision + +### Step-Specific Rules: + +- 🎯 Focus ONLY on constraints and lifecycle requirements (Sections 3.10-3.13) +- 🚫 FORBIDDEN to write verification or traceability content in this step +- πŸ’¬ Lifecycle sustainability must address the entire system lifespan - not just initial development +- πŸšͺ Design constraints must not duplicate architectural decisions but complement them +- πŸ“ Policy requirements must reference specific regulations or standards + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating constraints and lifecycle content +- πŸ’Ύ ONLY save when user chooses C (Continue) +- πŸ“– Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]` before loading next step +- 🚫 FORBIDDEN to load next step until C is selected + +## COLLABORATION MENUS (A/P/C): + +This step will generate content and present choices: + +- **A (Advanced Elicitation)**: Use discovery protocols to explore regulatory landscape or lifecycle implications +- **P (Party Mode)**: Bring multiple perspectives to evaluate constraints from governance, legal, and engineering angles +- **C (Continue)**: Save the content to the document and proceed to next step + +## PROTOCOL INTEGRATION: + +- When 'A' selected: Read fully and follow: {advancedElicitationTask} +- When 'P' selected: Read fully and follow: {partyModeWorkflow} +- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed +- User accepts/rejects protocol changes before proceeding + +## CONTEXT BOUNDARIES: + +- Current document with Sections 1, 2, 3.1-3.9 completed +- All previous requirements inform constraint and lifecycle decisions +- Architecture document may define technology constraints +- StRS may specify organizational and regulatory constraints +- Focus on long-term system viability and governance + +## CONSTRAINTS AND LIFECYCLE ENGINEERING SEQUENCE: + +### 1. Information Management (Section 3.10) + +Define how the system manages information throughout its lifecycle: + +**Information Management Categories:** + +1. **Data Retention** - How long different data types must be retained +2. **Data Archival** - Requirements for moving data to long-term storage +3. **Data Disposal** - Requirements for secure data deletion/destruction +4. **Data Classification** - Categories of data sensitivity and handling rules +5. **Data Integrity** - Requirements for ensuring data accuracy and consistency +6. **Data Migration** - Requirements for moving data between system versions +7. **Backup and Restoration** - Data backup frequency and restoration requirements + +For each information management requirement: + +```markdown +**SYS-INFO-###:** [Requirement statement about information management] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [StRS ref, Regulatory ref, or Business need] | +| V&V Method | [Inspection / Analysis / Demonstration / Test] | +``` + +### 2. Policies and Regulations (Section 3.11) + +Define policy and regulatory requirements the system must comply with: + +**Policy Categories to Address:** + +1. **Data Privacy Regulations** - GDPR, CCPA, LGPD, PIPEDA, etc. +2. **Industry Regulations** - HIPAA, PCI-DSS, SOX, etc. as applicable +3. **Accessibility Standards** - ADA, Section 508, EN 301 549, etc. +4. **Organizational Policies** - Internal security, data handling, development policies +5. **Export Control** - If applicable, ITAR, EAR, etc. +6. **Licensing** - Open source licensing compliance requirements + +For each policy/regulation requirement: + +```markdown +**SYS-POL-###:** [Requirement statement about policy or regulation compliance] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [Specific regulation, e.g., "GDPR Article 17"] | +| V&V Method | [Inspection / Analysis / Audit] | +| Regulation | [Full regulation name and version] | +``` + +**NOTE:** If no specific regulations apply, explicitly state: "No specific regulatory requirements have been identified for this system. The following organizational policies apply: [list or 'None identified']." + +### 3. System Lifecycle Sustainability (Section 3.12) + +Define requirements for the system's long-term viability: + +**Lifecycle Categories:** + +1. **Maintenance** - How the system must support ongoing maintenance + - Corrective maintenance (bug fixing) + - Adaptive maintenance (environment changes) + - Perfective maintenance (enhancements) + - Preventive maintenance (technical debt reduction) + +2. **Evolution** - How the system must support planned growth + - Extensibility requirements + - Modularity requirements + - API versioning requirements + - Feature toggling capabilities + +3. **Decommission** - How the system must support end-of-life + - Data export requirements + - Migration path requirements + - Graceful degradation during sunset period + - Data preservation obligations + +For each lifecycle requirement: + +```markdown +**SYS-LIFE-###:** [Requirement statement about lifecycle sustainability] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [StRS ref, Organizational policy, or Engineering best practice] | +| V&V Method | [Inspection / Analysis / Demonstration] | +| Lifecycle Phase | [Maintenance / Evolution / Decommission] | +``` + +### 4. Design Constraints (Section 3.13) + +Define constraints that limit the design solution space: + +**Constraint Categories:** + +1. **Technology Constraints** - Required or prohibited technologies +2. **Standards Compliance** - Required technical standards (coding standards, API standards) +3. **Organizational Constraints** - Imposed by the organization (approved vendors, platforms) +4. **Interoperability Constraints** - Must work with specific existing systems +5. **Resource Constraints** - Budget, timeline, team size limitations on design +6. **Legacy Constraints** - Requirements to maintain backward compatibility + +For each design constraint: + +```markdown +**SYS-CON-###:** [Constraint statement] + +| Attribute | Value | +|-----------|-------| +| Priority | [Critical / High / Medium / Low] | +| Source | [Architecture ref, StRS ref, or Organizational policy] | +| V&V Method | [Inspection / Analysis] | +| Constraint Type | [Technology / Standard / Organizational / Interoperability / Resource / Legacy] | +``` + +**NOTE:** Design constraints should complement, not duplicate, architectural decisions. If the Architecture document specifies technology choices, reference them here as constraints on the system design rather than restating them. + +### 5. Cross-Reference Check + +Verify constraints and lifecycle requirements are consistent with: + +- Security requirements from Section 3.5 (data handling, compliance) +- Operational requirements from Sections 3.6-3.9 (maintenance, environment) +- Interface requirements from Section 3.2 (interoperability constraints) +- Architecture document decisions (if available) + +### 6. Generate Constraints and Lifecycle Content + +Prepare the content to replace the Sections 3.10-3.13 placeholders: + +#### Content Structure: + +```markdown +### 3.10 Information Management + +[Information management requirements with SYS-INFO-### format] + +### 3.11 Policies and Regulations + +[Policy and regulation requirements with SYS-POL-### format] + +### 3.12 System Lifecycle Sustainability + +#### 3.12.1 Maintenance Requirements +[Maintenance requirements with SYS-LIFE-### format] + +#### 3.12.2 Evolution Requirements +[Evolution requirements with SYS-LIFE-### format] + +#### 3.12.3 Decommission Requirements +[Decommission requirements with SYS-LIFE-### format] + +### 3.13 Design Constraints + +[Design constraint requirements with SYS-CON-### format] +``` + +### 7. Present Content and Menu + +Show the generated content and present choices: + +"I've defined constraints and lifecycle requirements covering information management, policies, sustainability, and design constraints. + +**Constraints & Lifecycle Summary:** +- Information Management: {{info_count}} requirements +- Policies and Regulations: {{pol_count}} requirements +- Lifecycle Sustainability: {{life_count}} requirements (maintenance: {{m}}, evolution: {{e}}, decommission: {{d}}) +- Design Constraints: {{con_count}} constraints + +**Here's what I'll add to the SyRS document (Sections 3.10-3.13):** + +[Show the complete markdown content from step 6] + +**What would you like to do?** +[A] Advanced Elicitation - Explore regulatory landscape or lifecycle implications in depth +[P] Party Mode - Evaluate constraints from governance, legal, and engineering perspectives +[C] Continue - Save these requirements and proceed to verification planning" + +### 8. Handle Menu Selection + +#### If 'A' (Advanced Elicitation): + +- Read fully and follow: {advancedElicitationTask} with the current constraints and lifecycle requirements +- Process enhanced insights about regulatory or lifecycle concerns +- Ask user: "Accept these enhancements to the constraints and lifecycle requirements? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'P' (Party Mode): + +- Read fully and follow: {partyModeWorkflow} with the current constraints and lifecycle requirements +- Process collaborative improvements to constraint coverage +- Ask user: "Accept these changes to the constraints and lifecycle requirements? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'C' (Continue): + +- Write the final content to Sections 3.10-3.13 in `{outputFile}` +- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7]` +- Load `{nextStepFile}` + +## APPEND TO DOCUMENT: + +When user selects 'C', replace the placeholder content in Sections 3.10, 3.11, 3.12, and 3.13 of the output document with the finalized content. + +## SUCCESS METRICS: + +βœ… Information management covers retention, archival, disposal, and integrity +βœ… Policy requirements reference specific regulations and standards +βœ… Lifecycle sustainability addresses maintenance, evolution, AND decommission +βœ… Design constraints complement (not duplicate) architectural decisions +βœ… Each requirement uses appropriate identifier format (SYS-INFO, SYS-POL, SYS-LIFE, SYS-CON) +βœ… Each requirement has Enterprise attributes +βœ… Constraints cross-referenced with architecture document +βœ… A/P/C menu presented and handled correctly +βœ… Content properly written to document when C selected + +## FAILURE MODES: + +❌ Ignoring lifecycle sustainability (common oversight) +❌ Not addressing decommission requirements +❌ Vague policy requirements without specific regulation references +❌ Duplicating architectural decisions as constraints +❌ Missing information management for data-intensive systems +❌ Missing Enterprise attributes on any requirement +❌ Not presenting A/P/C menu after content generation + +❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions +❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file +❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load `./step-08-verification-plan.md` to create the verification plan for all system requirements. + +Remember: Do NOT proceed to step-08 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/3-solutioning/create-syrs/steps/step-08-verification-plan.md b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-08-verification-plan.md new file mode 100644 index 000000000..1b87120a8 --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-08-verification-plan.md @@ -0,0 +1,359 @@ +--- +name: 'step-08-verification-plan' +description: 'Create verification plan assigning verification methods to every system requirement, with TEA module integration for Enterprise track. SyRS Section 4' + +# Path Definitions +workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-syrs' + +# File References +thisStepFile: './step-08-verification-plan.md' +nextStepFile: './step-09-review-complete.md' +workflowFile: '{workflow_path}/workflow.md' +outputFile: '{planning_artifacts}/syrs-{{project_name}}.md' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 8: Verification Plan + +## STEP GOAL: + +Create a comprehensive verification plan that assigns a verification method to EVERY system requirement defined in Sections 3.1 through 3.13. Build the verification summary table and note TEA (Test, Evaluate, Approve) module integration for the Enterprise track. This step populates ISO 29148 Clause 8 Section 4 (Verification) and also populates Section 5 (Assumptions and Dependencies). + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- πŸ›‘ NEVER generate content without user input +- πŸ“– CRITICAL: Read the complete step file before taking any action +- πŸ”„ CRITICAL: When loading next step with 'C', ensure entire file is read +- πŸ“‹ YOU ARE A FACILITATOR, not a content generator +- βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- βœ… You are a System Architecture and Requirements Engineering specialist +- βœ… If you already have been given communication or persona patterns, continue to use those while playing this new role +- βœ… We engage in collaborative dialogue, not command-response +- βœ… You bring verification and validation engineering expertise +- βœ… User brings context on testing capabilities and organizational V&V practices + +### Step-Specific Rules: + +- 🎯 Focus ONLY on verification planning (Section 4) and assumptions (Section 5) +- 🚫 FORBIDDEN to modify existing requirements in Sections 3.x +- πŸ’¬ EVERY requirement must have a verification method - no exceptions +- πŸšͺ Verification methods must be appropriate to the requirement type +- πŸ“ The verification summary table must be complete and gap-free + +## EXECUTION PROTOCOLS: + +- 🎯 Show your analysis before taking any action +- ⚠️ Present A/P/C menu after generating verification plan content +- πŸ’Ύ ONLY save when user chooses C (Continue) +- πŸ“– Update frontmatter `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]` before loading next step +- 🚫 FORBIDDEN to load next step until C is selected + +## COLLABORATION MENUS (A/P/C): + +This step will generate content and present choices: + +- **A (Advanced Elicitation)**: Use discovery protocols to refine verification approaches or explore testing strategies +- **P (Party Mode)**: Bring multiple perspectives to evaluate verification completeness (QA, test, ops) +- **C (Continue)**: Save the content to the document and proceed to next step + +## PROTOCOL INTEGRATION: + +- When 'A' selected: Read fully and follow: {advancedElicitationTask} +- When 'P' selected: Read fully and follow: {partyModeWorkflow} +- PROTOCOLS always return to display this step's A/P/C menu after the A or P have completed +- User accepts/rejects protocol changes before proceeding + +## CONTEXT BOUNDARIES: + +- Current document with all Sections 1 through 3.13 completed +- All system requirements are defined and available for verification planning +- V&V Method attributes already assigned on each requirement serve as initial input +- Focus on consolidating and validating verification approach + +## VERIFICATION PLANNING SEQUENCE: + +### 1. Explain Verification Methods + +Present the four standard verification methods per ISO 29148: + +"**Verification Methods (ISO 29148):** + +1. **Inspection** - Visual examination of the system, documentation, or code to verify compliance + - Best for: Design constraints, documentation requirements, coding standards, policy compliance + - Example: Verifying that the system uses the required encryption algorithm by code review + +2. **Analysis** - Processing of accumulated data using mathematical or statistical methods + - Best for: Performance under theoretical conditions, capacity planning, resource utilization + - Example: Analyzing system architecture to verify scalability requirements + +3. **Demonstration** - Operation of the system showing observable functional behavior + - Best for: User interface requirements, workflow requirements, operational procedures + - Example: Demonstrating that the system can transition from operational to maintenance mode + +4. **Test** - Exercising the system under controlled conditions and comparing results to criteria + - Best for: Functional requirements, performance targets, security requirements + - Example: Load testing to verify the system handles 1000 concurrent users with <200ms response time" + +### 2. Review All Requirements and V&V Assignments + +Systematically review every requirement across all sections: + +**For each requirement section, verify the V&V method is appropriate:** + +| Requirement Category | Typical V&V Methods | +|---------------------|-------------------| +| SYS-FUNC-### (Functional) | Test, Demonstration | +| SYS-IF-### (Interface) | Test, Demonstration, Inspection | +| SYS-PERF-### (Performance) | Test, Analysis | +| SYS-USAB-### (Usability) | Demonstration, Test | +| SYS-SEC-### (Security) | Test, Inspection, Analysis | +| SYS-OPS-### (Operations) | Demonstration, Test | +| SYS-MODE-### (Modes) | Demonstration, Test | +| SYS-PHYS-### (Physical) | Inspection, Test | +| SYS-ENV-### (Environment) | Inspection, Analysis, Demonstration | +| SYS-INFO-### (Info Mgmt) | Inspection, Test, Analysis | +| SYS-POL-### (Policy) | Inspection, Analysis | +| SYS-LIFE-### (Lifecycle) | Inspection, Analysis, Demonstration | +| SYS-CON-### (Constraints) | Inspection, Analysis | + +**Validation Rules:** + +- Every requirement MUST have at least one verification method +- The method must be achievable with available resources +- Prefer Test for requirements with measurable acceptance criteria +- Use Inspection for requirements verified by examination +- Use Analysis for requirements verified by calculation or modeling +- Use Demonstration for requirements verified by showing behavior + +### 3. Define Verification Methods Detail (Section 4.1) + +For each verification method used, define the approach: + +```markdown +### 4.1 Verification Methods + +#### 4.1.1 Inspection +**Scope:** [Which requirement categories will be verified by inspection] +**Approach:** [How inspections will be conducted - code review, document review, etc.] +**Criteria:** [What constitutes pass/fail for inspections] + +#### 4.1.2 Analysis +**Scope:** [Which requirement categories will be verified by analysis] +**Approach:** [How analyses will be conducted - modeling, simulation, calculation] +**Criteria:** [What constitutes pass/fail for analyses] + +#### 4.1.3 Demonstration +**Scope:** [Which requirement categories will be verified by demonstration] +**Approach:** [How demonstrations will be conducted - operational scenarios, walkthroughs] +**Criteria:** [What constitutes pass/fail for demonstrations] + +#### 4.1.4 Test +**Scope:** [Which requirement categories will be verified by test] +**Approach:** [How tests will be conducted - unit, integration, system, acceptance] +**Criteria:** [What constitutes pass/fail for tests] +``` + +### 4. Build Verification Summary Table (Section 4.2) + +Create the comprehensive verification summary table: + +```markdown +### 4.2 Verification Summary Table + +| Req ID | Requirement Summary | V&V Method | V&V Level | V&V Criteria | Status | +|--------|-------------------|------------|-----------|--------------|--------| +| SYS-FUNC-001 | [Brief summary] | Test | System Test | [Pass criteria] | Planned | +| SYS-FUNC-002 | [Brief summary] | Test | Integration Test | [Pass criteria] | Planned | +| SYS-IF-001 | [Brief summary] | Demonstration | System Demo | [Pass criteria] | Planned | +| SYS-PERF-001 | [Brief summary] | Test | Performance Test | [Pass criteria] | Planned | +| SYS-SEC-001 | [Brief summary] | Test | Security Test | [Pass criteria] | Planned | +... +``` + +**The table MUST include EVERY requirement from Sections 3.1 through 3.13. No gaps allowed.** + +**V&V Level Options:** +- Unit Test +- Integration Test +- System Test +- Acceptance Test +- Performance Test +- Security Test +- Code Review +- Design Review +- Architecture Review +- Operational Demonstration +- System Demo + +### 5. TEA Module Integration (Enterprise Track) + +For Enterprise track, note TEA module integration: + +```markdown +### 4.3 TEA Module Integration + +**Track:** Enterprise + +The verification plan integrates with the BMAD Enterprise TEA (Test, Evaluate, Approve) module: + +- **Test Phase:** Automated and manual test execution per the verification summary table +- **Evaluate Phase:** Assessment of test results against pass/fail criteria for each requirement +- **Approve Phase:** Formal approval workflow for verification results with sign-off authority + +**TEA Integration Points:** +- Each requirement's verification status will be tracked in the RTM (Requirements Traceability Matrix) +- Verification results feed into the project's quality gate decisions +- Failed verifications trigger the defect management workflow +- Verification completion is a prerequisite for baseline approval +``` + +### 6. Document Assumptions and Dependencies (Section 5) + +Compile all assumptions and dependencies identified throughout the workflow: + +```markdown +## 5. Assumptions and Dependencies + +### 5.1 Assumptions + +[List all assumptions that underpin the requirements in this SyRS] +- [Assumption about user behavior] +- [Assumption about technology availability] +- [Assumption about organizational readiness] +... + +### 5.2 Dependencies + +[List all external dependencies] +- [Dependency on external system availability] +- [Dependency on third-party service] +- [Dependency on organizational decision] +... + +### 5.3 Risk Implications + +[Note risks that arise from key assumptions] +| Assumption | Risk if Invalid | Mitigation | +|-----------|----------------|------------| +| [assumption] | [risk] | [mitigation approach] | +... +``` + +### 7. Verification Completeness Check + +Verify the plan is complete: + +``` +**Verification Plan Completeness:** +- Total requirements: {{total_req_count}} +- Requirements with verification method: {{verified_count}} +- Requirements WITHOUT verification method: {{unverified_count}} (MUST BE ZERO) + +**Verification Method Distribution:** +- Inspection: {{inspection_count}} requirements +- Analysis: {{analysis_count}} requirements +- Demonstration: {{demo_count}} requirements +- Test: {{test_count}} requirements + +**Coverage: {{coverage_percentage}}%** (must be 100%) +``` + +### 8. Generate Verification Plan Content + +Prepare the content to replace the Section 4 and Section 5 placeholders. + +### 9. Present Content and Menu + +Show the generated content and present choices: + +"I've created the verification plan covering all {{total_req_count}} system requirements. + +**Verification Plan Summary:** +- Inspection: {{inspection_count}} requirements +- Analysis: {{analysis_count}} requirements +- Demonstration: {{demo_count}} requirements +- Test: {{test_count}} requirements +- Coverage: 100% (all requirements have verification methods) + +**TEA Module:** Enterprise track integration documented + +**Assumptions & Dependencies:** {{assumption_count}} assumptions and {{dependency_count}} dependencies documented + +**Here's what I'll add to the SyRS document (Sections 4 and 5):** + +[Show the complete markdown content] + +**What would you like to do?** +[A] Advanced Elicitation - Refine verification approaches or explore testing strategies +[P] Party Mode - Evaluate verification plan from QA, test, and operations perspectives +[C] Continue - Save the verification plan and proceed to final review" + +### 10. Handle Menu Selection + +#### If 'A' (Advanced Elicitation): + +- Read fully and follow: {advancedElicitationTask} with the current verification plan +- Process enhanced insights about verification strategies +- Ask user: "Accept these enhancements to the verification plan? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'P' (Party Mode): + +- Read fully and follow: {partyModeWorkflow} with the current verification plan +- Process collaborative improvements to verification coverage +- Ask user: "Accept these changes to the verification plan? (y/n)" +- If yes: Update content with improvements, then return to A/P/C menu +- If no: Keep original content, then return to A/P/C menu + +#### If 'C' (Continue): + +- Write the final content to Sections 4 and 5 in `{outputFile}` +- Update frontmatter: `stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8]` +- Load `{nextStepFile}` + +## APPEND TO DOCUMENT: + +When user selects 'C', replace the placeholder content in Sections 4 and 5 of the output document with the finalized content. + +## SUCCESS METRICS: + +βœ… Every system requirement (100%) has an assigned verification method +βœ… Verification methods are appropriate to requirement types +βœ… Verification summary table is complete with all requirements listed +βœ… V&V levels specified for each requirement +βœ… Pass/fail criteria defined for each verification +βœ… TEA module integration documented for Enterprise track +βœ… Assumptions and dependencies compiled from all steps +βœ… Risk implications of key assumptions noted +βœ… A/P/C menu presented and handled correctly +βœ… Content properly written to document when C selected + +## FAILURE MODES: + +❌ Missing verification methods for any requirement (CRITICAL - 100% coverage required) +❌ Inappropriate verification method for requirement type +❌ Incomplete verification summary table +❌ Missing TEA module integration for Enterprise track +❌ Not documenting assumptions and dependencies +❌ Vague pass/fail criteria +❌ Missing Enterprise attributes on any requirement +❌ Not presenting A/P/C menu after content generation + +❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions +❌ **CRITICAL**: Proceeding with 'C' without fully reading and understanding the next step file +❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols + +## NEXT STEP: + +After user selects 'C' and content is saved to document, load `./step-09-review-complete.md` to perform the final review and complete the workflow. + +Remember: Do NOT proceed to step-09 until user explicitly selects 'C' from the A/P/C menu and content is saved! diff --git a/src/bmm/workflows/3-solutioning/create-syrs/steps/step-09-review-complete.md b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-09-review-complete.md new file mode 100644 index 000000000..59eba35f8 --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/steps/step-09-review-complete.md @@ -0,0 +1,387 @@ +--- +name: 'step-09-review-complete' +description: 'Final review against ISO 29148 Clause 8, cross-section consistency check, traceability verification, completeness assessment, and workflow completion' + +# Path Definitions +workflow_path: '{project-root}/_bmad/bmm/workflows/3-solutioning/create-syrs' + +# File References +thisStepFile: './step-09-review-complete.md' +workflowFile: '{workflow_path}/workflow.md' +outputFile: '{planning_artifacts}/syrs-{{project_name}}.md' +checklistFile: '{workflow_path}/checklist.md' + +# Task References +advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml' +partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md' +--- + +# Step 9: Final Review & Completion + +## STEP GOAL: + +Perform a systematic final review of the complete SyRS against ISO 29148 Clause 8 requirements, check cross-section consistency, verify traceability to StRS and PRD, assess completeness, populate traceability matrices, and complete the workflow. + +## MANDATORY EXECUTION RULES (READ FIRST): + +### Universal Rules: + +- πŸ›‘ NEVER generate content without user input +- πŸ“– CRITICAL: Read the complete step file before taking any action +- πŸ“‹ YOU ARE A FACILITATOR, not a content generator +- βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### Role Reinforcement: + +- βœ… You are a System Architecture and Requirements Engineering specialist +- βœ… If you already have been given communication or persona patterns, continue to use those while playing this new role +- βœ… We engage in collaborative dialogue, not command-response +- βœ… You bring ISO 29148 compliance review and quality assurance expertise +- βœ… User brings final approval authority and domain validation + +### Step-Specific Rules: + +- 🎯 Focus on comprehensive review, traceability completion, and workflow finalization +- 🚫 FORBIDDEN to skip any review checks +- πŸ’¬ Present review results transparently including any issues found +- πŸšͺ This is the FINAL step - ensure the document is complete before approval + +## EXECUTION PROTOCOLS: + +- 🎯 Load and apply the checklist systematically +- βœ… Present review findings with clear pass/fail status +- πŸ“– Update frontmatter to final state upon completion +- 🚫 THIS STEP CONTAINS THE FINAL REVIEW - handle with the R/F/A menu + +## CONTEXT BOUNDARIES: + +- Complete SyRS document with all sections populated +- All input documents still available for traceability verification +- Checklist available for systematic review +- Focus on review, traceability completion, and final approval + +## FINAL REVIEW SEQUENCE: + +### 1. Load Checklist + +Read the checklist from `{checklistFile}` to guide the systematic review. + +### 2. Build Traceability Matrices (Section 6) + +Before the review, complete the traceability section: + +#### Traceability to StRS (Section 6.1) + +If StRS was available, create the traceability matrix: + +```markdown +### 6.1 Traceability to StRS + +| StRS Requirement | System Requirements | Coverage | +|-----------------|-------------------|----------| +| [StRS-001] | SYS-FUNC-001, SYS-FUNC-002 | Full | +| [StRS-002] | SYS-PERF-001, SYS-SEC-001 | Full | +| [StRS-003] | SYS-IF-001 | Partial - [note what's missing] | +... + +**StRS Coverage Summary:** +- StRS requirements traced: {{count}}/{{total}} +- Fully covered: {{count}} +- Partially covered: {{count}} +- Not covered: {{count}} [list with justification] +``` + +If StRS was not available: +```markdown +### 6.1 Traceability to StRS + +StRS was not available during SyRS creation. Traceability to stakeholder requirements should be established when the StRS is created or provided. System requirements in this document are derived from the PRD and collaborative engineering analysis. +``` + +#### Traceability to PRD (Section 6.2) + +Create the PRD traceability matrix: + +```markdown +### 6.2 Traceability to PRD + +| PRD Requirement | System Requirements | Coverage | +|----------------|-------------------|----------| +| PRD-FR-001 | SYS-FUNC-001, SYS-FUNC-002, SYS-FUNC-003 | Full | +| PRD-FR-002 | SYS-FUNC-004 | Full | +| PRD-NFR-001 | SYS-PERF-001, SYS-PERF-002 | Full | +... + +**PRD Coverage Summary:** +- PRD FRs traced: {{count}}/{{total}} +- PRD NFRs traced: {{count}}/{{total}} +- Fully covered: {{count}} +- Partially covered: {{count}} +- Not covered: {{count}} [list with justification] +``` + +### 3. Build Requirements Index (Appendix B) + +Create a complete index of all requirements in the document: + +```markdown +### Appendix B: Requirements Index + +| Req ID | Section | Category | Priority | V&V Method | +|--------|---------|----------|----------|------------| +| SYS-FUNC-001 | 3.1.1 | Functional | Critical | Test | +| SYS-FUNC-002 | 3.1.1 | Functional | High | Test | +| SYS-IF-001 | 3.2.1 | User Interface | High | Demonstration | +... + +**Requirements Summary:** +- Total requirements: {{total}} +- By category: Functional ({{count}}), Interface ({{count}}), Performance ({{count}}), Usability ({{count}}), Security ({{count}}), Operations ({{count}}), Modes ({{count}}), Physical ({{count}}), Environment ({{count}}), Info Mgmt ({{count}}), Policy ({{count}}), Lifecycle ({{count}}), Constraints ({{count}}) +- By priority: Critical ({{count}}), High ({{count}}), Medium ({{count}}), Low ({{count}}) +``` + +### 4. Systematic ISO 29148 Clause 8 Review + +Using the checklist, review each section: + +**Section 1 - Introduction:** +- [ ] System purpose clearly stated +- [ ] System scope and boundaries defined +- [ ] System context with external entities +- [ ] System functions listed +- [ ] User characteristics defined +- [ ] Glossary present and complete + +**Section 2 - References:** +- [ ] ISO 29148 referenced +- [ ] All input documents listed +- [ ] All referenced standards included + +**Section 3 - System Requirements:** +- [ ] 3.1 Functional requirements complete with SYS-FUNC-### format +- [ ] 3.2 Interface requirements complete with SYS-IF-### format +- [ ] 3.3 Performance requirements with measurable targets +- [ ] 3.4 Usability requirements specified +- [ ] 3.5 Security requirements at system level +- [ ] 3.6 System operations defined +- [ ] 3.7 System modes and states with transitions +- [ ] 3.8 Physical characteristics (or N/A) +- [ ] 3.9 Environment conditions specified +- [ ] 3.10 Information management defined +- [ ] 3.11 Policies and regulations documented +- [ ] 3.12 Lifecycle sustainability addressed +- [ ] 3.13 Design constraints documented + +**Section 4 - Verification:** +- [ ] Every requirement has a verification method +- [ ] Verification summary table is complete +- [ ] TEA module integration documented + +**Section 5 - Assumptions and Dependencies:** +- [ ] Assumptions documented +- [ ] Dependencies listed +- [ ] Risk implications noted + +**Section 6 - Traceability:** +- [ ] StRS traceability matrix (or noted as unavailable) +- [ ] PRD traceability matrix +- [ ] No orphan requirements +- [ ] No coverage gaps + +### 5. Cross-Section Consistency Check + +Verify consistency across all sections: + +- No conflicting requirements between sections +- Terminology consistent throughout +- Identifier numbering sequential and gap-free +- All cross-references between sections valid +- Performance requirements align with functional requirements +- Security requirements align with interface requirements +- Operational requirements align with system modes and states +- Constraints consistent with architectural decisions + +### 6. Requirement Quality Spot Check + +Select a representative sample of requirements (at least 3 from each category) and verify the 9 quality criteria: + +1. **Necessary** - Essential for system success +2. **Appropriate** - Correct level of abstraction +3. **Unambiguous** - Single interpretation +4. **Complete** - Fully stated +5. **Singular** - Atomic (one thing per requirement) +6. **Feasible** - Technically achievable +7. **Verifiable** - Can be verified +8. **Correct** - Accurately represents need +9. **Conforming** - Follows SyRS format + +### 7. Compile Review Results + +Prepare the review findings: + +```markdown +## SyRS Review Results + +### ISO 29148 Clause 8 Compliance +**Status:** [COMPLIANT / PARTIALLY COMPLIANT / NON-COMPLIANT] + +**Section Compliance:** +| Section | Status | Notes | +|---------|--------|-------| +| 1. Introduction | [Pass/Fail] | [notes] | +| 2. References | [Pass/Fail] | [notes] | +| 3.1 Functional | [Pass/Fail] | [notes] | +| 3.2 Interfaces | [Pass/Fail] | [notes] | +| 3.3 Performance | [Pass/Fail] | [notes] | +| 3.4 Usability | [Pass/Fail] | [notes] | +| 3.5 Security | [Pass/Fail] | [notes] | +| 3.6 Operations | [Pass/Fail] | [notes] | +| 3.7 Modes | [Pass/Fail] | [notes] | +| 3.8 Physical | [Pass/Fail] | [notes] | +| 3.9 Environment | [Pass/Fail] | [notes] | +| 3.10 Info Mgmt | [Pass/Fail] | [notes] | +| 3.11 Policy | [Pass/Fail] | [notes] | +| 3.12 Lifecycle | [Pass/Fail] | [notes] | +| 3.13 Constraints | [Pass/Fail] | [notes] | +| 4. Verification | [Pass/Fail] | [notes] | +| 5. Assumptions | [Pass/Fail] | [notes] | +| 6. Traceability | [Pass/Fail] | [notes] | + +### Cross-Section Consistency +**Status:** [CONSISTENT / ISSUES FOUND] +[Details of any consistency issues] + +### Traceability Assessment +- StRS coverage: {{percentage}}% +- PRD coverage: {{percentage}}% +- Orphan requirements: {{count}} + +### Requirement Quality Assessment +- Sample size: {{count}} requirements reviewed +- Quality criteria pass rate: {{percentage}}% +- Issues found: [list any quality issues] + +### Overall Assessment +**Total requirements:** {{count}} +**Verified (V&V assigned):** {{count}} (must be 100%) +**Traced (to StRS/PRD):** {{count}} + +### Issues Found +**Critical (must fix):** [list or "None"] +**Minor (can address later):** [list or "None"] +**Recommendations:** [list or "None"] +``` + +### 8. Present Review Results and Menu + +Present the complete review findings to the user: + +"I've completed a comprehensive review of the System Requirements Specification. + +**Review Summary:** +[Show key findings from step 7] + +**What would you like to do?** +[R] Review - Address issues found and re-review specific sections +[F] Finalize - Accept the SyRS and finalize the document (minor issues to be addressed in next baseline) +[A] Approve - Formally approve the SyRS as the current baseline" + +### 9. Handle Menu Selection + +#### If 'R' (Review): + +- Ask user which issues they want to address +- For each issue, collaborate to resolve it +- Update the relevant section in the output document +- After all issues addressed, re-run the review checks on affected sections +- Return to R/F/A menu + +#### If 'F' (Finalize): + +- Write all remaining content to the document (traceability matrices, requirements index, review results) +- Update frontmatter: + ```yaml + stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9] + status: 'final' + completedAt: '{{current_date}}' + ``` +- Proceed to completion summary (step 10 below) + +#### If 'A' (Approve): + +- Write all remaining content to the document +- Update frontmatter: + ```yaml + stepsCompleted: [1, 2, 3, 4, 5, 6, 7, 8, 9] + status: 'approved' + baseline_version: '1.0' + approvedAt: '{{current_date}}' + approvedBy: '{{user_name}}' + ``` +- Proceed to completion summary (step 10 below) + +### 10. Workflow Completion + +Congratulate the user on completing the SyRS: + +"Congratulations {{user_name}}! We've completed the System Requirements Specification for {{project_name}}. + +**Document:** `{outputFile}` +**Status:** [Finalized / Approved as Baseline 1.0] +**Total System Requirements:** {{count}} +**ISO 29148 Clause 8 Compliance:** [COMPLIANT / status] + +**What we accomplished together:** +- Defined the system context and boundaries +- Transformed {{prd_fr_count}} PRD requirements into {{sys_func_count}} system functional requirements +- Defined {{if_count}} interface requirements +- Specified {{quality_count}} quality requirements with measurable targets +- Documented {{ops_count}} operational requirements including system modes and states +- Established {{constraint_count}} constraints and lifecycle requirements +- Created a verification plan covering 100% of requirements +- Built traceability matrices to StRS and PRD + +**Suggested Next Steps:** +1. **RTM Update** - Update the Requirements Traceability Matrix with the SyRS baseline +2. **Epics Creation** - Run the Create Epics and Stories workflow to break down system requirements into implementable stories +3. **Architecture Review** - Review and update the Architecture document for alignment with the SyRS +4. **Verification Execution** - Begin planning verification activities per the verification summary table" + +SyRS complete. Read fully and follow: `_bmad/core/tasks/help.md` with argument `Create SyRS`. + +Upon Completion of task output: offer to answer any questions about the System Requirements Specification. + +## SUCCESS METRICS: + +βœ… Traceability matrices complete for both StRS and PRD +βœ… Requirements index complete with all requirements listed +βœ… Systematic ISO 29148 Clause 8 review performed using checklist +βœ… Cross-section consistency verified +βœ… Requirement quality spot check performed +βœ… Review results clearly presented with pass/fail status +βœ… R/F/A menu presented and handled correctly +βœ… All content written to document upon finalization/approval +βœ… Frontmatter updated to final/approved status +βœ… User provided with clear next steps + +## FAILURE MODES: + +❌ Skipping the systematic review (just rubber-stamping) +❌ Not building traceability matrices +❌ Not identifying cross-section inconsistencies +❌ Not performing requirement quality spot check +❌ Approving document with critical issues unresolved +❌ Not updating frontmatter to final status +❌ Not providing next step guidance + +❌ **CRITICAL**: Reading only partial step file - leads to incomplete understanding and poor decisions +❌ **CRITICAL**: Making decisions without complete understanding of step requirements and protocols + +## WORKFLOW COMPLETE: + +This is the final step of the SyRS workflow. The user now has a complete, reviewed System Requirements Specification that is: + +- ISO 29148 Clause 8 compliant +- Traceable to StRS and PRD +- Verified with methods assigned to every requirement +- Ready for use in downstream engineering activities (epics, architecture review, verification execution) diff --git a/src/bmm/workflows/3-solutioning/create-syrs/templates/syrs-template.md b/src/bmm/workflows/3-solutioning/create-syrs/templates/syrs-template.md new file mode 100644 index 000000000..eb92a83f0 --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/templates/syrs-template.md @@ -0,0 +1,149 @@ +--- +stepsCompleted: [] +inputDocuments: [] +workflowType: 'syrs' +track: 'enterprise' +version: '1.0' +status: 'draft' +baseline_version: null +--- + +# System Requirements Specification - {{project_name}} + +**Author:** {{user_name}} +**Date:** {{date}} +**ISO 29148 Reference:** Clause 8 - System Requirements Specification + +## 1. Introduction + +### 1.1 System Purpose + +{{system_purpose}} + +### 1.2 System Scope + +{{system_scope}} + +### 1.3 System Overview + +#### 1.3.1 System Context + +{{system_context}} + +#### 1.3.2 System Functions + +{{system_functions}} + +#### 1.3.3 User Characteristics + +{{user_characteristics}} + +### 1.4 Definitions, Acronyms, and Abbreviations + +{{glossary}} + +## 2. References + +{{references}} + +## 3. System Requirements + +### 3.1 Functional Requirements + +{{functional_requirements}} + +### 3.2 System Interfaces + +#### 3.2.1 User Interfaces + +{{user_interfaces}} + +#### 3.2.2 Hardware Interfaces + +{{hardware_interfaces}} + +#### 3.2.3 Software Interfaces + +{{software_interfaces}} + +#### 3.2.4 Communication Interfaces + +{{communication_interfaces}} + +### 3.3 Performance Requirements + +{{performance_requirements}} + +### 3.4 Usability Requirements + +{{usability_requirements}} + +### 3.5 Security Requirements + +{{security_requirements}} + +### 3.6 System Operations + +{{system_operations}} + +### 3.7 System Modes and States + +{{system_modes_and_states}} + +### 3.8 Physical Characteristics + +{{physical_characteristics}} + +### 3.9 Environment Conditions + +{{environment_conditions}} + +### 3.10 Information Management + +{{information_management}} + +### 3.11 Policies and Regulations + +{{policies_and_regulations}} + +### 3.12 System Lifecycle Sustainability + +{{lifecycle_sustainability}} + +### 3.13 Design Constraints + +{{design_constraints}} + +## 4. Verification + +### 4.1 Verification Methods + +{{verification_methods}} + +### 4.2 Verification Summary Table + +{{verification_summary_table}} + +## 5. Assumptions and Dependencies + +{{assumptions_and_dependencies}} + +## 6. Traceability + +### 6.1 Traceability to StRS + +{{traceability_strs}} + +### 6.2 Traceability to PRD + +{{traceability_prd}} + +## Appendices + +### Appendix A: Glossary + +{{appendix_glossary}} + +### Appendix B: Requirements Index + +{{requirements_index}} diff --git a/src/bmm/workflows/3-solutioning/create-syrs/workflow.md b/src/bmm/workflows/3-solutioning/create-syrs/workflow.md new file mode 100644 index 000000000..5f1d1e40b --- /dev/null +++ b/src/bmm/workflows/3-solutioning/create-syrs/workflow.md @@ -0,0 +1,59 @@ +--- +name: create-syrs +description: 'Create an ISO 29148 Clause 8 compliant System Requirements Specification (SyRS). Transforms stakeholder requirements (StRS) and product requirements (PRD) into system-level requirements with full traceability, verification planning, and lifecycle sustainability. Enterprise track workflow for structured requirements engineering.' +--- + +# System Requirements Specification Workflow + +**Goal:** Create a comprehensive ISO 29148 Clause 8 compliant System Requirements Specification through collaborative step-by-step requirements engineering, ensuring full traceability to StRS and PRD with verification methods assigned to every requirement. + +**Your Role:** In addition to your name, communication_style, and persona, you are also a System Architecture and Requirements Engineering specialist collaborating with a systems engineer. This is a partnership, not a client-vendor relationship. You bring expertise in ISO 29148 compliance, system-level requirements engineering, verification planning, and traceability analysis, while the user brings domain expertise, stakeholder context, and system knowledge. Work together as equals to produce a specification that enables consistent system implementation. + +--- + +## WORKFLOW ARCHITECTURE + +This uses **step-file architecture** for disciplined execution: + +### Core Principles + +- **Micro-file Design**: Each step of the overall goal is a self contained instruction file that you will adhere to 1 file as directed at a time +- **Just-In-Time Loading**: Only 1 current step file will be loaded and followed to completion - never load future step files until told to do so +- **Sequential Enforcement**: Sequence within the step files must be completed in order, no skipping or optimization allowed +- **State Tracking**: Document progress in output file frontmatter using `stepsCompleted` array when a workflow produces a document +- **Append-Only Building**: Build documents by appending content as directed to the output file + +### Step Processing Rules + +1. **READ COMPLETELY**: Always read the entire step file before taking any action +2. **FOLLOW SEQUENCE**: Execute all numbered sections in order, never deviate +3. **WAIT FOR INPUT**: If a menu is presented, halt and wait for user selection +4. **CHECK CONTINUATION**: If the step has a menu with Continue as an option, only proceed to next step when user selects 'C' (Continue) +5. **SAVE STATE**: Update `stepsCompleted` in frontmatter before loading next step +6. **LOAD NEXT**: When directed, read fully and follow the next step file + +### Critical Rules (NO EXCEPTIONS) + +- πŸ›‘ **NEVER** load multiple step files simultaneously +- πŸ“– **ALWAYS** read entire step file before execution +- 🚫 **NEVER** skip steps or optimize the sequence +- πŸ’Ύ **ALWAYS** update frontmatter of output files when writing the final output for a specific step +- 🎯 **ALWAYS** follow the exact instructions in the step file +- ⏸️ **ALWAYS** halt at menus and wait for user input +- πŸ“‹ **NEVER** create mental todo lists from future steps + +--- + +## INITIALIZATION SEQUENCE + +### 1. Configuration Loading + +Load and read full config from {project-root}/_bmad/bmm/config.yaml and resolve: + +- `project_name`, `output_folder`, `planning_artifacts`, `user_name`, `communication_language`, `document_output_language` +- `date` as system-generated current datetime +- βœ… YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}` + +### 2. First Step EXECUTION + +Read fully and follow: `{project-root}/_bmad/bmm/workflows/3-solutioning/create-syrs/steps/step-01-init.md` to begin the workflow.