@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,276 @@
1
+ ---
2
+ name: rag
3
+ description: Build production retrieval-augmented generation systems with hybrid search, reranking, and vector databases.
4
+ ---
5
+
6
+ # RAG Implementation — CoWorker Edition
7
+
8
+ Build production-ready LLM applications that ground responses in your data.
9
+
10
+ ## When to Use This Skill
11
+
12
+ - Building knowledge base chatbots
13
+ - Creating document Q&A systems
14
+ - Implementing enterprise search
15
+ - Adding context to LLM responses
16
+
17
+ ## Core Concepts
18
+
19
+ ### 1. RAG Architecture
20
+
21
+ ```
22
+ User Query → Embedding Model → Vector Search → Context → LLM → Response
23
+
24
+ Vector Database
25
+ (Pinecone/Qdrant/Weaviate)
26
+ ```
27
+
28
+ ### 2. Document Processing Pipeline
29
+
30
+ ```python
31
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
32
+ from langchain_community.document_loaders import (
33
+ PyPDFLoader, TextLoader, WebLoader
34
+ )
35
+ from langchain.schema import Document
36
+
37
+ class DocumentProcessor:
38
+ def __init__(
39
+ self,
40
+ chunk_size: int = 1000,
41
+ chunk_overlap: int = 200
42
+ ):
43
+ self.splitter = RecursiveCharacterTextSplitter(
44
+ chunk_size=chunk_size,
45
+ chunk_overlap=chunk_overlap,
46
+ separators=["\n\n", "\n", " ", ""]
47
+ )
48
+
49
+ def load_and_split(self, file_path: str) -> list[Document]:
50
+ # Choose loader based on file type
51
+ if file_path.endswith('.pdf'):
52
+ loader = PyPDFLoader(file_path)
53
+ elif file_path.endswith('.txt'):
54
+ loader = TextLoader(file_path)
55
+ else:
56
+ raise ValueError(f"Unsupported file type: {file_path}")
57
+
58
+ documents = loader.load()
59
+ return self.splitter.split_documents(documents)
60
+
61
+ def process_batch(self, file_paths: list[str]) -> list[Document]:
62
+ all_docs = []
63
+ for path in file_paths:
64
+ docs = self.load_and_split(path)
65
+ all_docs.extend(docs)
66
+ return all_docs
67
+ ```
68
+
69
+ ### 3. Embedding Strategy
70
+
71
+ ```python
72
+ from langchain_openai import OpenAIEmbeddings
73
+ from langchain_community.embeddings import VoyageEmbeddings
74
+
75
+ # OpenAI embeddings
76
+ openai_embeddings = OpenAIEmbeddings(
77
+ model="text-embedding-3-large",
78
+ dimensions=3072
79
+ )
80
+
81
+ # Voyage AI (recommended for Claude)
82
+ voyage_embeddings = VoyageEmbeddings(
83
+ model="voyage-2",
84
+ truncation=True
85
+ )
86
+
87
+ # For local/self-hosted
88
+ from langchain_community.embeddings import HuggingFaceEmbeddings
89
+
90
+ local_embeddings = HuggingFaceEmbeddings(
91
+ model_name="BAAI/bge-large-en-v1.5",
92
+ model_kwargs={'device': 'cuda'}
93
+ )
94
+ ```
95
+
96
+ ### 4. Vector Store Integration
97
+
98
+ ```python
99
+ # Pinecone
100
+ from langchain_pinecone import PineconeVectorStore
101
+
102
+ vectorstore = PineconeVectorStore.from_documents(
103
+ documents=docs,
104
+ embedding=openai_embeddings,
105
+ index_name="my-knowledge-base",
106
+ namespace="v1"
107
+ )
108
+
109
+ # Qdrant
110
+ from langchain_qdrant import QdrantVectorStore
111
+ from qdrant_client import QdrantClient
112
+
113
+ qdrant = QdrantClient(host="localhost", port=6333)
114
+ vectorstore = QdrantVectorStore.from_documents(
115
+ documents=docs,
116
+ embedding=voyage_embeddings,
117
+ collection_name="documents",
118
+ client=qdrant
119
+ )
120
+
121
+ # Weaviate
122
+ from langchain_weaviate import WeaviateVectorStore
123
+ import weaviate
124
+
125
+ client = weaviate.Client(url="http://localhost:8080")
126
+ vectorstore = WeaviateVectorStore.from_documents(
127
+ documents=docs,
128
+ embedding=openai_embeddings,
129
+ client=client,
130
+ index_name="Documents"
131
+ )
132
+ ```
133
+
134
+ ### 5. Hybrid Search
135
+
136
+ ```python
137
+ from langchain.retrievers import ContextualCompressionRetriever
138
+ from langchain.retrievers.document_compressors import CohereRerank
139
+ from langchain_community.retrievers import BM25Retriever
140
+
141
+ class HybridRetriever:
142
+ def __init__(self, vectorstore, documents: list[Document]):
143
+ self.vector_retriever = vectorstore.as_retriever(
144
+ search_kwargs={"k": 10}
145
+ )
146
+
147
+ self.bm25_retriever = BM25Retriever.from_documents(
148
+ documents,
149
+ k=10
150
+ )
151
+
152
+ def get_relevant_documents(self, query: str) -> list[Document]:
153
+ # Parallel retrieval
154
+ vector_results = self.vector_retriever.get_relevant_documents(query)
155
+ keyword_results = self.bm25_retriever.get_relevant_documents(query)
156
+
157
+ # Merge with ranking
158
+ seen = set()
159
+ merged = []
160
+ for doc in vector_results + keyword_results:
161
+ if doc.page_content not in seen:
162
+ seen.add(doc.page_content)
163
+ merged.append(doc)
164
+
165
+ return merged[:5]
166
+
167
+ # With reranking
168
+ class RerankingRetriever:
169
+ def __init__(self, base_retriever):
170
+ self.base = base_retriever
171
+ self.reranker = CohereRerank(
172
+ cohere_api_key=os.getenv("COHERE_API_KEY"),
173
+ top_n=5
174
+ )
175
+
176
+ def get_relevant_documents(self, query: str) -> list[Document]:
177
+ return self.reranker.compress_documents(
178
+ self.base.get_relevant_documents(query),
179
+ query=query
180
+ )
181
+ ```
182
+
183
+ ### 6. RAG Chain (LangGraph)
184
+
185
+ ```python
186
+ from langgraph.graph import StateGraph, END
187
+ from typing import TypedDict
188
+
189
+ class RAGState(TypedDict):
190
+ question: str
191
+ context: list[Document]
192
+ answer: str
193
+
194
+ def retrieve(state: RAGState) -> RAGState:
195
+ """Retrieve relevant documents."""
196
+ docs = retriever.get_relevant_documents(state["question"])
197
+ return {"context": docs}
198
+
199
+ def generate(state: RAGState) -> RAGState:
200
+ """Generate answer from context."""
201
+ context_text = "\n\n".join(doc.page_content for doc in state["context"])
202
+
203
+ prompt = f"""Answer the question based on the context.
204
+
205
+ Context:
206
+ {context_text}
207
+
208
+ Question: {state["question"]}
209
+
210
+ Answer:"""
211
+
212
+ response = llm.invoke(prompt)
213
+ return {"answer": response.content}
214
+
215
+ # Build graph
216
+ graph = StateGraph(RAGState)
217
+ graph.add_node("retrieve", retrieve)
218
+ graph.add_node("generate", generate)
219
+
220
+ graph.set_entry_point("retrieve")
221
+ graph.add_edge("retrieve", "generate")
222
+ graph.add_edge("generate", END)
223
+
224
+ rag_agent = graph.compile()
225
+ ```
226
+
227
+ ### 7. Evaluation
228
+
229
+ ```python
230
+ from langchain.evaluation import load_evaluator
231
+
232
+ # Correctness evaluation
233
+ evaluator = load_evaluator("labeled_criteria", criteria="correctness")
234
+
235
+ eval_result = evaluator.evaluate_strings(
236
+ prediction=generated_answer,
237
+ input=user_question,
238
+ reference=ground_truth_answer
239
+ )
240
+
241
+ print(f"Score: {eval_result.score}")
242
+ print(f"Reasoning: {eval_result.reasoning}")
243
+
244
+ # Retrieval evaluation
245
+ def evaluate_retrieval(retriever, questions: list[str]):
246
+ results = []
247
+ for q in questions:
248
+ docs = retriever.get_relevant_documents(q)
249
+ # Calculate relevant docs precision
250
+ relevant = sum(1 for d in docs if is_relevant(q, d))
251
+ precision = relevant / len(docs) if docs else 0
252
+ results.append({
253
+ "question": q,
254
+ "num_docs": len(docs),
255
+ "precision": precision
256
+ })
257
+ return results
258
+ ```
259
+
260
+ ## Best Practices
261
+
262
+ 1. **Chunk sizing** - 500-1000 chars typically works well
263
+ 2. **Overlap** - 10-20% overlap preserves context
264
+ 3. **Hybrid search** - Vector + keyword catches more
265
+ 4. **Reranking** - Improves relevance significantly
266
+ 5. **Metadata** - Store source, page, timestamps
267
+ 6. **Evaluation** - Test with real queries
268
+ 7. **Caching** - Cache embeddings for repeated queries
269
+
270
+ ## Common Issues
271
+
272
+ - Lost context (chunks too small)
273
+ - Noisy retrieval (missing metadata filtering)
274
+ - Slow retrieval (not using approximate search)
275
+ - Poor answer quality (wrong chunking strategy)
276
+ - Hallucinations (insufficient context)