@codemcp/workflows-core 3.1.22 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/package.json +8 -3
  2. package/resources/templates/architecture/arc42/arc42-template-EN.md +1077 -0
  3. package/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio-2023.png +0 -0
  4. package/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio.png +0 -0
  5. package/resources/templates/architecture/arc42/images/05_building_blocks-EN.png +0 -0
  6. package/resources/templates/architecture/arc42/images/08-concepts-EN.drawio.png +0 -0
  7. package/resources/templates/architecture/arc42/images/arc42-logo.png +0 -0
  8. package/resources/templates/architecture/c4.md +224 -0
  9. package/resources/templates/architecture/freestyle.md +53 -0
  10. package/resources/templates/architecture/none.md +17 -0
  11. package/resources/templates/design/comprehensive.md +207 -0
  12. package/resources/templates/design/freestyle.md +37 -0
  13. package/resources/templates/design/none.md +17 -0
  14. package/resources/templates/requirements/ears.md +90 -0
  15. package/resources/templates/requirements/freestyle.md +42 -0
  16. package/resources/templates/requirements/none.md +17 -0
  17. package/resources/workflows/big-bang-conversion.yaml +539 -0
  18. package/resources/workflows/boundary-testing.yaml +334 -0
  19. package/resources/workflows/bugfix.yaml +185 -0
  20. package/resources/workflows/business-analysis.yaml +671 -0
  21. package/resources/workflows/c4-analysis.yaml +485 -0
  22. package/resources/workflows/epcc.yaml +161 -0
  23. package/resources/workflows/greenfield.yaml +189 -0
  24. package/resources/workflows/minor.yaml +127 -0
  25. package/resources/workflows/posts.yaml +207 -0
  26. package/resources/workflows/slides.yaml +256 -0
  27. package/resources/workflows/tdd.yaml +157 -0
  28. package/resources/workflows/waterfall.yaml +195 -0
  29. package/.turbo/turbo-build.log +0 -4
  30. package/src/config-manager.ts +0 -96
  31. package/src/conversation-manager.ts +0 -489
  32. package/src/database.ts +0 -427
  33. package/src/file-detection-manager.ts +0 -302
  34. package/src/git-manager.ts +0 -64
  35. package/src/index.ts +0 -28
  36. package/src/instruction-generator.ts +0 -210
  37. package/src/interaction-logger.ts +0 -109
  38. package/src/logger.ts +0 -353
  39. package/src/path-validation-utils.ts +0 -261
  40. package/src/plan-manager.ts +0 -323
  41. package/src/project-docs-manager.ts +0 -523
  42. package/src/state-machine-loader.ts +0 -365
  43. package/src/state-machine-types.ts +0 -72
  44. package/src/state-machine.ts +0 -370
  45. package/src/system-prompt-generator.ts +0 -122
  46. package/src/template-manager.ts +0 -328
  47. package/src/transition-engine.ts +0 -386
  48. package/src/types.ts +0 -60
  49. package/src/workflow-manager.ts +0 -606
  50. package/test/unit/conversation-manager.test.ts +0 -179
  51. package/test/unit/custom-workflow-loading.test.ts +0 -174
  52. package/test/unit/directory-linking-and-extensions.test.ts +0 -338
  53. package/test/unit/file-linking-integration.test.ts +0 -256
  54. package/test/unit/git-commit-integration.test.ts +0 -91
  55. package/test/unit/git-manager.test.ts +0 -86
  56. package/test/unit/install-workflow.test.ts +0 -138
  57. package/test/unit/instruction-generator.test.ts +0 -247
  58. package/test/unit/list-workflows-filtering.test.ts +0 -68
  59. package/test/unit/none-template-functionality.test.ts +0 -224
  60. package/test/unit/project-docs-manager.test.ts +0 -337
  61. package/test/unit/state-machine-loader.test.ts +0 -234
  62. package/test/unit/template-manager.test.ts +0 -217
  63. package/test/unit/validate-workflow-name.test.ts +0 -150
  64. package/test/unit/workflow-domain-filtering.test.ts +0 -75
  65. package/test/unit/workflow-enum-generation.test.ts +0 -92
  66. package/test/unit/workflow-manager-enhanced-path-resolution.test.ts +0 -369
  67. package/test/unit/workflow-manager-path-resolution.test.ts +0 -150
  68. package/test/unit/workflow-migration.test.ts +0 -155
  69. package/test/unit/workflow-override-by-name.test.ts +0 -116
  70. package/test/unit/workflow-prioritization.test.ts +0 -38
  71. package/test/unit/workflow-validation.test.ts +0 -303
  72. package/test/utils/e2e-test-setup.ts +0 -453
  73. package/test/utils/run-server-in-dir.sh +0 -27
  74. package/test/utils/temp-files.ts +0 -308
  75. package/test/utils/test-access.ts +0 -79
  76. package/test/utils/test-helpers.ts +0 -286
  77. package/test/utils/test-setup.ts +0 -78
  78. package/tsconfig.build.json +0 -21
  79. package/tsconfig.json +0 -8
  80. package/vitest.config.ts +0 -18
