You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- NEVER start implementation until user explicitly chooses an option.
43
39
4.**Critical Rule:** When presenting options, STOP and wait for user input. Do not continue with any implementation.
44
40
45
41
## Tech Stack
@@ -68,30 +64,30 @@ RobotCode is a comprehensive Robot Framework toolkit that provides IDE extension
68
64
## General Coding Guidelines
69
65
70
66
### Clean Code Principles
71
-
-**Readability First:** Code is read more often than written - prioritize clarity over cleverness
72
-
-**Meaningful Names:** Use descriptive names for variables, functions, and classes that express intent
73
-
-**Single Responsibility:** Each function/class should have one reason to change
74
-
-**Small Functions:** Keep functions focused and under 20 lines when possible
75
-
-**No Magic Numbers:** Use named constants or enums instead of hardcoded values
76
-
-**Avoid Deep Nesting:** Use early returns and guard clauses to reduce cyclomatic complexity
67
+
-**Readability First:** Code is read more often than written - prioritize clarity over cleverness.
68
+
-**Meaningful Names:** Use descriptive names for variables, functions, and classes that express intent.
69
+
-**Single Responsibility:** Each function/class should have one reason to change.
70
+
-**Small Functions:** Keep functions focused and under 20 lines when possible.
71
+
-**No Magic Numbers:** Use named constants or enums instead of hardcoded values.
72
+
-**Avoid Deep Nesting:** Use early returns and guard clauses to reduce cyclomatic complexity.
77
73
78
74
### Code Organization
79
-
-**Consistent Structure:** Follow established patterns within each package
80
-
-**Separation of Concerns:** Keep business logic separate from infrastructure code
81
-
-**Interface Segregation:** Create focused interfaces rather than monolithic ones
82
-
-**Dependency Inversion:** Depend on abstractions, not concrete implementations
75
+
-**Consistent Structure:** Follow established patterns within each package.
76
+
-**Separation of Concerns:** Keep business logic separate from infrastructure code.
77
+
-**Interface Segregation:** Create focused interfaces rather than monolithic ones.
78
+
-**Dependency Inversion:** Depend on abstractions, not concrete implementations.
83
79
84
80
### Error Handling
85
-
-**Explicit Error Handling:** Use proper exception/error types and hierarchies
86
-
-**Fail Fast:** Validate inputs early and provide clear error messages
87
-
-**Resource Management:** Use appropriate resource cleanup patterns (try-with-resources, RAII, etc.)
88
-
-**Logging:** Provide meaningful log messages at appropriate levels
81
+
-**Explicit Error Handling:** Use proper exception/error types and hierarchies.
82
+
-**Fail Fast:** Validate inputs early and provide clear error messages.
83
+
-**Resource Management:** Use appropriate resource cleanup patterns (try-with-resources, RAII, etc.).
84
+
-**Logging:** Provide meaningful log messages at appropriate levels.
89
85
90
86
### Documentation Standards
91
-
-**Function Documentation:** All public functions/methods must have comprehensive documentation
92
-
-**Type Annotations:** Use static type checking where available (TypeScript, Python type hints, etc.)
93
-
-**README Files:** Each package/module should have clear usage documentation
94
-
-**Inline Comments:** Explain *why*, not *what* - the code should be self-documenting
87
+
-**Function Documentation:** All public functions/methods must have comprehensive documentation.
88
+
-**Type Annotations:** Use static type checking where available (TypeScript, Python type hints, etc.).
89
+
-**README Files:** Each package/module should have clear usage documentation.
90
+
-**Inline Comments:** Explain *why*, not *what* - the code should be self-documenting.
95
91
96
92
### Project Language Requirement
97
93
-**English for code and docs (REQUIRED):** Regardless of the natural language a user speaks when interacting with contributors or tools, all project-facing text must use English. This includes:
@@ -100,7 +96,7 @@ RobotCode is a comprehensive Robot Framework toolkit that provides IDE extension
100
96
- Public and internal variable, function, class, and module names (identifiers)
101
97
- Commit messages and code review comments where project conventions apply
102
98
103
-
This rule ensures consistency across the codebase, improves discoverability for international contributors, and enables reliable tooling (linters, analyzers, and internationalized docs). Use English even when writing examples or user-facing strings in tests; if localised strings are required, keep the canonical code-level names and primary docs in English and add separate localized resources.
99
+
This rule ensures consistency across the codebase, improves discoverability for international contributors, and enables reliable tooling (linters, analyzers, and internationalized docs). Use English even when writing examples or user-facing strings in tests; if localized strings are required, keep the canonical code-level names and primary docs in English and add separate localized resources.
104
100
105
101
### Commit Message Standard
106
102
-**Conventional Commits (REQUIRED):** This project uses the Conventional Commits specification for commit messages. Commit messages must follow the format:
@@ -123,16 +119,16 @@ RobotCode is a comprehensive Robot Framework toolkit that provides IDE extension
123
119
- Multiple line footer entries can reference issues or metadata (e.g., `Closes #123`).
124
120
125
121
### Testing Requirements
126
-
-**Test Coverage:** Maintain high test coverage with meaningful test cases
127
-
-**Test Naming:** Use descriptive test names that explain the scenario
128
-
-**Test Structure:** Organize tests clearly with setup, execution, and verification phases
129
-
-**Test Independence:** Each test should be able to run in isolation
122
+
-**Test Coverage:** Maintain high test coverage with meaningful test cases.
123
+
-**Test Naming:** Use descriptive test names that explain the scenario.
124
+
-**Test Structure:** Organize tests clearly with setup, execution, and verification phases.
125
+
-**Test Independence:** Each test should be able to run in isolation.
130
126
131
127
### Performance Considerations
132
-
-**Async Patterns:** Use proper asynchronous programming patterns where applicable
133
-
-**Resource Efficiency:** Minimize memory allocations and resource usage in hot paths
134
-
-**Lazy Loading:** Load resources only when needed
135
-
-**Caching Strategy:** Implement appropriate caching for expensive operations
128
+
-**Async Patterns:** Use proper asynchronous programming patterns where applicable.
129
+
-**Resource Efficiency:** Minimize memory allocations and resource usage in hot paths.
130
+
-**Lazy Loading:** Load resources only when needed.
131
+
-**Caching Strategy:** Implement appropriate caching for expensive operations.
136
132
137
133
## Architecture Patterns
138
134
@@ -141,23 +137,23 @@ RobotCode is a comprehensive Robot Framework toolkit that provides IDE extension
141
137
packages/
142
138
├── core/ # Base utilities and shared functionality
143
139
├── language_server/ # LSP implementation for IDE integration
0 commit comments