@sylix/coworker 2.0.11 → 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 (169) hide show
  1. package/dist/commands/slash/config.d.ts.map +1 -1
  2. package/dist/commands/slash/config.js +22 -4
  3. package/dist/commands/slash/config.js.map +1 -1
  4. package/dist/core/CoWorkerAgent.d.ts.map +1 -1
  5. package/dist/core/CoWorkerAgent.js +6 -3
  6. package/dist/core/CoWorkerAgent.js.map +1 -1
  7. package/dist/skills/defaults/accessibility/screen-reader-testing.md +545 -0
  8. package/dist/skills/defaults/accessibility/wcag-audit-patterns.md +555 -0
  9. package/dist/skills/defaults/ai-ml/rag.md +276 -0
  10. package/dist/skills/defaults/backend-development/api-design-principles.md +528 -0
  11. package/dist/skills/defaults/backend-development/api-design.md +285 -0
  12. package/dist/skills/defaults/backend-development/architecture-patterns.md +494 -0
  13. package/dist/skills/defaults/backend-development/async-python.md +237 -0
  14. package/dist/skills/defaults/backend-development/auth-implementation-patterns.md +638 -0
  15. package/dist/skills/defaults/backend-development/bazel-build-optimization.md +387 -0
  16. package/dist/skills/defaults/backend-development/billing-automation/SKILL.md +566 -0
  17. package/dist/skills/defaults/backend-development/code-review-excellence.md +538 -0
  18. package/dist/skills/defaults/backend-development/cqrs-implementation.md +554 -0
  19. package/dist/skills/defaults/backend-development/database-design.md +305 -0
  20. package/dist/skills/defaults/backend-development/debugging-strategies.md +536 -0
  21. package/dist/skills/defaults/backend-development/e2e-testing-patterns.md +544 -0
  22. package/dist/skills/defaults/backend-development/error-handling-patterns.md +641 -0
  23. package/dist/skills/defaults/backend-development/fastapi-templates.md +559 -0
  24. package/dist/skills/defaults/backend-development/fastapi.md +309 -0
  25. package/dist/skills/defaults/backend-development/git-advanced-workflows.md +405 -0
  26. package/dist/skills/defaults/backend-development/microservices-patterns.md +595 -0
  27. package/dist/skills/defaults/backend-development/microservices.md +284 -0
  28. package/dist/skills/defaults/backend-development/monorepo-management.md +623 -0
  29. package/dist/skills/defaults/backend-development/nodejs-backend-patterns.md +1048 -0
  30. package/dist/skills/defaults/backend-development/nx-workspace-patterns.md +457 -0
  31. package/dist/skills/defaults/backend-development/paypal-integration/SKILL.md +478 -0
  32. package/dist/skills/defaults/backend-development/pci-compliance/SKILL.md +480 -0
  33. package/dist/skills/defaults/backend-development/python-anti-patterns.md +349 -0
  34. package/dist/skills/defaults/backend-development/python-background-jobs.md +364 -0
  35. package/dist/skills/defaults/backend-development/python-code-style.md +360 -0
  36. package/dist/skills/defaults/backend-development/python-configuration.md +368 -0
  37. package/dist/skills/defaults/backend-development/python-design-patterns.md +296 -0
  38. package/dist/skills/defaults/backend-development/python-error-handling.md +323 -0
  39. package/dist/skills/defaults/backend-development/python-packaging.md +887 -0
  40. package/dist/skills/defaults/backend-development/python-performance-optimization.md +874 -0
  41. package/dist/skills/defaults/backend-development/python-project-structure.md +252 -0
  42. package/dist/skills/defaults/backend-development/python-resilience.md +376 -0
  43. package/dist/skills/defaults/backend-development/python-resource-management.md +421 -0
  44. package/dist/skills/defaults/backend-development/python-type-safety.md +428 -0
  45. package/dist/skills/defaults/backend-development/sql-optimization-patterns.md +509 -0
  46. package/dist/skills/defaults/backend-development/stripe-integration/SKILL.md +522 -0
  47. package/dist/skills/defaults/backend-development/turborepo-caching.md +376 -0
  48. package/dist/skills/defaults/blockchain/defi-protocol-templates.md +430 -0
  49. package/dist/skills/defaults/blockchain/nft-standards.md +364 -0
  50. package/dist/skills/defaults/blockchain/solidity-security.md +514 -0
  51. package/dist/skills/defaults/blockchain/web3-testing.md +360 -0
  52. package/dist/skills/defaults/business/competitive-landscape/SKILL.md +527 -0
  53. package/dist/skills/defaults/business/market-sizing-analysis/SKILL.md +451 -0
  54. package/dist/skills/defaults/business/startup-financial-modeling/SKILL.md +494 -0
  55. package/dist/skills/defaults/business/startup-metrics-framework/SKILL.md +564 -0
  56. package/dist/skills/defaults/business/team-composition-analysis.md +437 -0
  57. package/dist/skills/defaults/compliance/employment-contract-templates/SKILL.md +527 -0
  58. package/dist/skills/defaults/compliance/gdpr-data-handling/SKILL.md +630 -0
  59. package/dist/skills/defaults/data-engineering/airflow-dag-patterns.md +436 -0
  60. package/dist/skills/defaults/data-engineering/airflow.md +519 -0
  61. package/dist/skills/defaults/data-engineering/data-quality.md +583 -0
  62. package/dist/skills/defaults/data-engineering/dbt-transformation-patterns.md +482 -0
  63. package/dist/skills/defaults/data-engineering/dbt.md +556 -0
  64. package/dist/skills/defaults/data-engineering/ml-pipeline-workflow/SKILL.md +247 -0
  65. package/dist/skills/defaults/data-engineering/spark-optimization.md +348 -0
  66. package/dist/skills/defaults/data-engineering/spark.md +411 -0
  67. package/dist/skills/defaults/database/postgresql.md +202 -0
  68. package/dist/skills/defaults/debugging/systematic-debugging.md +249 -0
  69. package/dist/skills/defaults/devops/architecture-decision-records.md +448 -0
  70. package/dist/skills/defaults/devops/changelog-automation.md +580 -0
  71. package/dist/skills/defaults/devops/cicd.md +314 -0
  72. package/dist/skills/defaults/devops/cloud.md +263 -0
  73. package/dist/skills/defaults/devops/code-review-excellence.md +299 -0
  74. package/dist/skills/defaults/devops/cost-optimization.md +295 -0
  75. package/dist/skills/defaults/devops/deployment-pipeline-design.md +356 -0
  76. package/dist/skills/defaults/devops/docker.md +281 -0
  77. package/dist/skills/defaults/devops/git-workflows.md +205 -0
  78. package/dist/skills/defaults/devops/github-actions.md +311 -0
  79. package/dist/skills/defaults/devops/gitlab-ci-patterns.md +266 -0
  80. package/dist/skills/defaults/devops/hybrid-cloud-networking.md +241 -0
  81. package/dist/skills/defaults/devops/istio-traffic-management.md +327 -0
  82. package/dist/skills/defaults/devops/kubernetes.md +339 -0
  83. package/dist/skills/defaults/devops/linkerd-patterns.md +311 -0
  84. package/dist/skills/defaults/devops/multi-cloud-architecture.md +181 -0
  85. package/dist/skills/defaults/devops/observability.md +243 -0
  86. package/dist/skills/defaults/devops/openapi-spec-generation.md +1024 -0
  87. package/dist/skills/defaults/devops/postmortem-writing.md +396 -0
  88. package/dist/skills/defaults/devops/prometheus-configuration.md +265 -0
  89. package/dist/skills/defaults/devops/secrets-management.md +341 -0
  90. package/dist/skills/defaults/devops/service-mesh-observability.md +385 -0
  91. package/dist/skills/defaults/devops/terraform-module-library.md +244 -0
  92. package/dist/skills/defaults/finance/backtesting-frameworks/SKILL.md +663 -0
  93. package/dist/skills/defaults/finance/risk-metrics-calculation/SKILL.md +557 -0
  94. package/dist/skills/defaults/frontend/accessibility-compliance.md +420 -0
  95. package/dist/skills/defaults/frontend/design-system-patterns.md +337 -0
  96. package/dist/skills/defaults/frontend/interaction-design.md +327 -0
  97. package/dist/skills/defaults/frontend/javascript.md +311 -0
  98. package/dist/skills/defaults/frontend/modern-javascript-patterns.md +927 -0
  99. package/dist/skills/defaults/frontend/react-native-design.md +440 -0
  100. package/dist/skills/defaults/frontend/react.md +345 -0
  101. package/dist/skills/defaults/frontend/responsive-design.md +472 -0
  102. package/dist/skills/defaults/frontend/tailwind-design-system.md +337 -0
  103. package/dist/skills/defaults/frontend/typescript-advanced-types.md +724 -0
  104. package/dist/skills/defaults/frontend/typescript.md +334 -0
  105. package/dist/skills/defaults/frontend/visual-design-foundations.md +326 -0
  106. package/dist/skills/defaults/frontend/web-component-design.md +279 -0
  107. package/dist/skills/defaults/game-development/godot-gdscript-patterns.md +188 -0
  108. package/dist/skills/defaults/game-development/unity-ecs-patterns.md +594 -0
  109. package/dist/skills/defaults/kubernetes/gitops-workflow.md +285 -0
  110. package/dist/skills/defaults/kubernetes/gitops.md +280 -0
  111. package/dist/skills/defaults/kubernetes/helm-chart-scaffolding.md +553 -0
  112. package/dist/skills/defaults/kubernetes/helm.md +343 -0
  113. package/dist/skills/defaults/kubernetes/k8s-manifest-generator.md +501 -0
  114. package/dist/skills/defaults/kubernetes/k8s-security-policies.md +342 -0
  115. package/dist/skills/defaults/kubernetes/manifests.md +330 -0
  116. package/dist/skills/defaults/kubernetes/security.md +337 -0
  117. package/dist/skills/defaults/llm-application/embedding-strategies.md +608 -0
  118. package/dist/skills/defaults/llm-application/hybrid-search-implementation.md +570 -0
  119. package/dist/skills/defaults/llm-application/hybrid-search.md +570 -0
  120. package/dist/skills/defaults/llm-application/langchain-architecture.md +666 -0
  121. package/dist/skills/defaults/llm-application/langchain.md +259 -0
  122. package/dist/skills/defaults/llm-application/llm-evaluation.md +695 -0
  123. package/dist/skills/defaults/llm-application/prompt-engineering-patterns.md +449 -0
  124. package/dist/skills/defaults/llm-application/prompt-engineering.md +219 -0
  125. package/dist/skills/defaults/llm-application/rag-implementation.md +434 -0
  126. package/dist/skills/defaults/llm-application/similarity-search-patterns.md +560 -0
  127. package/dist/skills/defaults/llm-application/similarity-search.md +560 -0
  128. package/dist/skills/defaults/llm-application/vector-index-tuning.md +523 -0
  129. package/dist/skills/defaults/mobile/mobile-android-design.md +440 -0
  130. package/dist/skills/defaults/mobile/mobile-ios-design.md +266 -0
  131. package/dist/skills/defaults/monitoring/distributed-tracing.md +436 -0
  132. package/dist/skills/defaults/monitoring/grafana-dashboards.md +370 -0
  133. package/dist/skills/defaults/monitoring/prometheus-configuration.md +379 -0
  134. package/dist/skills/defaults/monitoring/slo-implementation.md +323 -0
  135. package/dist/skills/defaults/refactoring/code-refactoring.md +349 -0
  136. package/dist/skills/defaults/security/anti-reversing-techniques/SKILL.md +559 -0
  137. package/dist/skills/defaults/security/auditor.md +168 -0
  138. package/dist/skills/defaults/security/binary-analysis-patterns/SKILL.md +438 -0
  139. package/dist/skills/defaults/security/memory-forensics/SKILL.md +483 -0
  140. package/dist/skills/defaults/security/mtls-configuration.md +349 -0
  141. package/dist/skills/defaults/security/protocol-reverse-engineering/SKILL.md +520 -0
  142. package/dist/skills/defaults/security/sast-configuration.md +182 -0
  143. package/dist/skills/defaults/security/security.md +313 -0
  144. package/dist/skills/defaults/security/stride-analysis.md +273 -0
  145. package/dist/skills/defaults/security/threat-mitigation-mapping.md +290 -0
  146. package/dist/skills/defaults/systems/bash-defensive-patterns/SKILL.md +539 -0
  147. package/dist/skills/defaults/systems/bats-testing-patterns/SKILL.md +631 -0
  148. package/dist/skills/defaults/systems/go-concurrency-patterns.md +657 -0
  149. package/dist/skills/defaults/systems/memory-safety-patterns.md +605 -0
  150. package/dist/skills/defaults/systems/rust-async-patterns.md +519 -0
  151. package/dist/skills/defaults/systems/shellcheck-configuration/SKILL.md +456 -0
  152. package/dist/skills/defaults/team-collaboration/multi-reviewer-patterns.md +126 -0
  153. package/dist/skills/defaults/team-collaboration/parallel-feature-development.md +151 -0
  154. package/dist/skills/defaults/testing/javascript-testing-patterns.md +1021 -0
  155. package/dist/skills/defaults/testing/python-testing-patterns.md +351 -0
  156. package/dist/skills/defaults/testing/testing.md +332 -0
  157. package/dist/skills/defaults/workflows/context-driven-development.md +384 -0
  158. package/dist/skills/defaults/workflows/track-management.md +592 -0
  159. package/dist/skills/defaults/workflows/workflow-patterns.md +622 -0
  160. package/dist/skills/index.d.ts +11 -0
  161. package/dist/skills/index.d.ts.map +1 -0
  162. package/dist/skills/index.js +129 -0
  163. package/dist/skills/index.js.map +1 -0
  164. package/dist/utils/character.js +4 -4
  165. package/dist/utils/character.js.map +1 -1
  166. package/dist/utils/inputbar.d.ts.map +1 -1
  167. package/dist/utils/inputbar.js +7 -0
  168. package/dist/utils/inputbar.js.map +1 -1
  169. package/package.json +1 -1
