@sylix/coworker 2.0.11 → 2.0.14

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,237 @@
1
+ ---
2
+ name: async-patterns
3
+ description: Master async/await patterns in Python for building high-performance concurrent applications.
4
+ ---
5
+
6
+ # Async Python Patterns — CoWorker Edition
7
+
8
+ Build performant, concurrent Python applications.
9
+
10
+ ## When to Use This Skill
11
+
12
+ - Building async APIs
13
+ - Concurrent data processing
14
+ - Background job systems
15
+ - WebSocket servers
16
+
17
+ ## Core Concepts
18
+
19
+ ### 1. Async Basics
20
+
21
+ ```python
22
+ import asyncio
23
+
24
+ async def fetch_data(url: str) -> dict:
25
+ async with aiohttp.ClientSession() as session:
26
+ async with session.get(url) as response:
27
+ return await response.json()
28
+
29
+ async def main():
30
+ # Sequential
31
+ result1 = await fetch_data("https://api1.example.com")
32
+ result2 = await fetch_data("https://api2.example.com")
33
+
34
+ # Concurrent - gather
35
+ results = await asyncio.gather(
36
+ fetch_data("https://api1.example.com"),
37
+ fetch_data("https://api2.example.com"),
38
+ fetch_data("https://api3.example.com")
39
+ )
40
+ ```
41
+
42
+ ### 2. Async Context Managers
43
+
44
+ ```python
45
+ class DatabaseConnection:
46
+ def __init__(self, dsn: str):
47
+ self.dsn = dsn
48
+ self.connection = None
49
+
50
+ async def __aenter__(self):
51
+ self.connection = await asyncpg.connect(self.dsn)
52
+ return self.connection
53
+
54
+ async def __aexit__(self, exc_type, exc_val, exc_tb):
55
+ if self.connection:
56
+ await self.connection.close()
57
+
58
+ # Usage
59
+ async def query_data():
60
+ async with DatabaseConnection(DSN) as conn:
61
+ result = await conn.fetch("SELECT * FROM users")
62
+ return result
63
+ ```
64
+
65
+ ### 3. Semaphores for Rate Limiting
66
+
67
+ ```python
68
+ import asyncio
69
+ from aiohttp import ClientSession
70
+
71
+ # Limit concurrent requests
72
+ semaphore = asyncio.Semaphore(10)
73
+
74
+ async def fetch_with_limit(session: ClientSession, url: str):
75
+ async with semaphore:
76
+ async with session.get(url) as response:
77
+ return await response.json()
78
+
79
+ async def fetch_all(urls: list[str]):
80
+ async with ClientSession() as session:
81
+ tasks = [fetch_with_limit(session, url) for url in urls]
82
+ return await asyncio.gather(*tasks)
83
+ ```
84
+
85
+ ### 4. Background Tasks
86
+
87
+ ```python
88
+ import asyncio
89
+ from datetime import datetime
90
+
91
+ class BackgroundTaskRunner:
92
+ def __init__(self):
93
+ self.tasks: set[asyncio.Task] = set()
94
+
95
+ def schedule(self, coro):
96
+ task = asyncio.create_task(coro)
97
+ self.tasks.add(task)
98
+ task.add_done_callback(self.tasks.discard)
99
+ return task
100
+
101
+ async def wait_all(self):
102
+ await asyncio.gather(*self.tasks)
103
+
104
+ # Usage
105
+ runner = BackgroundTaskRunner()
106
+
107
+ def send_notification(user_id: str, message: str):
108
+ async def _send():
109
+ await asyncio.sleep(1) # Simulate sending
110
+ print(f"Sent to {user_id}: {message}")
111
+
112
+ return runner.schedule(_send())
113
+
114
+ async def process_order(order_id: str):
115
+ # Process immediately
116
+ await update_order_status(order_id, "processing")
117
+
118
+ # Schedule background task
119
+ send_notification(order_id, "Your order is being processed!")
120
+
121
+ return {"status": "processing"}
122
+ ```
123
+
124
+ ### 5. Async Generators
125
+
126
+ ```python
127
+ async def fetch_pages(url: str, page_size: int = 100):
128
+ """Stream paginated results."""
129
+ offset = 0
130
+ while True:
131
+ rows = await db.fetch(
132
+ "SELECT * FROM orders LIMIT $1 OFFSET $2",
133
+ page_size, offset
134
+ )
135
+
136
+ if not rows:
137
+ break
138
+
139
+ for row in rows:
140
+ yield row
141
+
142
+ offset += page_size
143
+
144
+ # Usage - process streaming
145
+ async def process_all_orders():
146
+ async for order in fetch_pages("https://api.example.com/orders"):
147
+ await process_order(order)
148
+ ```
149
+
150
+ ### 6. Producer-Consumer Pattern
151
+
152
+ ```python
153
+ import asyncio
154
+ from collections import deque
155
+
156
+ class AsyncQueue:
157
+ def __init__(self, maxsize: int = 100):
158
+ self.queue: asyncio.Queue = asyncio.Queue(maxsize=maxsize)
159
+
160
+ async def produce(self, items: list):
161
+ for item in items:
162
+ await self.queue.put(item)
163
+ await self.queue.put(None) # Sentinel
164
+
165
+ async def consume(self, processor):
166
+ while True:
167
+ item = await self.queue.get()
168
+ if item is None:
169
+ self.queue.task_done()
170
+ break
171
+ await processor(item)
172
+ self.queue.task_done()
173
+
174
+ async def run(self, items: list, processor):
175
+ await asyncio.gather(
176
+ self.produce(items),
177
+ self.consume(processor)
178
+ )
179
+
180
+ # Usage
181
+ queue = AsyncQueue(maxsize=50)
182
+
183
+ async def process_item(item: dict):
184
+ await asyncio.sleep(0.1) # Simulate work
185
+ return item["id"]
186
+
187
+ await queue.run(large_dataset, process_item)
188
+ ```
189
+
190
+ ### 7. Async Context with Locks
191
+
192
+ ```python
193
+ import asyncio
194
+
195
+ class RateLimiter:
196
+ def __init__(self, max_concurrent: int = 5):
197
+ self.semaphore = asyncio.Semaphore(max_concurrent)
198
+ self.lock = asyncio.Lock()
199
+ self.active = 0
200
+
201
+ async def __aenter__(self):
202
+ await self.semaphore.acquire()
203
+ async with self.lock:
204
+ self.active += 1
205
+ return self
206
+
207
+ async def __aexit__(self, *args):
208
+ self.semaphore.release()
209
+ async with self.lock:
210
+ self.active -= 1
211
+
212
+ # Usage - limit concurrent API calls
213
+ async def call_api(url: str):
214
+ async with RateLimiter(max_concurrent=10):
215
+ async with aiohttp.ClientSession() as session:
216
+ async with session.get(url) as resp:
217
+ return await resp.json()
218
+ ```
219
+
220
+ ## Best Practices
221
+
222
+ 1. **Use asyncio.gather** - Concurrent execution
223
+ 2. **Avoid blocking calls** - Use async libraries
224
+ 3. **Semaphores** - Limit concurrency
225
+ 4. **Context managers** - Clean resources
226
+ 5. **Async generators** - Memory efficient
227
+ 6. **Proper cancellation** - Handle TaskGroup
228
+ 7. **Connection pooling** - Reuse connections
229
+
230
+ ## Common Mistakes
231
+
232
+ - Blocking sync calls in async code
233
+ - Not using connection pools
234
+ - Too many concurrent tasks
235
+ - Forgetting await
236
+ - Race conditions with shared state
237
+ - Not handling exceptions