@sylix/coworker 2.0.10 → 2.0.12

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 (178) hide show
  1. package/dist/commands/slash/config.d.ts.map +1 -1
  2. package/dist/commands/slash/config.js +23 -5
  3. package/dist/commands/slash/config.js.map +1 -1
  4. package/dist/commands/slash/todo.js +1 -1
  5. package/dist/commands/slash/todo.js.map +1 -1
  6. package/dist/core/CoWorkerAgent.d.ts.map +1 -1
  7. package/dist/core/CoWorkerAgent.js +6 -3
  8. package/dist/core/CoWorkerAgent.js.map +1 -1
  9. package/dist/permissions/PermissionInterceptor.js +1 -1
  10. package/dist/permissions/PermissionInterceptor.js.map +1 -1
  11. package/dist/skills/defaults/accessibility/screen-reader-testing.md +545 -0
  12. package/dist/skills/defaults/accessibility/wcag-audit-patterns.md +555 -0
  13. package/dist/skills/defaults/ai-ml/rag.md +276 -0
  14. package/dist/skills/defaults/backend-development/api-design-principles.md +528 -0
  15. package/dist/skills/defaults/backend-development/api-design.md +285 -0
  16. package/dist/skills/defaults/backend-development/architecture-patterns.md +494 -0
  17. package/dist/skills/defaults/backend-development/async-python.md +237 -0
  18. package/dist/skills/defaults/backend-development/auth-implementation-patterns.md +638 -0
  19. package/dist/skills/defaults/backend-development/bazel-build-optimization.md +387 -0
  20. package/dist/skills/defaults/backend-development/billing-automation/SKILL.md +566 -0
  21. package/dist/skills/defaults/backend-development/code-review-excellence.md +538 -0
  22. package/dist/skills/defaults/backend-development/cqrs-implementation.md +554 -0
  23. package/dist/skills/defaults/backend-development/database-design.md +305 -0
  24. package/dist/skills/defaults/backend-development/debugging-strategies.md +536 -0
  25. package/dist/skills/defaults/backend-development/e2e-testing-patterns.md +544 -0
  26. package/dist/skills/defaults/backend-development/error-handling-patterns.md +641 -0
  27. package/dist/skills/defaults/backend-development/fastapi-templates.md +559 -0
  28. package/dist/skills/defaults/backend-development/fastapi.md +309 -0
  29. package/dist/skills/defaults/backend-development/git-advanced-workflows.md +405 -0
  30. package/dist/skills/defaults/backend-development/microservices-patterns.md +595 -0
  31. package/dist/skills/defaults/backend-development/microservices.md +284 -0
  32. package/dist/skills/defaults/backend-development/monorepo-management.md +623 -0
  33. package/dist/skills/defaults/backend-development/nodejs-backend-patterns.md +1048 -0
  34. package/dist/skills/defaults/backend-development/nx-workspace-patterns.md +457 -0
  35. package/dist/skills/defaults/backend-development/paypal-integration/SKILL.md +478 -0
  36. package/dist/skills/defaults/backend-development/pci-compliance/SKILL.md +480 -0
  37. package/dist/skills/defaults/backend-development/python-anti-patterns.md +349 -0
  38. package/dist/skills/defaults/backend-development/python-background-jobs.md +364 -0
  39. package/dist/skills/defaults/backend-development/python-code-style.md +360 -0
  40. package/dist/skills/defaults/backend-development/python-configuration.md +368 -0
  41. package/dist/skills/defaults/backend-development/python-design-patterns.md +296 -0
  42. package/dist/skills/defaults/backend-development/python-error-handling.md +323 -0
  43. package/dist/skills/defaults/backend-development/python-packaging.md +887 -0
  44. package/dist/skills/defaults/backend-development/python-performance-optimization.md +874 -0
  45. package/dist/skills/defaults/backend-development/python-project-structure.md +252 -0
  46. package/dist/skills/defaults/backend-development/python-resilience.md +376 -0
  47. package/dist/skills/defaults/backend-development/python-resource-management.md +421 -0
  48. package/dist/skills/defaults/backend-development/python-type-safety.md +428 -0
  49. package/dist/skills/defaults/backend-development/sql-optimization-patterns.md +509 -0
  50. package/dist/skills/defaults/backend-development/stripe-integration/SKILL.md +522 -0
  51. package/dist/skills/defaults/backend-development/turborepo-caching.md +376 -0
  52. package/dist/skills/defaults/blockchain/defi-protocol-templates.md +430 -0
  53. package/dist/skills/defaults/blockchain/nft-standards.md +364 -0
  54. package/dist/skills/defaults/blockchain/solidity-security.md +514 -0
  55. package/dist/skills/defaults/blockchain/web3-testing.md +360 -0
  56. package/dist/skills/defaults/business/competitive-landscape/SKILL.md +527 -0
  57. package/dist/skills/defaults/business/market-sizing-analysis/SKILL.md +451 -0
  58. package/dist/skills/defaults/business/startup-financial-modeling/SKILL.md +494 -0
  59. package/dist/skills/defaults/business/startup-metrics-framework/SKILL.md +564 -0
  60. package/dist/skills/defaults/business/team-composition-analysis.md +437 -0
  61. package/dist/skills/defaults/compliance/employment-contract-templates/SKILL.md +527 -0
  62. package/dist/skills/defaults/compliance/gdpr-data-handling/SKILL.md +630 -0
  63. package/dist/skills/defaults/data-engineering/airflow-dag-patterns.md +436 -0
  64. package/dist/skills/defaults/data-engineering/airflow.md +519 -0
  65. package/dist/skills/defaults/data-engineering/data-quality.md +583 -0
  66. package/dist/skills/defaults/data-engineering/dbt-transformation-patterns.md +482 -0
  67. package/dist/skills/defaults/data-engineering/dbt.md +556 -0
  68. package/dist/skills/defaults/data-engineering/ml-pipeline-workflow/SKILL.md +247 -0
  69. package/dist/skills/defaults/data-engineering/spark-optimization.md +348 -0
  70. package/dist/skills/defaults/data-engineering/spark.md +411 -0
  71. package/dist/skills/defaults/database/postgresql.md +202 -0
  72. package/dist/skills/defaults/debugging/systematic-debugging.md +249 -0
  73. package/dist/skills/defaults/devops/architecture-decision-records.md +448 -0
  74. package/dist/skills/defaults/devops/changelog-automation.md +580 -0
  75. package/dist/skills/defaults/devops/cicd.md +314 -0
  76. package/dist/skills/defaults/devops/cloud.md +263 -0
  77. package/dist/skills/defaults/devops/code-review-excellence.md +299 -0
  78. package/dist/skills/defaults/devops/cost-optimization.md +295 -0
  79. package/dist/skills/defaults/devops/deployment-pipeline-design.md +356 -0
  80. package/dist/skills/defaults/devops/docker.md +281 -0
  81. package/dist/skills/defaults/devops/git-workflows.md +205 -0
  82. package/dist/skills/defaults/devops/github-actions.md +311 -0
  83. package/dist/skills/defaults/devops/gitlab-ci-patterns.md +266 -0
  84. package/dist/skills/defaults/devops/hybrid-cloud-networking.md +241 -0
  85. package/dist/skills/defaults/devops/istio-traffic-management.md +327 -0
  86. package/dist/skills/defaults/devops/kubernetes.md +339 -0
  87. package/dist/skills/defaults/devops/linkerd-patterns.md +311 -0
  88. package/dist/skills/defaults/devops/multi-cloud-architecture.md +181 -0
  89. package/dist/skills/defaults/devops/observability.md +243 -0
  90. package/dist/skills/defaults/devops/openapi-spec-generation.md +1024 -0
  91. package/dist/skills/defaults/devops/postmortem-writing.md +396 -0
  92. package/dist/skills/defaults/devops/prometheus-configuration.md +265 -0
  93. package/dist/skills/defaults/devops/secrets-management.md +341 -0
  94. package/dist/skills/defaults/devops/service-mesh-observability.md +385 -0
  95. package/dist/skills/defaults/devops/terraform-module-library.md +244 -0
  96. package/dist/skills/defaults/finance/backtesting-frameworks/SKILL.md +663 -0
  97. package/dist/skills/defaults/finance/risk-metrics-calculation/SKILL.md +557 -0
  98. package/dist/skills/defaults/frontend/accessibility-compliance.md +420 -0
  99. package/dist/skills/defaults/frontend/design-system-patterns.md +337 -0
  100. package/dist/skills/defaults/frontend/interaction-design.md +327 -0
  101. package/dist/skills/defaults/frontend/javascript.md +311 -0
  102. package/dist/skills/defaults/frontend/modern-javascript-patterns.md +927 -0
  103. package/dist/skills/defaults/frontend/react-native-design.md +440 -0
  104. package/dist/skills/defaults/frontend/react.md +345 -0
  105. package/dist/skills/defaults/frontend/responsive-design.md +472 -0
  106. package/dist/skills/defaults/frontend/tailwind-design-system.md +337 -0
  107. package/dist/skills/defaults/frontend/typescript-advanced-types.md +724 -0
  108. package/dist/skills/defaults/frontend/typescript.md +334 -0
  109. package/dist/skills/defaults/frontend/visual-design-foundations.md +326 -0
  110. package/dist/skills/defaults/frontend/web-component-design.md +279 -0
  111. package/dist/skills/defaults/game-development/godot-gdscript-patterns.md +188 -0
  112. package/dist/skills/defaults/game-development/unity-ecs-patterns.md +594 -0
  113. package/dist/skills/defaults/kubernetes/gitops-workflow.md +285 -0
  114. package/dist/skills/defaults/kubernetes/gitops.md +280 -0
  115. package/dist/skills/defaults/kubernetes/helm-chart-scaffolding.md +553 -0
  116. package/dist/skills/defaults/kubernetes/helm.md +343 -0
  117. package/dist/skills/defaults/kubernetes/k8s-manifest-generator.md +501 -0
  118. package/dist/skills/defaults/kubernetes/k8s-security-policies.md +342 -0
  119. package/dist/skills/defaults/kubernetes/manifests.md +330 -0
  120. package/dist/skills/defaults/kubernetes/security.md +337 -0
  121. package/dist/skills/defaults/llm-application/embedding-strategies.md +608 -0
  122. package/dist/skills/defaults/llm-application/hybrid-search-implementation.md +570 -0
  123. package/dist/skills/defaults/llm-application/hybrid-search.md +570 -0
  124. package/dist/skills/defaults/llm-application/langchain-architecture.md +666 -0
  125. package/dist/skills/defaults/llm-application/langchain.md +259 -0
  126. package/dist/skills/defaults/llm-application/llm-evaluation.md +695 -0
  127. package/dist/skills/defaults/llm-application/prompt-engineering-patterns.md +449 -0
  128. package/dist/skills/defaults/llm-application/prompt-engineering.md +219 -0
  129. package/dist/skills/defaults/llm-application/rag-implementation.md +434 -0
  130. package/dist/skills/defaults/llm-application/similarity-search-patterns.md +560 -0
  131. package/dist/skills/defaults/llm-application/similarity-search.md +560 -0
  132. package/dist/skills/defaults/llm-application/vector-index-tuning.md +523 -0
  133. package/dist/skills/defaults/mobile/mobile-android-design.md +440 -0
  134. package/dist/skills/defaults/mobile/mobile-ios-design.md +266 -0
  135. package/dist/skills/defaults/monitoring/distributed-tracing.md +436 -0
  136. package/dist/skills/defaults/monitoring/grafana-dashboards.md +370 -0
  137. package/dist/skills/defaults/monitoring/prometheus-configuration.md +379 -0
  138. package/dist/skills/defaults/monitoring/slo-implementation.md +323 -0
  139. package/dist/skills/defaults/refactoring/code-refactoring.md +349 -0
  140. package/dist/skills/defaults/security/anti-reversing-techniques/SKILL.md +559 -0
  141. package/dist/skills/defaults/security/auditor.md +168 -0
  142. package/dist/skills/defaults/security/binary-analysis-patterns/SKILL.md +438 -0
  143. package/dist/skills/defaults/security/memory-forensics/SKILL.md +483 -0
  144. package/dist/skills/defaults/security/mtls-configuration.md +349 -0
  145. package/dist/skills/defaults/security/protocol-reverse-engineering/SKILL.md +520 -0
  146. package/dist/skills/defaults/security/sast-configuration.md +182 -0
  147. package/dist/skills/defaults/security/security.md +313 -0
  148. package/dist/skills/defaults/security/stride-analysis.md +273 -0
  149. package/dist/skills/defaults/security/threat-mitigation-mapping.md +290 -0
  150. package/dist/skills/defaults/systems/bash-defensive-patterns/SKILL.md +539 -0
  151. package/dist/skills/defaults/systems/bats-testing-patterns/SKILL.md +631 -0
  152. package/dist/skills/defaults/systems/go-concurrency-patterns.md +657 -0
  153. package/dist/skills/defaults/systems/memory-safety-patterns.md +605 -0
  154. package/dist/skills/defaults/systems/rust-async-patterns.md +519 -0
  155. package/dist/skills/defaults/systems/shellcheck-configuration/SKILL.md +456 -0
  156. package/dist/skills/defaults/team-collaboration/multi-reviewer-patterns.md +126 -0
  157. package/dist/skills/defaults/team-collaboration/parallel-feature-development.md +151 -0
  158. package/dist/skills/defaults/testing/javascript-testing-patterns.md +1021 -0
  159. package/dist/skills/defaults/testing/python-testing-patterns.md +351 -0
  160. package/dist/skills/defaults/testing/testing.md +332 -0
  161. package/dist/skills/defaults/workflows/context-driven-development.md +384 -0
  162. package/dist/skills/defaults/workflows/track-management.md +592 -0
  163. package/dist/skills/defaults/workflows/workflow-patterns.md +622 -0
  164. package/dist/skills/index.d.ts +11 -0
  165. package/dist/skills/index.d.ts.map +1 -0
  166. package/dist/skills/index.js +129 -0
  167. package/dist/skills/index.js.map +1 -0
  168. package/dist/utils/character.js +6 -9
  169. package/dist/utils/character.js.map +1 -1
  170. package/dist/utils/contextManager.js +3 -7
  171. package/dist/utils/contextManager.js.map +1 -1
  172. package/dist/utils/inputbar.d.ts.map +1 -1
  173. package/dist/utils/inputbar.js +8 -1
  174. package/dist/utils/inputbar.js.map +1 -1
  175. package/dist/utils/output.d.ts.map +1 -1
  176. package/dist/utils/output.js +3 -35
  177. package/dist/utils/output.js.map +1 -1
  178. package/package.json +1 -1