@@ -0,0 +1,284 @@
1
+ ---
2
+ name: microservices
3
+ description: Design and implement microservices architectures with patterns for service decomposition, communication, and orchestration.
4
+ ---
5
+
6
+ # Microservices Architecture — CoWorker Edition
7
+
8
+ Build scalable, maintainable distributed systems using proven microservices patterns.
9
+
10
+ ## When to Use This Skill
11
+
12
+ - Decomposing a monolith into services
13
+ - Designing new distributed systems
14
+ - Choosing communication patterns between services
15
+ - Implementing service discovery and orchestration
16
+ - Handling distributed transactions
17
+
18
+ ## Core Principles
19
+
20
+ ### 1. Service Decomposition
21
+
22
+ **When to split a service:**
23
+ - Different scaling requirements
24
+ - Distinct domain boundaries
25
+ - Independent deployment cycles
26
+ - Different technology needs
27
+
28
+ **How to decompose:**
29
+ - Start with business capabilities
30
+ - Identify bounded contexts (DDD)
31
+ - Define clear API contracts
32
+ - Extract incrementally
33
+
34
+ ```python
35
+ # Bad: Too granular - chat system split into 20 services
36
+ # user-service, message-service, read-service, typing-service,
37
+ # presence-service, notification-service, etc.
38
+
39
+ # Good: Decompose by business capability
40
+ # user-service, conversation-service, notification-service
41
+ ```
42
+
43
+ ### 2. Communication Patterns
44
+
45
+ #### Synchronous (REST/gRPC)
46
+
47
+ ```python
48
+ # FastAPI service
49
+ from fastapi import HTTPException
50
+
51
+ class OrderService:
52
+ def __init__(self, http_client):
53
+ self.http = http_client
54
+
55
+ async def get_order_with_user(self, order_id: str):
56
+ order = await self.get_order(order_id)
57
+ if not order:
58
+ raise HTTPException(404, "Order not found")
59
+
60
+ # Sync call to user service
61
+ user = await self.http.get(
62
+ f"http://user-service/api/users/{order.user_id}"
63
+ )
64
+ order.user = user
65
+ return order
66
+ ```
67
+
68
+ #### Asynchronous (Message Queues)
69
+
70
+ ```python
71
+ import aio_pika
72
+
73
+ class OrderService:
74
+ async def create_order(self, order_data: dict):
75
+ # Create order locally
76
+ order = await self.save_order(order_data)
77
+
78
+ # Publish event asynchronously
79
+ await self.channel.default_exchange.publish(
80
+ aio_pika.Message(
81
+ body=json.dumps({
82
+ "event": "order.created",
83
+ "order_id": order.id,
84
+ "user_id": order.user_id
85
+ }).encode()
86
+ ),
87
+ routing_key="order.events"
88
+ )
89
+
90
+ return order
91
+ ```
92
+
93
+ ### 3. Service Discovery
94
+
95
+ ```yaml
96
+ # Kubernetes service (k8s)
97
+ apiVersion: v1
98
+ kind: Service
99
+ metadata:
100
+ name: user-service
101
+ spec:
102
+ selector:
103
+ app: user-service
104
+ ports:
105
+ - port: 80
106
+ targetPort: 8080
107
+ ---
108
+ apiVersion: v1
109
+ kind: Endpoints
110
+ metadata:
111
+ name: user-service
112
+ subsets:
113
+ - addresses:
114
+ - ip: 10.1.0.5
115
+ ports:
116
+ - port: 8080
117
+ ```
118
+
119
+ ### 4. Circuit Breaker Pattern
120
+
121
+ ```python
122
+ from circuitbreaker import circuit
123
+
124
+ class UserServiceClient:
125
+ @circuit(failure_threshold=5, recovery_timeout=30)
126
+ async def get_user(self, user_id: str):
127
+ response = await self.http.get(
128
+ f"http://user-service/api/users/{user_id}",
129
+ timeout=5
130
+ )
131
+ if response.status == 503:
132
+ raise ServiceUnavailable()
133
+ return response.json()
134
+
135
+ # Fallback when circuit is open
136
+ async def get_user_safe(user_id: str):
137
+ try:
138
+ return await user_client.get_user(user_id)
139
+ except CircuitOpenError:
140
+ # Return cached data or default
141
+ return await cache.get(f"user:{user_id}")
142
+ ```
143
+
144
+ ### 5. Distributed Tracing
145
+
146
+ ```python
147
+ from opentelemetry import trace
148
+
149
+ tracer = trace.get_tracer(__name__)
150
+
151
+ class OrderService:
152
+ async def process_order(self, order_id: str):
153
+ with tracer.start_as_current_span("process_order") as span:
154
+ span.set_attribute("order.id", order_id)
155
+
156
+ # This span automatically includes parent context
157
+ user = await self.get_user(order_id)
158
+
159
+ with tracer.start_as_current_span("process_payment"):
160
+ await self.payment_service.charge(user, order_id)
161
+
162
+ return {"status": "processed"}
163
+ ```
164
+
165
+ ## Service Mesh
166
+
167
+ ### Istio Configuration
168
+
169
+ ```yaml
170
+ apiVersion: networking.istio.io/v1beta1
171
+ kind: VirtualService
172
+ metadata:
173
+ name: order-service
174
+ spec:
175
+ hosts:
176
+ - order-service
177
+ http:
178
+ - match:
179
+ - headers:
180
+ x-canary:
181
+ exact: "true"
182
+ route:
183
+ - destination:
184
+ host: order-service
185
+ subset: v2
186
+ weight: 10
187
+ - route:
188
+ - destination:
189
+ host: order-service
190
+ subset: v1
191
+ weight: 90
192
+ ---
193
+ apiVersion: networking.istio.io/v1beta1
194
+ kind: DestinationRule
195
+ metadata:
196
+ name: order-service
197
+ spec:
198
+ host: order-service
199
+ trafficPolicy:
200
+ connectionPool:
201
+ tcp:
202
+ maxConnections: 100
203
+ http:
204
+ h2UpgradePolicy: UPGRADE
205
+ http2MaxRequests: 1000
206
+ circuitBreaker:
207
+ consecutive5xxErrors: 5
208
+ interval: 30s
209
+ baseEjectionTime: 60s
210
+ ```
211
+
212
+ ## Saga Pattern
213
+
214
+ ### Choreography
215
+
216
+ ```python
217
+ # Order Service - publishes events
218
+ async def create_order(order_data):
219
+ order = await save_order({**order_data, status: "PENDING"})
220
+
221
+ await publisher.publish("order.created", {
222
+ "order_id": order.id,
223
+ "items": order.items
224
+ })
225
+
226
+ return order
227
+
228
+ # Inventory Service - listens and reacts
229
+ async def on_order_created(event):
230
+ if not reserve_inventory(event.items):
231
+ await publisher.publish("order.failed", {
232
+ "order_id": event.order_id,
233
+ "reason": "inventory_unavailable"
234
+ })
235
+ else:
236
+ await publisher.publish("inventory.reserved", {
237
+ "order_id": event.order_id
238
+ })
239
+ ```
240
+
241
+ ### Orchestration
242
+
243
+ ```python
244
+ class OrderSagaOrchestrator:
245
+ def __init__(self):
246
+ self.steps = [
247
+ ReserveInventoryStep(),
248
+ ProcessPaymentStep(),
249
+ CreateShippingLabelStep(),
250
+ NotifyCustomerStep()
251
+ ]
252
+
253
+ async def execute(self, order_data):
254
+ saga = SagaContext(order_id=generate_id())
255
+
256
+ for step in self.steps:
257
+ try:
258
+ await step.execute(saga)
259
+ except StepFailed as e:
260
+ await self.compensate(saga, e.step)
261
+ raise OrderFailed(e.reason)
262
+
263
+ return saga.order
264
+ ```
265
+
266
+ ## Best Practices
267
+
268
+ 1. **API Design** - Well-defined contracts, versioning, documentation
269
+ 2. **Single Responsibility** - Each service does one thing well
270
+ 3. **Loose Coupling** - Services share only contracts, not databases
271
+ 4. **Observability** - Distributed tracing, logging, metrics
272
+ 5. **Resilience** - Circuit breakers, retries, timeouts
273
+ 6. **Configuration** - Externalize config, use config maps/secrets
274
+ 7. **Security** - mTLS between services, API gateways, rate limiting
275
+
276
+ ## Common Pitfalls
277
+
278
+ - Distributed monolith (services too tightly coupled)
279
+ - Shared databases (breaks independence)
280
+ - Lack of observability
281
+ - No circuit breakers
282
+ - Synchronous everywhere (cascading failures)
283
+ - Ignoring failure modes
284
+ - Over-decomposition (too many services)