@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.
- package/package.json +8 -3
- package/resources/templates/architecture/arc42/arc42-template-EN.md +1077 -0
- package/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio-2023.png +0 -0
- package/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio.png +0 -0
- package/resources/templates/architecture/arc42/images/05_building_blocks-EN.png +0 -0
- package/resources/templates/architecture/arc42/images/08-concepts-EN.drawio.png +0 -0
- package/resources/templates/architecture/arc42/images/arc42-logo.png +0 -0
- package/resources/templates/architecture/c4.md +224 -0
- package/resources/templates/architecture/freestyle.md +53 -0
- package/resources/templates/architecture/none.md +17 -0
- package/resources/templates/design/comprehensive.md +207 -0
- package/resources/templates/design/freestyle.md +37 -0
- package/resources/templates/design/none.md +17 -0
- package/resources/templates/requirements/ears.md +90 -0
- package/resources/templates/requirements/freestyle.md +42 -0
- package/resources/templates/requirements/none.md +17 -0
- package/resources/workflows/big-bang-conversion.yaml +539 -0
- package/resources/workflows/boundary-testing.yaml +334 -0
- package/resources/workflows/bugfix.yaml +185 -0
- package/resources/workflows/business-analysis.yaml +671 -0
- package/resources/workflows/c4-analysis.yaml +485 -0
- package/resources/workflows/epcc.yaml +161 -0
- package/resources/workflows/greenfield.yaml +189 -0
- package/resources/workflows/minor.yaml +127 -0
- package/resources/workflows/posts.yaml +207 -0
- package/resources/workflows/slides.yaml +256 -0
- package/resources/workflows/tdd.yaml +157 -0
- package/resources/workflows/waterfall.yaml +195 -0
- package/.turbo/turbo-build.log +0 -4
- package/src/config-manager.ts +0 -96
- package/src/conversation-manager.ts +0 -489
- package/src/database.ts +0 -427
- package/src/file-detection-manager.ts +0 -302
- package/src/git-manager.ts +0 -64
- package/src/index.ts +0 -28
- package/src/instruction-generator.ts +0 -210
- package/src/interaction-logger.ts +0 -109
- package/src/logger.ts +0 -353
- package/src/path-validation-utils.ts +0 -261
- package/src/plan-manager.ts +0 -323
- package/src/project-docs-manager.ts +0 -523
- package/src/state-machine-loader.ts +0 -365
- package/src/state-machine-types.ts +0 -72
- package/src/state-machine.ts +0 -370
- package/src/system-prompt-generator.ts +0 -122
- package/src/template-manager.ts +0 -328
- package/src/transition-engine.ts +0 -386
- package/src/types.ts +0 -60
- package/src/workflow-manager.ts +0 -606
- package/test/unit/conversation-manager.test.ts +0 -179
- package/test/unit/custom-workflow-loading.test.ts +0 -174
- package/test/unit/directory-linking-and-extensions.test.ts +0 -338
- package/test/unit/file-linking-integration.test.ts +0 -256
- package/test/unit/git-commit-integration.test.ts +0 -91
- package/test/unit/git-manager.test.ts +0 -86
- package/test/unit/install-workflow.test.ts +0 -138
- package/test/unit/instruction-generator.test.ts +0 -247
- package/test/unit/list-workflows-filtering.test.ts +0 -68
- package/test/unit/none-template-functionality.test.ts +0 -224
- package/test/unit/project-docs-manager.test.ts +0 -337
- package/test/unit/state-machine-loader.test.ts +0 -234
- package/test/unit/template-manager.test.ts +0 -217
- package/test/unit/validate-workflow-name.test.ts +0 -150
- package/test/unit/workflow-domain-filtering.test.ts +0 -75
- package/test/unit/workflow-enum-generation.test.ts +0 -92
- package/test/unit/workflow-manager-enhanced-path-resolution.test.ts +0 -369
- package/test/unit/workflow-manager-path-resolution.test.ts +0 -150
- package/test/unit/workflow-migration.test.ts +0 -155
- package/test/unit/workflow-override-by-name.test.ts +0 -116
- package/test/unit/workflow-prioritization.test.ts +0 -38
- package/test/unit/workflow-validation.test.ts +0 -303
- package/test/utils/e2e-test-setup.ts +0 -453
- package/test/utils/run-server-in-dir.sh +0 -27
- package/test/utils/temp-files.ts +0 -308
- package/test/utils/test-access.ts +0 -79
- package/test/utils/test-helpers.ts +0 -286
- package/test/utils/test-setup.ts +0 -78
- package/tsconfig.build.json +0 -21
- package/tsconfig.json +0 -8
- package/vitest.config.ts +0 -18
package/resources/templates/architecture/arc42/images/01_2_iso-25010-topics-EN.drawio-2023.png
ADDED
Binary file
|
Binary file
|
Binary file
|
@@ -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 -->
|