@@ -0,0 +1,224 @@
1
+ # System Architecture Documentation (C4 Model)
2
+
3
+ _This document follows the C4 model for software architecture documentation, focusing on Context, Container, and Component levels._
4
+
5
+ ## 1. System Context (C4 Level 1)
6
+
7
+ ### System Overview
8
+
9
+ <!-- Brief description of what the system does and its primary purpose -->
10
+
11
+ ### Users and Personas
12
+
13
+ <!-- Who uses this system? -->
14
+
15
+ - **[User Type 1]**: Description of user type and their needs
16
+ - **[User Type 2]**: Description of user type and their needs
17
+
18
+ ### External Systems
19
+
20
+ <!-- What external systems does this system interact with? -->
21
+
22
+ - **[External System 1]**: Purpose and interaction type
23
+ - **[External System 2]**: Purpose and interaction type
24
+
25
+ ### System Boundaries
26
+
27
+ <!-- What is inside vs outside the system boundary? -->
28
+
29
+ - **Inside the system**:
30
+ - **Outside the system**:
31
+
32
+ ### Context Diagram
33
+
34
+ <!-- Describe or reference a C4 Context diagram showing the system and its environment -->
35
+
36
+ ## 2. Container Architecture (C4 Level 2)
37
+
38
+ ### Container Overview
39
+
40
+ <!-- High-level containers that make up the system -->
41
+
42
+ #### [Container Name 1]
43
+
44
+ - **Technology**:
45
+ - **Responsibilities**:
46
+ - **Interfaces**:
47
+ - **Data Storage**:
48
+
49
+ #### [Container Name 2]
50
+
51
+ - **Technology**:
52
+ - **Responsibilities**:
53
+ - **Interfaces**:
54
+ - **Data Storage**:
55
+
56
+ ### Container Interactions
57
+
58
+ <!-- How do containers communicate with each other? -->
59
+
60
+ - **[Container A] → [Container B]**: Communication method and purpose
61
+ - **[Container B] → [External System]**: Communication method and purpose
62
+
63
+ ### Deployment Architecture
64
+
65
+ <!-- How are containers deployed? -->
66
+
67
+ - **Environment**:
68
+ - **Infrastructure**:
69
+ - **Scaling**:
70
+
71
+ ### Container Diagram
72
+
73
+ <!-- Describe or reference a C4 Container diagram showing the containers and their relationships -->
74
+
75
+ ## 3. Component Architecture (C4 Level 3)
76
+
77
+ ### Component Analysis by Container
78
+
79
+ #### [Container Name 1] Components
80
+
81
+ ##### [Component Name 1]
82
+
83
+ - **Responsibilities**:
84
+ - **Interfaces**:
85
+ - **Dependencies**:
86
+ - **Design Patterns**:
87
+
88
+ ##### [Component Name 2]
89
+
90
+ - **Responsibilities**:
91
+ - **Interfaces**:
92
+ - **Dependencies**:
93
+ - **Design Patterns**:
94
+
95
+ #### [Container Name 2] Components
96
+
97
+ ##### [Component Name 3]
98
+
99
+ - **Responsibilities**:
100
+ - **Interfaces**:
101
+ - **Dependencies**:
102
+ - **Design Patterns**:
103
+
104
+ ### Component Interactions
105
+
106
+ <!-- How do components within containers interact? -->
107
+
108
+ - **[Component A] → [Component B]**: Interaction type and purpose
109
+ - **[Component C] → [External Interface]**: Interaction type and purpose
110
+
111
+ ### Component Diagrams
112
+
113
+ <!-- Describe or reference C4 Component diagrams for each significant container -->
114
+
115
+ ## 4. Architecture Decisions
116
+
117
+ ### Key Architectural Decisions
118
+
119
+ <!-- Important architectural decisions made during analysis -->
120
+
121
+ #### Decision 1: [Decision Title]
122
+
123
+ - **Context**:
124
+ - **Decision**:
125
+ - **Rationale**:
126
+ - **Consequences**:
127
+
128
+ #### Decision 2: [Decision Title]
129
+
130
+ - **Context**:
131
+ - **Decision**:
132
+ - **Rationale**:
133
+ - **Consequences**:
134
+
135
+ ### Technology Choices
136
+
137
+ <!-- Why were specific technologies chosen? -->
138
+
139
+ - **[Technology 1]**: Rationale for choice
140
+ - **[Technology 2]**: Rationale for choice
141
+
142
+ ## 5. Quality Attributes
143
+
144
+ ### Performance Characteristics
145
+
146
+ <!-- How does the system perform? -->
147
+
148
+ - **Response Times**:
149
+ - **Throughput**:
150
+ - **Scalability**:
151
+
152
+ ### Security Considerations
153
+
154
+ <!-- What security measures are in place? -->
155
+
156
+ - **Authentication**:
157
+ - **Authorization**:
158
+ - **Data Protection**:
159
+
160
+ ### Reliability and Availability
161
+
162
+ <!-- How reliable is the system? -->
163
+
164
+ - **Uptime Requirements**:
165
+ - **Error Handling**:
166
+ - **Recovery Mechanisms**:
167
+
168
+ ## 6. Enhancement Recommendations
169
+
170
+ ### Modernization Opportunities
171
+
172
+ <!-- Based on the analysis, what modernization opportunities exist? -->
173
+
174
+ - **[Opportunity 1]**: Description and benefits
175
+ - **[Opportunity 2]**: Description and benefits
176
+
177
+ ### Technical Debt
178
+
179
+ <!-- What technical debt was identified? -->
180
+
181
+ - **[Debt Item 1]**: Impact and recommended resolution
182
+ - **[Debt Item 2]**: Impact and recommended resolution
183
+
184
+ ### API Testing Strategy
185
+
186
+ <!-- Recommendations for end-to-end API testing -->
187
+
188
+ - **External APIs**: Testing approach for external interfaces
189
+ - **Internal APIs**: Testing approach for internal interfaces
190
+ - **Test Data**: Strategy for test data management
191
+
192
+ ### Enhancement Readiness
193
+
194
+ <!-- How ready is the system for enhancements? -->
195
+
196
+ - **Documentation Quality**:
197
+ - **Code Quality**:
198
+ - **Test Coverage**:
199
+ - **Development Environment**:
200
+
201
+ ## 7. References and Resources
202
+
203
+ ### Discovery Notes
204
+
205
+ - Reference to DISCOVERY.md file with detailed analysis notes
206
+
207
+ ### Existing Documentation
208
+
209
+ <!-- Links to any existing documentation that was found -->
210
+
211
+ - **[Document 1]**: Description and relevance
212
+ - **[Document 2]**: Description and relevance
213
+
214
+ ### Analysis Artifacts
215
+
216
+ <!-- Other artifacts created during the analysis -->
217
+
218
+ - **Component Analysis**: Detailed component analysis notes
219
+ - **Interface Documentation**: API and interface specifications
220
+ - **Data Flow Diagrams**: Data flow analysis results
221
+
222
+ ---
223
+
224
+ _This architecture documentation was created through systematic legacy system analysis using the C4 methodology. It provides the foundation for coherent system enhancements and modernization efforts._
@@ -0,0 +1,53 @@
1
+ <!--
2
+ INSTRUCTIONS FOR ARCHITECTURE DOCUMENT (FREESTYLE):
3
+ - Document high-level system architecture and context
4
+ - Focus on system boundaries, external interfaces, and key components
5
+ - Include technology decisions with rationale
6
+ - Keep it concise but comprehensive enough for new team members
7
+ - Update as architecture evolves during development
8
+ -->
9
+
10
+ # Architecture Document
11
+
12
+ ## System Overview
13
+
14
+ <!-- Brief description of what the system does and its main purpose -->
15
+
16
+ ## System Context
17
+
18
+ <!-- External systems, users, and interfaces this system interacts with -->
19
+
20
+ ## High-Level Architecture
21
+
22
+ <!-- Main components and how they interact, architectural patterns used -->
23
+
24
+ ## Technology Decisions
25
+
26
+ <!-- Key technology choices with brief rationale -->
27
+
28
+ - **[Technology Area]:** [Choice] - [Rationale]
29
+
30
+ ## Key Components
31
+
32
+ <!-- Core components and their responsibilities -->
33
+
34
+ ### [Component Name]
35
+
36
+ - **Purpose:** [What it does]
37
+ - **Key Interfaces:** [How other components interact with it]
38
+
39
+ ## Data Flow
40
+
41
+ <!-- How data moves through the system -->
42
+
43
+ ## Deployment Architecture
44
+
45
+ <!-- How the system is deployed and scaled -->
46
+
47
+ ## Security Architecture
48
+
49
+ <!-- Security boundaries, authentication, authorization patterns -->
50
+
51
+ ## Quality Attributes
52
+
53
+ <!-- Performance, scalability, reliability, maintainability considerations -->
@@ -0,0 +1,17 @@
1
+ # Architecture Placeholder
2
+
3
+ This is a placeholder document. The user has chosen not to maintain separate architecture documentation for this project.
4
+
5
+ ## INSTRUCTIONS FOR LLM
6
+
7
+ **DO NOT EDIT THIS FILE**
8
+
9
+ - Use the current development plan file to specify architecture decisions for ongoing development
10
+ - Reference architecture information from the plan file context when needed
11
+ - Focus architecture discussion in the plan file's "Key Decisions" and "Notes" sections
12
+ - When architecture decisions are needed, document them in the plan file rather than here
13
+ - This placeholder ensures the workflow variables work correctly while respecting the user's choice
14
+
15
+ ## User's Choice
16
+
17
+ The user has explicitly chosen not to use dedicated architecture documentation for this project. Please respect this decision and work with the plan file for architecture-related information.
@@ -0,0 +1,207 @@
1
+ <!--
2
+ DESIGN DOCUMENT TEMPLATE - TIERED BY PROJECT COMPLEXITY
3
+
4
+ PURPOSE: Document design principles, patterns, and standards that guide implementation.
5
+ NOTE: Technology stack decisions belong in the Architecture Document, not here.
6
+
7
+ PROJECT COMPLEXITY GUIDE:
8
+ 🚀 ESSENTIAL (Startup/MVP, 1-3 developers, <6 months): Sections 1-2 only
9
+ 🏢 CORE (Small team, 2-5 developers, 6-18 months): Sections 1-4
10
+ 🏗️ ADVANCED (Enterprise, 5+ developers, 18+ months): Sections 1-5
11
+ ⚡ SPECIALIZED (Mission-critical, high reliability): All sections + custom
12
+
13
+ WHAT TO INCLUDE:
14
+ ✅ Design principles and patterns
15
+ ✅ Naming conventions and standards
16
+ ✅ Component design approaches
17
+ ✅ Data modeling principles
18
+ ✅ Quality attribute design strategies
19
+ ❌ Technology stack choices (goes in Architecture doc)
20
+ ❌ Concrete class names or implementations
21
+ ❌ Code snippets or method signatures
22
+
23
+ START SMALL: Begin with Essential sections, add more as project matures.
24
+
25
+ IMPORTANT: DO NOT REMOVE THIS COMMENT HOW TO USE THE TEMPLATE!
26
+ -->
27
+
28
+ # Design Document
29
+
30
+ <!-- # 🚀 ESSENTIAL - Required for all projects -->
31
+
32
+ ## 1. Naming Conventions
33
+
34
+ <!-- Standards for naming classes, methods, variables, constants, packages
35
+ Language-specific conventions and project-specific additions
36
+ Examples: PascalCase for classes, camelCase for methods, etc. -->
37
+
38
+ ### Classes and Types
39
+
40
+ <!-- How to name classes, interfaces, enums, type definitions -->
41
+
42
+ ### Methods and Functions
43
+
44
+ <!-- Method naming patterns, verb conventions, parameter naming -->
45
+
46
+ ### Variables and Constants
47
+
48
+ <!-- Local variables, class fields, constants, configuration values -->
49
+
50
+ ### Packages and Modules
51
+
52
+ <!-- Package/namespace organization, module naming patterns -->
53
+
54
+ ## 2. Error Handling Design
55
+
56
+ <!-- Exception hierarchy design, error propagation strategies
57
+ How errors should be categorized, handled, and communicated
58
+ Principles for graceful degradation and error recovery -->
59
+
60
+ ### Exception Design Principles
61
+
62
+ <!-- When to use checked vs unchecked exceptions, custom exception hierarchy -->
63
+
64
+ ### Error Propagation Strategy
65
+
66
+ <!-- How errors flow through system layers, error boundaries -->
67
+
68
+ ### Error Recovery Patterns
69
+
70
+ <!-- How system should behave when errors occur, fallback strategies -->
71
+
72
+ <!-- # 🏢 CORE - Recommended for professional projects -->
73
+
74
+ ## 3. Architecture Patterns & Principles
75
+
76
+ <!-- SOLID principles, DRY, KISS, YAGNI applied to this project
77
+ Which architectural patterns are preferred and why
78
+ Design pattern selection criteria and usage guidelines -->
79
+
80
+ ### Core Design Principles
81
+
82
+ <!-- How SOLID, DRY, KISS principles apply to this specific project -->
83
+
84
+ ### Preferred Architectural Patterns
85
+
86
+ <!-- Which patterns (MVC, Repository, Observer, etc.) to use when -->
87
+
88
+ ### Pattern Selection Guidelines
89
+
90
+ <!-- Criteria for choosing between different design patterns -->
91
+
92
+ ## 4. Component Design Strategy
93
+
94
+ <!-- How functionality is organized into components
95
+ Principles for component boundaries and responsibilities
96
+ Interface design and dependency management approaches -->
97
+
98
+ ### Component Boundary Principles
99
+
100
+ <!-- How to determine what belongs in each component, separation of concerns -->
101
+
102
+ ### Responsibility Assignment
103
+
104
+ <!-- How to distribute functionality across components -->
105
+
106
+ ### Interface Design Standards
107
+
108
+ <!-- How components should expose functionality, API design principles -->
109
+
110
+ ### Dependency Management
111
+
112
+ <!-- How components depend on each other, injection patterns -->
113
+
114
+ <!-- # 🏗️ ADVANCED - For complex systems and mature teams -->
115
+
116
+ ## 5. Data Design Approach
117
+
118
+ <!-- Domain modeling principles, entity design, data flow patterns
119
+ How data structures support business requirements
120
+ Consistency and integrity design strategies -->
121
+
122
+ ### Domain Modeling Principles
123
+
124
+ <!-- How to model business concepts, entity vs value object decisions -->
125
+
126
+ ### Data Transfer Patterns
127
+
128
+ <!-- DTOs, mapping between layers, data transformation strategies -->
129
+
130
+ ### Data Consistency Strategy
131
+
132
+ <!-- How to maintain data integrity, transaction boundaries -->
133
+
134
+ ### Data Access Design
135
+
136
+ <!-- Repository patterns, abstraction layers, query design -->
137
+
138
+ ## 6. Quality Attribute Implementation
139
+
140
+ <!-- How design decisions support performance, security, maintainability
141
+ Trade-off analysis and quality attribute prioritization
142
+ Specific design strategies for quality goals -->
143
+
144
+ ### Performance Design Strategy
145
+
146
+ <!-- How design choices impact performance, optimization approaches -->
147
+
148
+ ### Security Design Principles
149
+
150
+ <!-- How security requirements influence design decisions -->
151
+
152
+ ### Maintainability Design Approach
153
+
154
+ <!-- Design choices that support long-term maintenance and evolution -->
155
+
156
+ ### Scalability Design Considerations
157
+
158
+ <!-- How design supports system growth and scaling -->
159
+
160
+ <!-- # ⚡ SPECIALIZED - Add based on specific project needs -->
161
+
162
+ ## 7. Concurrency Design (If Applicable)
163
+
164
+ <!-- Thread safety principles, synchronization strategies
165
+ Asynchronous processing patterns, concurrent data access -->
166
+
167
+ ### Thread Safety Strategy
168
+
169
+ <!-- How to handle concurrent access, synchronization approaches -->
170
+
171
+ ### Asynchronous Processing Design
172
+
173
+ <!-- Promise/Future patterns, event-driven design -->
174
+
175
+ ## 8. Testing Design Philosophy (If Complex Testing Needs)
176
+
177
+ <!-- How design supports testability, test structure principles
178
+ Mocking strategies, test data management -->
179
+
180
+ ### Testability Design Principles
181
+
182
+ <!-- How to design for effective testing, dependency injection for tests -->
183
+
184
+ ### Test Structure Standards
185
+
186
+ <!-- Test organization, naming, assertion patterns -->
187
+
188
+ ## 9. Extension and Evolution Strategy (If Long-term Project)
189
+
190
+ <!-- How design accommodates future changes
191
+ Extension points, plugin architectures, versioning strategies -->
192
+
193
+ ### Design for Change Principles
194
+
195
+ <!-- How to create flexible designs that adapt to requirements -->
196
+
197
+ ### Extension Point Design
198
+
199
+ <!-- Where and how to build extensibility into the system -->
200
+
201
+ ---
202
+
203
+ # Implementation Notes
204
+
205
+ <!-- Any project-specific notes about how these design principles should be applied
206
+ Exceptions or modifications to standard patterns
207
+ Team agreements about design trade-offs -->
@@ -0,0 +1,37 @@
1
+ <!--
2
+ DESIGN DOCUMENT TEMPLATE - FREESTYLE APPROACH
3
+
4
+ PURPOSE: Document design principles and standards in your preferred format.
5
+ NOTE: Technology stack decisions belong in the Architecture Document, not here.
6
+
7
+ DESIGN FOCUS AREAS:
8
+ ✅ Design principles and patterns that guide implementation
9
+ ✅ Naming conventions and coding standards
10
+ ✅ Component design approaches and boundaries
11
+ ✅ Data modeling and design principles
12
+ ✅ Quality attribute design strategies (performance, security, etc.)
13
+ ❌ NO Technology stack choices (goes in Architecture doc)
14
+ ❌ NO Concrete class names or implementations
15
+ ❌ NO Code snippets or method signatures
16
+
17
+ TIERED APPROACH SUGGESTION:
18
+ Start with core design principles, add complexity as project grows.
19
+ Consider organizing by: Essential → Core → Advanced → Specialized sections.
20
+
21
+ EXAMPLES:
22
+ ✅ GOOD: "Repository pattern abstracts data access with clean interfaces"
23
+ ✅ GOOD: "Components follow single responsibility principle with clear boundaries"
24
+ ✅ GOOD: "Error handling uses custom exception hierarchy for different failure types"
25
+ ❌ BAD: "PaymentController.processPayment() validates and processes transactions"
26
+ ❌ BAD: "UserService extends BaseService and implements AuthService interface"
27
+
28
+ IMPORTANT: DO NOT REMOVE THIS COMMENT HOW TO USE THE TEMPLATE!
29
+ -->
30
+
31
+ # Design Document
32
+
33
+ ## Architecture Reference
34
+
35
+ See [Architecture Document](./architecture.md) for high-level system context and architecture decisions such as chosen technologies and frameworks.
36
+
37
+ <!-- Here goes your freestyle design -->
@@ -0,0 +1,17 @@
1
+ # Design Placeholder
2
+
3
+ This is a placeholder document. The user has chosen not to maintain separate design documentation for this project.
4
+
5
+ ## INSTRUCTIONS FOR LLM
6
+
7
+ **DO NOT EDIT THIS FILE**
8
+
9
+ - Use the current development plan file to specify design decisions for ongoing development
10
+ - Reference design information from the plan file context when needed
11
+ - Focus design discussion in the plan file's "Key Decisions" and implementation task sections
12
+ - When design decisions are needed, document them in the plan file rather than here
13
+ - This placeholder ensures the workflow variables work correctly while respecting the user's choice
14
+
15
+ ## User's Choice
16
+
17
+ The user has explicitly chosen not to use dedicated design documentation for this project. Please respect this decision and work with the plan file for design-related information.
@@ -0,0 +1,90 @@
1
+ <!--
2
+ INSTRUCTIONS FOR REQUIREMENTS (EARS FORMAT):
3
+ - Use EARS format
4
+ - Number requirements as REQ-1, REQ-2, etc.
5
+ - Keep user stories concise and focused on user value
6
+ - Make acceptance criteria specific and testable
7
+ - Reference requirements in tasks using: (_Requirements: REQ-1, REQ-3_)
8
+
9
+ EXAMPLE:
10
+ ## REQ-1: User Authentication
11
+ **User Story:** As a website visitor, I want to create an account so that I can access personalized features.
12
+
13
+ **Acceptance Criteria:**
14
+ - WHEN user provides valid email and password THEN the system SHALL create new account
15
+ - WHEN user provides duplicate email THEN the system SHALL show "email already exists" error
16
+ - WHEN user provides weak password THEN the system SHALL show password strength requirements
17
+
18
+ FULL EARS SYNTAX:
19
+ While <optional pre-condition>, when <optional trigger>, the <system name> shall <system response>
20
+
21
+ The EARS ruleset states that a requirement must have: Zero or many preconditions; Zero or one trigger; One system name; One or many system responses.
22
+
23
+ The application of the EARS notation produces requirements in a small number of patterns, depending on the clauses that are used. The patterns are illustrated below.
24
+
25
+ Ubiquitous requirements
26
+ Ubiquitous requirements are always active (so there is no EARS keyword)
27
+
28
+ The <system name> shall <system response>
29
+
30
+ Example: The mobile phone shall have a mass of less than XX grams.
31
+
32
+ State driven requirements
33
+ State driven requirements are active as long as the specified state remains true and are denoted by the keyword While.
34
+
35
+ While <precondition(s)>, the <system name> shall <system response>
36
+
37
+ Example: While there is no card in the ATM, the ATM shall display “insert card to begin”.
38
+
39
+ Event driven requirements
40
+ Event driven requirements specify how a system must respond when a triggering event occurs and are denoted by the keyword When.
41
+
42
+ When <trigger>, the <system name> shall <system response>
43
+
44
+ Example: When “mute” is selected, the laptop shall suppress all audio output.
45
+
46
+ Optional feature requirements
47
+ Optional feature requirements apply in products or systems that include the specified feature and are denoted by the keyword Where.
48
+
49
+ Where <feature is included>, the <system name> shall <system response>
50
+
51
+ Example: Where the car has a sunroof, the car shall have a sunroof control panel on the driver door.
52
+
53
+ Unwanted behavior requirements
54
+ Unwanted behavior requirements are used to specify the required system response to undesired situations and are denoted by the keywords If and Then.
55
+
56
+ If <trigger>, then the <system name> shall <system response>
57
+
58
+ Example: If an invalid credit card number is entered, then the website shall display “please re-enter credit card details”.
59
+
60
+ Complex requirements
61
+ The simple building blocks of the EARS patterns described above can be combined to specify requirements for richer system behavior. Requirements that include more than one EARS keyword are called Complex requirements.
62
+
63
+ While <precondition(s)>, When <trigger>, the <system name> shall <system response>
64
+
65
+ Example: While the aircraft is on ground, when reverse thrust is commanded, the engine control system shall enable reverse thrust.
66
+
67
+ Complex requirements for unwanted behavior also include the If-Then keywords.
68
+ -->
69
+
70
+ # Requirements Document
71
+
72
+ ## REQ-1: [First Requirement Title]
73
+
74
+ **User Story:** As a [user type], I want [goal] so that [benefit].
75
+
76
+ **Acceptance Criteria:**
77
+
78
+ - WHEN [condition] THEN the system SHALL [expected behavior]
79
+ - WHEN [condition] THEN the system SHALL [expected behavior]
80
+
81
+ ## REQ-2: [Second Requirement Title]
82
+
83
+ **User Story:** As a [user type], I want [goal] so that [benefit].
84
+
85
+ **Acceptance Criteria:**
86
+
87
+ - WHEN [condition] THEN the system SHALL [expected behavior]
88
+ - WHEN [condition] THEN the system SHALL [expected behavior]
89
+
90
+ <!-- Add more requirements as REQ-3, REQ-4, etc. -->
@@ -0,0 +1,42 @@
1
+ <!--
2
+ INSTRUCTIONS FOR REQUIREMENTS (FREESTYLE):
3
+ - Document user needs and system requirements in any format that works for your project
4
+ - Consider using user stories, use cases, or functional specifications
5
+ - Make requirements specific and testable
6
+ - Number or organize requirements for easy reference
7
+ - Focus on what the system should do, not how it should do it
8
+ -->
9
+
10
+ # Requirements Document
11
+
12
+ ## Functional Requirements
13
+
14
+ <!-- What the system should do -->
15
+
16
+ ### [Requirement Category]
17
+
18
+ <!-- Group related requirements together -->
19
+
20
+ ## Non-Functional Requirements
21
+
22
+ <!-- Performance, security, usability, etc. -->
23
+
24
+ ### Performance
25
+
26
+ <!-- Response times, throughput, scalability requirements -->
27
+
28
+ ### Security
29
+
30
+ <!-- Authentication, authorization, data protection requirements -->
31
+
32
+ ### Usability
33
+
34
+ <!-- User experience, accessibility requirements -->
35
+
36
+ ## Business Rules
37
+
38
+ <!-- Constraints and rules that govern system behavior -->
39
+
40
+ ## Assumptions and Dependencies
41
+
42
+ <!-- External dependencies and assumptions made -->