@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,311 @@
1
+ ---
2
+ name: javascript
3
+ description: Modern JavaScript patterns and best practices for clean, maintainable code.
4
+ ---
5
+
6
+ # Modern JavaScript — CoWorker Edition
7
+
8
+ Write clean, modern JavaScript.
9
+
10
+ ## When to Use This Skill
11
+
12
+ - Writing JavaScript code
13
+ - Modern JS patterns
14
+ - Async JavaScript
15
+ - ES6+ features
16
+
17
+ ## Core Concepts
18
+
19
+ ### 1. Destructuring & Spread
20
+
21
+ ```javascript
22
+ // Object destructuring
23
+ const user = { name: 'John', age: 30, city: 'NYC' };
24
+
25
+ const { name, age } = user;
26
+
27
+ // With defaults
28
+ const { role = 'user' } = user;
29
+
30
+ // Rename
31
+ const { name: userName } = user;
32
+
33
+ // Nested
34
+ const { address: { city } } = user;
35
+
36
+ // Array destructuring
37
+ const [first, second, ...rest] = [1, 2, 3, 4, 5];
38
+ // first = 1, second = 2, rest = [3, 4, 5]
39
+
40
+ // Swap variables
41
+ [a, b] = [b, a];
42
+
43
+ // Spread
44
+ const merged = { ...user, age: 31 };
45
+ const combined = [...arr1, ...arr2];
46
+ ```
47
+
48
+ ### 2. Async/Await
49
+
50
+ ```javascript
51
+ // Async function
52
+ async function fetchUser(id) {
53
+ try {
54
+ const response = await fetch(`/api/users/${id}`);
55
+ const user = await response.json();
56
+ return user;
57
+ } catch (error) {
58
+ console.error('Failed to fetch:', error);
59
+ throw error;
60
+ }
61
+ }
62
+
63
+ // Parallel execution
64
+ async function fetchAllData() {
65
+ const [users, orders, products] = await Promise.all([
66
+ fetchUsers(),
67
+ fetchOrders(),
68
+ fetchProducts()
69
+ ]);
70
+
71
+ return { users, orders, products };
72
+ }
73
+
74
+ // Sequential with errors
75
+ async function processWithFallback() {
76
+ try {
77
+ return await primaryService.getData();
78
+ } catch {
79
+ return await fallbackService.getData();
80
+ }
81
+ }
82
+
83
+ // Promise.allSettled
84
+ async function fetchAll() {
85
+ const results = await Promise.allSettled([
86
+ fetch('/api/users'),
87
+ fetch('/api/orders'),
88
+ fetch('/api/products')
89
+ ]);
90
+
91
+ results.forEach((result, index) => {
92
+ if (result.status === 'fulfilled') {
93
+ console.log(`Request ${index}:`, result.value);
94
+ } else {
95
+ console.error(`Request ${index} failed:`, result.reason);
96
+ }
97
+ });
98
+ }
99
+ ```
100
+
101
+ ### 3. Optional Chaining & Nullish
102
+
103
+ ```javascript
104
+ // Optional chaining
105
+ const city = user?.address?.city;
106
+ const first = users?.[0]?.name;
107
+ const handler = obj?.method?.();
108
+
109
+ // Nullish coalescing
110
+ const name = user.name ?? 'Anonymous';
111
+ const value = data ?? defaultValue;
112
+
113
+ // Difference from OR
114
+ const a = 0 ?? 'default'; // 0
115
+ const b = '' ?? 'default'; // ''
116
+ const c = false ?? 'default'; // false
117
+
118
+ const d = 0 || 'default'; // 'default'
119
+ const e = '' || 'default'; // 'default'
120
+ const f = false || 'default'; // 'default'
121
+ ```
122
+
123
+ ### 4. Classes
124
+
125
+ ```javascript
126
+ class User {
127
+ #privateField; // Private field
128
+
129
+ static STATUS = {
130
+ ACTIVE: 'active',
131
+ INACTIVE: 'inactive'
132
+ };
133
+
134
+ constructor(name, email) {
135
+ this.name = name;
136
+ this.email = email;
137
+ this.#privateField = 'secret';
138
+ }
139
+
140
+ // Getter
141
+ get displayName() {
142
+ return `${this.name} (${this.email})`;
143
+ }
144
+
145
+ // Setter
146
+ set status(value) {
147
+ if (!Object.values(User.STATUS).includes(value)) {
148
+ throw new Error('Invalid status');
149
+ }
150
+ this._status = value;
151
+ }
152
+
153
+ // Method
154
+ async save() {
155
+ await db.users.insert(this);
156
+ }
157
+
158
+ // Static method
159
+ static fromData(data) {
160
+ return new User(data.name, data.email);
161
+ }
162
+ }
163
+
164
+ // Inheritance
165
+ class Admin extends User {
166
+ constructor(name, email, permissions) {
167
+ super(name, email);
168
+ this.permissions = permissions;
169
+ }
170
+
171
+ async grantPermission(perm) {
172
+ this.permissions.push(perm);
173
+ }
174
+ }
175
+ ```
176
+
177
+ ### 5. Modules
178
+
179
+ ```javascript
180
+ // Named exports
181
+ export const API_URL = '/api';
182
+ export function fetchData() { }
183
+ export class UserService { }
184
+
185
+ // Default export
186
+ export default class App { }
187
+
188
+ // Import
189
+ import App, { API_URL, fetchData } from './app';
190
+ import * as utils from './utils';
191
+
192
+ // Dynamic import
193
+ const module = await import('./heavy-module.js');
194
+ const Component = module.default;
195
+ ```
196
+
197
+ ### 6. Functional Patterns
198
+
199
+ ```javascript
200
+ // Map, Filter, Reduce
201
+ const names = users
202
+ .filter(u => u.active)
203
+ .map(u => u.name)
204
+ .join(', ');
205
+
206
+ const total = orders.reduce((sum, o) => sum + o.total, 0);
207
+
208
+ // Chaining
209
+ const result = data
210
+ .filter(x => x.valid)
211
+ .map(x => x.value)
212
+ .sort((a, b) => a - b)
213
+ .slice(0, 10);
214
+
215
+ // Currying
216
+ const add = a => b => a + b;
217
+ const add5 = add(5);
218
+ add5(3); // 8
219
+
220
+ // Compose
221
+ const compose = (...fns) => x =>
222
+ fns.reduceRight((acc, fn) => fn(acc), x);
223
+
224
+ const processData = compose(
225
+ validate,
226
+ transform,
227
+ sanitize
228
+ );
229
+ ```
230
+
231
+ ### 7. Modern Array Methods
232
+
233
+ ```javascript
234
+ // find/findLast
235
+ const user = users.find(u => u.id === 123);
236
+ const lastActive = users.findLast(u => u.lastLogin > cutoff);
237
+
238
+ // flatMap
239
+ const words = ['hello', 'world'];
240
+ const chars = words.flatMap(w => w.split(''));
241
+ // ['h','e','l','l','o','w','o','r','l','d']
242
+
243
+ // at (negative indexing)
244
+ const last = arr.at(-1);
245
+ const secondLast = arr.at(-2);
246
+
247
+ // groupBy (2024)
248
+ const grouped = Object.groupBy(users, u => u.role);
249
+ // { admin: [...], user: [...] }
250
+
251
+ // toSorted (2023)
252
+ const sorted = [...arr].toSorted((a, b) => a - b);
253
+ ```
254
+
255
+ ### 8. Error Handling
256
+
257
+ ```javascript
258
+ // Try-catch with finally
259
+ async function fetchData() {
260
+ let connection;
261
+ try {
262
+ connection = await connect();
263
+ return await connection.query('SELECT * FROM users');
264
+ } catch (error) {
265
+ console.error('Failed:', error);
266
+ throw error;
267
+ } finally {
268
+ if (connection) {
269
+ await connection.close();
270
+ }
271
+ }
272
+ }
273
+
274
+ // Error-first callbacks (Node.js)
275
+ fs.readFile('file.txt', (err, data) => {
276
+ if (err) {
277
+ console.error(err);
278
+ return;
279
+ }
280
+ console.log(data);
281
+ });
282
+
283
+ // Custom errors
284
+ class AppError extends Error {
285
+ constructor(message, code, statusCode = 500) {
286
+ super(message);
287
+ this.code = code;
288
+ this.statusCode = statusCode;
289
+ }
290
+ }
291
+
292
+ throw new AppError('User not found', 'NOT_FOUND', 404);
293
+ ```
294
+
295
+ ## Best Practices
296
+
297
+ 1. **Use const/let** - Avoid var
298
+ 2. **Destructuring** - Clean access
299
+ 3. **Async/await** - Readable async
300
+ 4. **Optional chaining** - Safe access
301
+ 5. **Modules** - Organize code
302
+ 6. **Functional methods** - Array operations
303
+
304
+ ## Common Mistakes
305
+
306
+ - Using var
307
+ - Not handling async errors
308
+ - Mutating arrays incorrectly
309
+ - Overusing any
310
+ - Not using optional chaining
311
+ - Callback hell (use async/await)