@@ -0,0 +1,349 @@
1
+ ---
2
+ name: code-refactoring-patterns
3
+ description: Master code refactoring techniques to improve code quality, reduce complexity, and apply SOLID principles. Use when improving existing code, reducing technical debt, or applying design patterns.
4
+ ---
5
+
6
+ # Code Refactoring Patterns
7
+
8
+ Master code refactoring techniques to improve code quality, reduce complexity, and apply SOLID principles.
9
+
10
+ ## When to Use This Skill
11
+
12
+ - Improving existing codebases
13
+ - Reducing technical debt
14
+ - Applying SOLID principles
15
+ - Extracting complex logic into smaller functions
16
+ - Converting procedural code to object-oriented
17
+ - Improving testability
18
+
19
+ ## Core Refactoring Techniques
20
+
21
+ ### 1. Extract Method
22
+
23
+ **Before:**
24
+ ```python
25
+ def process_order(order):
26
+ # Validate order
27
+ if order.customer_id is None:
28
+ return False
29
+ if not order.items:
30
+ return False
31
+
32
+ # Calculate total
33
+ total = 0
34
+ for item in order.items:
35
+ total += item.price * item.quantity
36
+
37
+ # Apply discount
38
+ if total > 100:
39
+ total *= 0.9
40
+
41
+ # Save order
42
+ order.total = total
43
+ db.save(order)
44
+
45
+ return True
46
+ ```
47
+
48
+ **After:**
49
+ ```python
50
+ def process_order(order):
51
+ if not validate_order(order):
52
+ return False
53
+
54
+ total = calculate_total(order)
55
+ total = apply_discount(total)
56
+
57
+ order.total = total
58
+ db.save(order)
59
+
60
+ return True
61
+
62
+ def validate_order(order):
63
+ return order.customer_id is not None and bool(order.items)
64
+
65
+ def calculate_total(order):
66
+ return sum(item.price * item.quantity for item in order.items)
67
+
68
+ def apply_discount(total):
69
+ return total * 0.9 if total > 100 else total
70
+ ```
71
+
72
+ ### 2. Replace Conditional with Polymorphism
73
+
74
+ **Before:**
75
+ ```python
76
+ class Employee:
77
+ def calculate_pay(self):
78
+ if self.type == "hourly":
79
+ return self.hours * self.rate
80
+ elif self.type == "salary":
81
+ return self.salary / 12
82
+ elif self.type == "commission":
83
+ return self.salary + self.commission
84
+ ```
85
+
86
+ **After:**
87
+ ```python
88
+ from abc import ABC, abstractmethod
89
+
90
+ class Employee(ABC):
91
+ @abstractmethod
92
+ def calculate_pay(self):
93
+ pass
94
+
95
+ class HourlyEmployee(Employee):
96
+ def calculate_pay(self):
97
+ return self.hours * self.rate
98
+
99
+ class SalariedEmployee(Employee):
100
+ def calculate_pay(self):
101
+ return self.salary / 12
102
+ ```
103
+
104
+ ### 3. Introduce Parameter Object
105
+
106
+ **Before:**
107
+ ```python
108
+ def create_report(start_date, end_date, include_charts, include_summary,
109
+ include_details, department, region):
110
+ # Report creation logic
111
+ pass
112
+ ```
113
+
114
+ **After:**
115
+ ```python
116
+ from dataclasses import dataclass
117
+
118
+ @dataclass
119
+ class ReportParams:
120
+ start_date: date
121
+ end_date: date
122
+ include_charts: bool = False
123
+ include_summary: bool = True
124
+ include_details: bool = False
125
+ department: str = None
126
+ region: str = None
127
+
128
+ def create_report(params: ReportParams):
129
+ # Report creation logic
130
+ pass
131
+ ```
132
+
133
+ ### 4. Replace Magic Numbers with Constants
134
+
135
+ **Before:**
136
+ ```python
137
+ def calculate_tax(amount):
138
+ return amount * 1.2
139
+
140
+ if status == 1: # What is 1?
141
+ pass
142
+ ```
143
+
144
+ **After:**
145
+ ```python
146
+ TAX_RATE = Decimal('1.20')
147
+ class Status:
148
+ ACTIVE = 1
149
+ INACTIVE = 2
150
+ PENDING = 3
151
+
152
+ def calculate_tax(amount):
153
+ return amount * TAX_RATE
154
+ ```
155
+
156
+ ### 5. Extract Interface
157
+
158
+ **Before:**
159
+ ```python
160
+ class OrderService:
161
+ def create_order(self, data):
162
+ # validation + creation logic
163
+
164
+ def cancel_order(self, order_id):
165
+ # cancellation logic
166
+
167
+ class CustomerService:
168
+ def create_customer(self, data):
169
+ # validation + creation logic
170
+ ```
171
+
172
+ **After:**
173
+ ```python
174
+ from abc import ABC, abstractmethod
175
+
176
+ class Creatable(ABC):
177
+ @abstractmethod
178
+ def create(self, data):
179
+ pass
180
+
181
+ class OrderService(Creatable):
182
+ def create(self, data):
183
+ # creation logic
184
+
185
+ class CustomerService(Creatable):
186
+ def create(self, data):
187
+ # creation logic
188
+ ```
189
+
190
+ ## SOLID Principles
191
+
192
+ ### Single Responsibility Principle (SRP)
193
+
194
+ Each class should have only one reason to change:
195
+
196
+ ```python
197
+ # BAD: Multiple responsibilities
198
+ class User:
199
+ def authenticate(self, password):
200
+ pass
201
+
202
+ def save_to_database(self):
203
+ pass
204
+
205
+ def send_email(self):
206
+ pass
207
+
208
+ # GOOD: Separate responsibilities
209
+ class User:
210
+ pass
211
+
212
+ class Authenticator:
213
+ def authenticate(self, user, password):
214
+ pass
215
+
216
+ class UserRepository:
217
+ def save(self, user):
218
+ pass
219
+
220
+ class EmailService:
221
+ def send(self, user, message):
222
+ pass
223
+ ```
224
+
225
+ ### Open/Closed Principle (OCP)
226
+
227
+ Open for extension, closed for modification:
228
+
229
+ ```python
230
+ # BAD: Need to modify to add new types
231
+ class AreaCalculator:
232
+ def calculate(self, shape):
233
+ if isinstance(shape, Circle):
234
+ return math.pi * shape.radius ** 2
235
+ elif isinstance(shape, Rectangle):
236
+ return shape.width * shape.height
237
+ # Need to modify for new shapes
238
+
239
+ # GOOD: Add new shapes without modification
240
+ from abc import ABC, abstractmethod
241
+
242
+ class Shape(ABC):
243
+ @abstractmethod
244
+ def area(self):
245
+ pass
246
+
247
+ class Circle(Shape):
248
+ def area(self):
249
+ return math.pi * self.radius ** 2
250
+
251
+ class Rectangle(Shape):
252
+ def area(self):
253
+ return self.width * self.height
254
+ ```
255
+
256
+ ### Liskov Substitution Principle (LSP)
257
+
258
+ Subtypes must be substitutable for their base types:
259
+
260
+ ```python
261
+ # BAD: Square violates LSP
262
+ class Rectangle:
263
+ def set_width(self, width):
264
+ self.width = width
265
+
266
+ def set_height(self, height):
267
+ self.height = height
268
+
269
+ class Square(Rectangle):
270
+ def set_width(self, width):
271
+ self.width = width
272
+ self.height = width # Violates expectation
273
+
274
+ def set_height(self, height):
275
+ self.height = height
276
+ self.width = height
277
+
278
+ # GOOD: Separate hierarchies
279
+ class Shape(ABC):
280
+ @abstractmethod
281
+ def area(self):
282
+ pass
283
+
284
+ class Rectangle(Shape):
285
+ def __init__(self, width, height):
286
+ self.width = width
287
+ self.height = height
288
+
289
+ def area(self):
290
+ return self.width * self.height
291
+
292
+ class Square(Shape):
293
+ def __init__(self, side):
294
+ self.side = side
295
+
296
+ def area(self):
297
+ return self.side ** 2
298
+ ```
299
+
300
+ ### Dependency Inversion Principle (DIP)
301
+
302
+ Depend on abstractions, not concretions:
303
+
304
+ ```python
305
+ # BAD: Direct dependency on concrete class
306
+ class OrderService:
307
+ def __init__(self):
308
+ self.db = PostgreSQLDatabase()
309
+
310
+ def save(self, order):
311
+ self.db.save(order)
312
+
313
+ # GOOD: Depend on abstraction
314
+ class Database(ABC):
315
+ @abstractmethod
316
+ def save(self, entity):
317
+ pass
318
+
319
+ class OrderService:
320
+ def __init__(self, db: Database):
321
+ self.db = db
322
+
323
+ def save(self, order):
324
+ self.db.save(order)
325
+ ```
326
+
327
+ ## Code Smells to Fix
328
+
329
+ | Smell | Solution |
330
+ |-------|----------|
331
+ | Long methods | Extract to smaller methods |
332
+ | Large classes | Split into focused classes |
333
+ | Duplicated code | Extract to shared method |
334
+ | Feature envy | Move method to data class |
335
+ | Data clumps | Introduce parameter object |
336
+ | Primitive obsession | Replace with value objects |
337
+ | Switch statements | Use polymorphism |
338
+ | Parallel inheritance | Merge hierarchies |
339
+ | Lazy class | Remove or inline |
340
+ | Speculative generality | Remove unused abstractions |
341
+
342
+ ## Refactoring Checklist
343
+
344
+ 1. [ ] Tests exist before refactoring
345
+ 2. [ ] Small, incremental changes
346
+ 3. [ ] Commit after each successful refactor
347
+ 4. [ ] Run tests after each change
348
+ 5. [ ] Use IDE refactoring tools
349
+ 6. [ ] Check code coverage maintained