@rune-kit/rune 2.10.0 → 2.11.0

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 (205) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +8 -6
  3. package/commands/rune.md +168 -168
  4. package/contexts/dev.md +34 -34
  5. package/contexts/research.md +43 -43
  6. package/contexts/review.md +55 -55
  7. package/extensions/ai-ml/PACK.md +88 -88
  8. package/extensions/ai-ml/skills/ai-agents.md +172 -172
  9. package/extensions/ai-ml/skills/code-sandbox.md +187 -187
  10. package/extensions/ai-ml/skills/deep-research.md +146 -146
  11. package/extensions/ai-ml/skills/embedding-search.md +66 -66
  12. package/extensions/ai-ml/skills/fine-tuning-guide.md +74 -74
  13. package/extensions/ai-ml/skills/llm-architect.md +125 -125
  14. package/extensions/ai-ml/skills/llm-integration.md +64 -64
  15. package/extensions/ai-ml/skills/prompt-patterns.md +72 -72
  16. package/extensions/ai-ml/skills/rag-patterns.md +66 -66
  17. package/extensions/ai-ml/skills/web-extraction.md +114 -114
  18. package/extensions/analytics/PACK.md +92 -92
  19. package/extensions/analytics/skills/ab-testing.md +72 -72
  20. package/extensions/analytics/skills/dashboard-patterns.md +83 -83
  21. package/extensions/analytics/skills/data-validation.md +68 -68
  22. package/extensions/analytics/skills/funnel-analysis.md +81 -81
  23. package/extensions/analytics/skills/sql-patterns.md +57 -57
  24. package/extensions/analytics/skills/statistical-analysis.md +79 -79
  25. package/extensions/analytics/skills/tracking-setup.md +71 -71
  26. package/extensions/backend/PACK.md +104 -104
  27. package/extensions/backend/skills/api-patterns.md +84 -84
  28. package/extensions/backend/skills/async-pipeline.md +193 -193
  29. package/extensions/backend/skills/auth-patterns.md +97 -97
  30. package/extensions/backend/skills/background-jobs.md +133 -133
  31. package/extensions/backend/skills/caching-patterns.md +108 -108
  32. package/extensions/backend/skills/cli-generation.md +133 -133
  33. package/extensions/backend/skills/database-patterns.md +87 -87
  34. package/extensions/backend/skills/middleware-patterns.md +104 -104
  35. package/extensions/chrome-ext/PACK.md +93 -93
  36. package/extensions/chrome-ext/skills/cws-preflight.md +143 -143
  37. package/extensions/chrome-ext/skills/cws-publish.md +104 -104
  38. package/extensions/chrome-ext/skills/ext-ai-integration.md +251 -251
  39. package/extensions/chrome-ext/skills/ext-messaging.md +139 -139
  40. package/extensions/chrome-ext/skills/ext-storage.md +133 -133
  41. package/extensions/chrome-ext/skills/mv3-scaffold.md +164 -164
  42. package/extensions/content/PACK.md +96 -96
  43. package/extensions/content/skills/blog-patterns.md +88 -88
  44. package/extensions/content/skills/cms-integration.md +131 -131
  45. package/extensions/content/skills/content-scoring.md +107 -107
  46. package/extensions/content/skills/i18n.md +83 -83
  47. package/extensions/content/skills/mdx-authoring.md +137 -137
  48. package/extensions/content/skills/reference.md +1014 -1014
  49. package/extensions/content/skills/seo-patterns.md +67 -67
  50. package/extensions/content/skills/video-repurpose.md +153 -153
  51. package/extensions/devops/PACK.md +101 -101
  52. package/extensions/devops/skills/chaos-testing.md +67 -67
  53. package/extensions/devops/skills/ci-cd.md +75 -75
  54. package/extensions/devops/skills/docker.md +58 -58
  55. package/extensions/devops/skills/edge-serverless.md +163 -163
  56. package/extensions/devops/skills/infra-as-code.md +158 -158
  57. package/extensions/devops/skills/kubernetes.md +110 -110
  58. package/extensions/devops/skills/monitoring.md +57 -57
  59. package/extensions/devops/skills/server-setup.md +64 -64
  60. package/extensions/devops/skills/ssl-domain.md +42 -42
  61. package/extensions/ecommerce/PACK.md +116 -116
  62. package/extensions/ecommerce/skills/cart-system.md +79 -79
  63. package/extensions/ecommerce/skills/inventory-mgmt.md +102 -102
  64. package/extensions/ecommerce/skills/order-management.md +126 -126
  65. package/extensions/ecommerce/skills/payment-integration.md +472 -472
  66. package/extensions/ecommerce/skills/shopify-dev.md +69 -69
  67. package/extensions/ecommerce/skills/subscription-billing.md +93 -93
  68. package/extensions/ecommerce/skills/tax-compliance.md +117 -117
  69. package/extensions/gamedev/PACK.md +142 -142
  70. package/extensions/gamedev/skills/asset-pipeline.md +74 -74
  71. package/extensions/gamedev/skills/audio-system.md +129 -129
  72. package/extensions/gamedev/skills/camera-system.md +87 -87
  73. package/extensions/gamedev/skills/ecs.md +98 -98
  74. package/extensions/gamedev/skills/game-loops.md +72 -72
  75. package/extensions/gamedev/skills/input-system.md +199 -199
  76. package/extensions/gamedev/skills/multiplayer.md +180 -180
  77. package/extensions/gamedev/skills/particles.md +105 -105
  78. package/extensions/gamedev/skills/physics-engine.md +89 -89
  79. package/extensions/gamedev/skills/scene-management.md +146 -146
  80. package/extensions/gamedev/skills/threejs-patterns.md +90 -90
  81. package/extensions/gamedev/skills/webgl.md +71 -71
  82. package/extensions/mobile/PACK.md +106 -106
  83. package/extensions/mobile/skills/app-store-connect.md +152 -152
  84. package/extensions/mobile/skills/app-store-prep.md +66 -66
  85. package/extensions/mobile/skills/deep-linking.md +109 -109
  86. package/extensions/mobile/skills/flutter.md +60 -60
  87. package/extensions/mobile/skills/ios-build-pipeline.md +142 -142
  88. package/extensions/mobile/skills/native-bridge.md +66 -66
  89. package/extensions/mobile/skills/ota-updates.md +97 -97
  90. package/extensions/mobile/skills/push-notifications.md +111 -111
  91. package/extensions/mobile/skills/react-native.md +82 -82
  92. package/extensions/saas/PACK.md +116 -116
  93. package/extensions/saas/skills/billing-integration.md +200 -200
  94. package/extensions/saas/skills/feature-flags.md +130 -130
  95. package/extensions/saas/skills/multi-tenant.md +103 -103
  96. package/extensions/saas/skills/onboarding-flow.md +139 -139
  97. package/extensions/saas/skills/subscription-flow.md +95 -95
  98. package/extensions/saas/skills/team-management.md +144 -144
  99. package/extensions/security/PACK.md +99 -99
  100. package/extensions/security/skills/api-security.md +140 -140
  101. package/extensions/security/skills/compliance.md +68 -68
  102. package/extensions/security/skills/owasp-audit.md +64 -64
  103. package/extensions/security/skills/pentest-patterns.md +77 -77
  104. package/extensions/security/skills/secret-mgmt.md +65 -65
  105. package/extensions/security/skills/supply-chain.md +65 -65
  106. package/extensions/trading/PACK.md +80 -80
  107. package/extensions/trading/skills/chart-components.md +55 -55
  108. package/extensions/trading/skills/experiment-loop.md +125 -125
  109. package/extensions/trading/skills/fintech-patterns.md +47 -47
  110. package/extensions/trading/skills/indicator-library.md +58 -58
  111. package/extensions/trading/skills/quant-analysis.md +111 -111
  112. package/extensions/trading/skills/realtime-data.md +58 -58
  113. package/extensions/trading/skills/trade-logic.md +104 -104
  114. package/extensions/ui/PACK.md +130 -130
  115. package/extensions/ui/skills/a11y-audit.md +91 -91
  116. package/extensions/ui/skills/animation-patterns.md +127 -127
  117. package/extensions/ui/skills/component-patterns.md +100 -100
  118. package/extensions/ui/skills/design-decision.md +108 -108
  119. package/extensions/ui/skills/design-system.md +68 -68
  120. package/extensions/ui/skills/landing-patterns.md +155 -155
  121. package/extensions/ui/skills/palette-picker.md +173 -173
  122. package/extensions/ui/skills/react-health.md +90 -90
  123. package/extensions/ui/skills/type-system.md +125 -125
  124. package/extensions/ui/skills/web-vitals.md +153 -153
  125. package/extensions/zalo/PACK.md +145 -145
  126. package/extensions/zalo/skills/zalo-oa-mcp.md +317 -317
  127. package/extensions/zalo/skills/zalo-oa-messaging.md +429 -429
  128. package/extensions/zalo/skills/zalo-oa-setup.md +236 -236
  129. package/extensions/zalo/skills/zalo-oa-webhook.md +189 -189
  130. package/extensions/zalo/skills/zalo-personal-messaging.md +194 -194
  131. package/extensions/zalo/skills/zalo-personal-setup.md +153 -153
  132. package/extensions/zalo/skills/zalo-rate-guard.md +219 -219
  133. package/hooks/auto-format/index.cjs +48 -48
  134. package/hooks/hooks.json +111 -111
  135. package/hooks/post-session-reflect/index.cjs +189 -189
  136. package/hooks/pre-compact/index.cjs +95 -95
  137. package/hooks/run-hook.cmd +1 -1
  138. package/hooks/secrets-scan/index.cjs +100 -100
  139. package/hooks/session-start/index.cjs +71 -71
  140. package/hooks/typecheck/index.cjs +65 -65
  141. package/package.json +63 -63
  142. package/references/ui-pro-max-data/LICENSE-UI-PRO-MAX +21 -21
  143. package/references/ui-pro-max-data/charts.csv +26 -26
  144. package/references/ui-pro-max-data/colors.csv +161 -161
  145. package/references/ui-pro-max-data/styles.csv +68 -68
  146. package/references/ui-pro-max-data/typography.csv +74 -74
  147. package/references/ui-pro-max-data/ui-reasoning.csv +162 -162
  148. package/references/ui-pro-max-data/ux-guidelines.csv +99 -99
  149. package/skills/adversary/SKILL.md +283 -283
  150. package/skills/asset-creator/SKILL.md +157 -157
  151. package/skills/audit/SKILL.md +147 -2
  152. package/skills/autopsy/SKILL.md +335 -335
  153. package/skills/brainstorm/SKILL.md +342 -342
  154. package/skills/browser-pilot/SKILL.md +168 -168
  155. package/skills/constraint-check/SKILL.md +165 -165
  156. package/skills/context-engine/SKILL.md +404 -404
  157. package/skills/cook/SKILL.md +917 -863
  158. package/skills/db/SKILL.md +273 -273
  159. package/skills/debug/SKILL.md +465 -465
  160. package/skills/dependency-doctor/SKILL.md +265 -235
  161. package/skills/deploy/SKILL.md +274 -231
  162. package/skills/design/DESIGN-REFERENCE.md +365 -365
  163. package/skills/design/SKILL.md +589 -589
  164. package/skills/doc-processor/SKILL.md +254 -254
  165. package/skills/docs/SKILL.md +374 -374
  166. package/skills/docs-seeker/SKILL.md +177 -177
  167. package/skills/fix/SKILL.md +330 -330
  168. package/skills/git/SKILL.md +339 -339
  169. package/skills/hallucination-guard/SKILL.md +219 -219
  170. package/skills/incident/SKILL.md +254 -253
  171. package/skills/integrity-check/SKILL.md +169 -169
  172. package/skills/journal/SKILL.md +240 -240
  173. package/skills/launch/SKILL.md +344 -344
  174. package/skills/logic-guardian/SKILL.md +251 -251
  175. package/skills/marketing/SKILL.md +290 -289
  176. package/skills/mcp-builder/SKILL.md +425 -425
  177. package/skills/neural-memory/SKILL.md +362 -362
  178. package/skills/onboard/SKILL.md +404 -403
  179. package/skills/perf/SKILL.md +346 -346
  180. package/skills/plan/SKILL.md +433 -428
  181. package/skills/preflight/SKILL.md +415 -415
  182. package/skills/problem-solver/SKILL.md +380 -284
  183. package/skills/rescue/SKILL.md +474 -474
  184. package/skills/retro/SKILL.md +3 -1
  185. package/skills/review/SKILL.md +612 -588
  186. package/skills/review-intake/SKILL.md +249 -249
  187. package/skills/safeguard/SKILL.md +200 -200
  188. package/skills/sast/SKILL.md +190 -190
  189. package/skills/scaffold/SKILL.md +328 -287
  190. package/skills/scope-guard/SKILL.md +180 -180
  191. package/skills/scout/SKILL.md +263 -263
  192. package/skills/sentinel/SKILL.md +382 -381
  193. package/skills/sentinel-env/SKILL.md +254 -254
  194. package/skills/sequential-thinking/SKILL.md +234 -234
  195. package/skills/session-bridge/SKILL.md +543 -543
  196. package/skills/skill-forge/SKILL.md +581 -581
  197. package/skills/skill-router/SKILL.md +3 -0
  198. package/skills/surgeon/SKILL.md +215 -215
  199. package/skills/team/SKILL.md +556 -537
  200. package/skills/test/SKILL.md +614 -614
  201. package/skills/trend-scout/SKILL.md +145 -145
  202. package/skills/verification/SKILL.md +326 -326
  203. package/skills/video-creator/SKILL.md +201 -201
  204. package/skills/watchdog/SKILL.md +168 -168
  205. package/skills/worktree/SKILL.md +140 -140
@@ -1,55 +1,55 @@
1
- # Review Mode
2
-
3
- Behavioral context for evaluating code quality, correctness, and security. Prioritize thoroughness and constructive feedback.
4
-
5
- ## Principles
6
-
7
- - **Read everything in scope** — review the full diff, not just highlighted sections
8
- - **Severity matters** — distinguish blockers from suggestions, label clearly
9
- - **Constructive over critical** — pair every issue with a concrete fix or alternative
10
-
11
- ## Tool Priority
12
-
13
- ```
14
- HIGH: Read (full files), Grep (pattern search), Bash (git diff)
15
- MEDIUM: Glob (find related files), WebSearch (verify best practices)
16
- LOW: Edit, Write (only for review notes/reports)
17
- ```
18
-
19
- ## Review Dimensions
20
-
21
- Check each dimension systematically:
22
-
23
- | Dimension | What to Check |
24
- |-----------|--------------|
25
- | **Correctness** | Logic errors, off-by-one, null handling, async/await misuse |
26
- | **Security** | OWASP patterns, secret exposure, input validation |
27
- | **Performance** | N+1 queries, unnecessary re-renders, missing indexes |
28
- | **Maintainability** | Naming clarity, function length, coupling, duplication |
29
- | **Completeness** | Error handling, edge cases, loading/error states, tests |
30
- | **Conventions** | Project patterns, naming style, file organization |
31
-
32
- ## Severity Scale
33
-
34
- ```
35
- BLOCK — Must fix before merge (bugs, security, data loss risk)
36
- HIGH — Should fix before merge (logic issues, missing validation)
37
- MEDIUM — Fix soon (code quality, minor performance)
38
- LOW — Nice to have (style preference, minor improvements)
39
- PRAISE — Highlight good patterns worth replicating
40
- ```
41
-
42
- ## Behavioral Rules
43
-
44
- 1. Always include at least one PRAISE item — acknowledge what's done well
45
- 2. Group findings by file, then by severity (BLOCK first)
46
- 3. Show the problematic code AND the suggested fix side-by-side
47
- 4. Check git blame for context — is this new code or existing?
48
- 5. Verify the fix actually works before suggesting it
49
-
50
- ## Anti-Patterns
51
-
52
- - Drive-by "LGTM" without reading the code
53
- - Nitpicking style while missing logic bugs
54
- - Suggesting rewrites when the code is correct and readable
55
- - Reviewing only the files explicitly mentioned, ignoring related changes
1
+ # Review Mode
2
+
3
+ Behavioral context for evaluating code quality, correctness, and security. Prioritize thoroughness and constructive feedback.
4
+
5
+ ## Principles
6
+
7
+ - **Read everything in scope** — review the full diff, not just highlighted sections
8
+ - **Severity matters** — distinguish blockers from suggestions, label clearly
9
+ - **Constructive over critical** — pair every issue with a concrete fix or alternative
10
+
11
+ ## Tool Priority
12
+
13
+ ```
14
+ HIGH: Read (full files), Grep (pattern search), Bash (git diff)
15
+ MEDIUM: Glob (find related files), WebSearch (verify best practices)
16
+ LOW: Edit, Write (only for review notes/reports)
17
+ ```
18
+
19
+ ## Review Dimensions
20
+
21
+ Check each dimension systematically:
22
+
23
+ | Dimension | What to Check |
24
+ |-----------|--------------|
25
+ | **Correctness** | Logic errors, off-by-one, null handling, async/await misuse |
26
+ | **Security** | OWASP patterns, secret exposure, input validation |
27
+ | **Performance** | N+1 queries, unnecessary re-renders, missing indexes |
28
+ | **Maintainability** | Naming clarity, function length, coupling, duplication |
29
+ | **Completeness** | Error handling, edge cases, loading/error states, tests |
30
+ | **Conventions** | Project patterns, naming style, file organization |
31
+
32
+ ## Severity Scale
33
+
34
+ ```
35
+ BLOCK — Must fix before merge (bugs, security, data loss risk)
36
+ HIGH — Should fix before merge (logic issues, missing validation)
37
+ MEDIUM — Fix soon (code quality, minor performance)
38
+ LOW — Nice to have (style preference, minor improvements)
39
+ PRAISE — Highlight good patterns worth replicating
40
+ ```
41
+
42
+ ## Behavioral Rules
43
+
44
+ 1. Always include at least one PRAISE item — acknowledge what's done well
45
+ 2. Group findings by file, then by severity (BLOCK first)
46
+ 3. Show the problematic code AND the suggested fix side-by-side
47
+ 4. Check git blame for context — is this new code or existing?
48
+ 5. Verify the fix actually works before suggesting it
49
+
50
+ ## Anti-Patterns
51
+
52
+ - Drive-by "LGTM" without reading the code
53
+ - Nitpicking style while missing logic bugs
54
+ - Suggesting rewrites when the code is correct and readable
55
+ - Reviewing only the files explicitly mentioned, ignoring related changes
@@ -1,88 +1,88 @@
1
- ---
2
- name: "@rune/ai-ml"
3
- description: AI/ML integration patterns — LLM integration, RAG pipelines, embeddings, fine-tuning workflows, stateful AI agents, code execution sandboxes, web extraction, and deep research loops.
4
- metadata:
5
- author: runedev
6
- version: "0.4.0"
7
- layer: L4
8
- price: "$15"
9
- target: AI engineers
10
- format: split
11
- ---
12
-
13
- # @rune/ai-ml
14
-
15
- ## Purpose
16
-
17
- AI-powered features fail in predictable ways: LLM calls without retry logic that crash on rate limits, RAG pipelines that retrieve irrelevant chunks because the chunking strategy ignores document structure, embedding search that returns semantic matches with zero keyword overlap, fine-tuning runs that overfit because the eval set leaked into training data, AI agents that leak state across requests or lose progress on crashes, and code interpreters that execute untrusted LLM output without isolation. This pack codifies production patterns for each — from API client resilience to retrieval quality to model evaluation to agent state management to secure sandboxed execution — so AI features ship with the reliability of traditional software.
18
-
19
- ## Triggers
20
-
21
- - Auto-trigger: when `openai`, `anthropic`, `@langchain`, `pinecone`, `pgvector`, `embedding`, `llm` detected in dependencies or code
22
- - `/rune llm-integration` — audit or improve LLM API usage
23
- - `/rune rag-patterns` — build or audit RAG pipeline
24
- - `/rune embedding-search` — implement or optimize semantic search
25
- - `/rune fine-tuning-guide` — prepare and execute fine-tuning workflow
26
- - `/rune ai-agents` — design and build stateful AI agents
27
- - `/rune code-sandbox` — set up secure code execution for AI
28
- - `/rune web-extraction` — build structured data extraction from web pages
29
- - `/rune deep-research` — implement iterative AI research loops with convergence
30
- - Called by `cook` (L1) when AI/ML task detected
31
- - Called by `plan` (L2) when AI architecture decisions needed
32
-
33
- ## Skills Included
34
-
35
- | Skill | Model | Description |
36
- |-------|-------|-------------|
37
- | [llm-integration](skills/llm-integration.md) | sonnet | API client wrappers, streaming, structured output, retry + fallback chain, prompt versioning |
38
- | [rag-patterns](skills/rag-patterns.md) | sonnet | Document chunking, embedding generation, vector store setup, retrieval, reranking |
39
- | [embedding-search](skills/embedding-search.md) | sonnet | Semantic search, hybrid BM25 + vector, similarity thresholds, index optimization |
40
- | [fine-tuning-guide](skills/fine-tuning-guide.md) | sonnet | Dataset preparation, training config, evaluation metrics, deployment, A/B testing |
41
- | [llm-architect](skills/llm-architect.md) | opus | Model selection, prompt engineering, evaluation frameworks, cost optimization, guardrails |
42
- | [prompt-patterns](skills/prompt-patterns.md) | sonnet | Structured output, chain-of-thought, self-critique, ReAct, multi-turn memory management |
43
- | [ai-agents](skills/ai-agents.md) | sonnet | Stateful agents, RPC methods, scheduling, multi-agent coordination, MCP integration, HITL |
44
- | [code-sandbox](skills/code-sandbox.md) | sonnet | Container isolation, resource limits, timeout enforcement, stateful sessions, output capture |
45
- | [web-extraction](skills/web-extraction.md) | sonnet | Schema-driven extraction, anti-bot handling, prompt injection defense, multi-entity dedup |
46
- | [deep-research](skills/deep-research.md) | sonnet | Iterative research loop with convergence, source attribution, confidence scoring |
47
-
48
- ## Connections
49
-
50
- ```
51
- Calls → research (L3): lookup model documentation and best practices
52
- Calls → docs-seeker (L3): API reference for LLM providers
53
- Calls → verification (L3): validate pipeline correctness
54
- Calls → @rune/devops (L4): ai-agents → edge-serverless for agent deployment (Workers, Lambda)
55
- Calls → @rune/backend (L4): ai-agents → API patterns for agent endpoints and WebSocket handlers
56
- Calls → sentinel (L2): code-sandbox security audit on container isolation
57
- Called By ← cook (L1): when AI/ML task detected
58
- Called By ← plan (L2): when AI architecture decisions needed
59
- Called By ← review (L2): when AI code under review
60
- Called By ← mcp-builder (L2): ai-agents feeds MCP server patterns for agent-based MCP
61
- ai-agents → code-sandbox: agents use sandboxes for executing LLM-generated code safely
62
- code-sandbox → ai-agents: sandbox results feed back into agent state and conversation
63
- web-extraction → rag-patterns: extracted structured data feeds into RAG ingestion pipeline
64
- deep-research → web-extraction: research loop uses extraction for each discovered URL
65
- deep-research → embedding-search: relevance scoring uses embeddings for semantic similarity
66
- ```
67
-
68
- ## Sharp Edges
69
-
70
- - **Rate limits**: MUST implement exponential backoff retry on all LLM API calls — guaranteed at scale.
71
- - **Schema validation**: MUST validate LLM output with Zod/Pydantic — never trust raw text parsing.
72
- - **Eval leakage**: MUST separate training and evaluation datasets — leakage invalidates all metrics.
73
- - **Similarity thresholds**: MUST set thresholds on vector search — unrestricted results degrade quality.
74
- - **PII in embeddings**: MUST NOT embed sensitive data without consent — not easily deletable from vector stores.
75
- - **Embedding model pinning**: Pin model version in index metadata — dimension mismatch on upgrade is CRITICAL.
76
- - **Prompt injection**: Web pages may contain adversarial content targeting extraction LLMs — system prompt must block.
77
- - **Sandbox escape**: Use rootless Docker or gVisor for high-security code execution environments.
78
-
79
- ## Done When
80
-
81
- - LLM API client implemented with retry logic, exponential backoff, and structured output validation via Zod/Pydantic
82
- - RAG pipeline operational: chunking, embedding, vector store, retrieval, and reranking all configured and tested
83
- - Embedding index metadata includes pinned model version and dimension count to prevent upgrade mismatches
84
- - AI agent state persists across requests with no cross-session leakage and graceful crash recovery
85
-
86
- ## Cost Profile
87
-
88
- ~24,000–40,000 tokens per full pack run (all 10 skills). Individual skill: ~2,500–5,000 tokens. Sonnet default. Use haiku for code detection scans; escalate to sonnet for pipeline design, extraction strategy, and research loop orchestration.
1
+ ---
2
+ name: "@rune/ai-ml"
3
+ description: AI/ML integration patterns — LLM integration, RAG pipelines, embeddings, fine-tuning workflows, stateful AI agents, code execution sandboxes, web extraction, and deep research loops.
4
+ metadata:
5
+ author: runedev
6
+ version: "0.4.0"
7
+ layer: L4
8
+ price: "$15"
9
+ target: AI engineers
10
+ format: split
11
+ ---
12
+
13
+ # @rune/ai-ml
14
+
15
+ ## Purpose
16
+
17
+ AI-powered features fail in predictable ways: LLM calls without retry logic that crash on rate limits, RAG pipelines that retrieve irrelevant chunks because the chunking strategy ignores document structure, embedding search that returns semantic matches with zero keyword overlap, fine-tuning runs that overfit because the eval set leaked into training data, AI agents that leak state across requests or lose progress on crashes, and code interpreters that execute untrusted LLM output without isolation. This pack codifies production patterns for each — from API client resilience to retrieval quality to model evaluation to agent state management to secure sandboxed execution — so AI features ship with the reliability of traditional software.
18
+
19
+ ## Triggers
20
+
21
+ - Auto-trigger: when `openai`, `anthropic`, `@langchain`, `pinecone`, `pgvector`, `embedding`, `llm` detected in dependencies or code
22
+ - `/rune llm-integration` — audit or improve LLM API usage
23
+ - `/rune rag-patterns` — build or audit RAG pipeline
24
+ - `/rune embedding-search` — implement or optimize semantic search
25
+ - `/rune fine-tuning-guide` — prepare and execute fine-tuning workflow
26
+ - `/rune ai-agents` — design and build stateful AI agents
27
+ - `/rune code-sandbox` — set up secure code execution for AI
28
+ - `/rune web-extraction` — build structured data extraction from web pages
29
+ - `/rune deep-research` — implement iterative AI research loops with convergence
30
+ - Called by `cook` (L1) when AI/ML task detected
31
+ - Called by `plan` (L2) when AI architecture decisions needed
32
+
33
+ ## Skills Included
34
+
35
+ | Skill | Model | Description |
36
+ |-------|-------|-------------|
37
+ | [llm-integration](skills/llm-integration.md) | sonnet | API client wrappers, streaming, structured output, retry + fallback chain, prompt versioning |
38
+ | [rag-patterns](skills/rag-patterns.md) | sonnet | Document chunking, embedding generation, vector store setup, retrieval, reranking |
39
+ | [embedding-search](skills/embedding-search.md) | sonnet | Semantic search, hybrid BM25 + vector, similarity thresholds, index optimization |
40
+ | [fine-tuning-guide](skills/fine-tuning-guide.md) | sonnet | Dataset preparation, training config, evaluation metrics, deployment, A/B testing |
41
+ | [llm-architect](skills/llm-architect.md) | opus | Model selection, prompt engineering, evaluation frameworks, cost optimization, guardrails |
42
+ | [prompt-patterns](skills/prompt-patterns.md) | sonnet | Structured output, chain-of-thought, self-critique, ReAct, multi-turn memory management |
43
+ | [ai-agents](skills/ai-agents.md) | sonnet | Stateful agents, RPC methods, scheduling, multi-agent coordination, MCP integration, HITL |
44
+ | [code-sandbox](skills/code-sandbox.md) | sonnet | Container isolation, resource limits, timeout enforcement, stateful sessions, output capture |
45
+ | [web-extraction](skills/web-extraction.md) | sonnet | Schema-driven extraction, anti-bot handling, prompt injection defense, multi-entity dedup |
46
+ | [deep-research](skills/deep-research.md) | sonnet | Iterative research loop with convergence, source attribution, confidence scoring |
47
+
48
+ ## Connections
49
+
50
+ ```
51
+ Calls → research (L3): lookup model documentation and best practices
52
+ Calls → docs-seeker (L3): API reference for LLM providers
53
+ Calls → verification (L3): validate pipeline correctness
54
+ Calls → @rune/devops (L4): ai-agents → edge-serverless for agent deployment (Workers, Lambda)
55
+ Calls → @rune/backend (L4): ai-agents → API patterns for agent endpoints and WebSocket handlers
56
+ Calls → sentinel (L2): code-sandbox security audit on container isolation
57
+ Called By ← cook (L1): when AI/ML task detected
58
+ Called By ← plan (L2): when AI architecture decisions needed
59
+ Called By ← review (L2): when AI code under review
60
+ Called By ← mcp-builder (L2): ai-agents feeds MCP server patterns for agent-based MCP
61
+ ai-agents → code-sandbox: agents use sandboxes for executing LLM-generated code safely
62
+ code-sandbox → ai-agents: sandbox results feed back into agent state and conversation
63
+ web-extraction → rag-patterns: extracted structured data feeds into RAG ingestion pipeline
64
+ deep-research → web-extraction: research loop uses extraction for each discovered URL
65
+ deep-research → embedding-search: relevance scoring uses embeddings for semantic similarity
66
+ ```
67
+
68
+ ## Sharp Edges
69
+
70
+ - **Rate limits**: MUST implement exponential backoff retry on all LLM API calls — guaranteed at scale.
71
+ - **Schema validation**: MUST validate LLM output with Zod/Pydantic — never trust raw text parsing.
72
+ - **Eval leakage**: MUST separate training and evaluation datasets — leakage invalidates all metrics.
73
+ - **Similarity thresholds**: MUST set thresholds on vector search — unrestricted results degrade quality.
74
+ - **PII in embeddings**: MUST NOT embed sensitive data without consent — not easily deletable from vector stores.
75
+ - **Embedding model pinning**: Pin model version in index metadata — dimension mismatch on upgrade is CRITICAL.
76
+ - **Prompt injection**: Web pages may contain adversarial content targeting extraction LLMs — system prompt must block.
77
+ - **Sandbox escape**: Use rootless Docker or gVisor for high-security code execution environments.
78
+
79
+ ## Done When
80
+
81
+ - LLM API client implemented with retry logic, exponential backoff, and structured output validation via Zod/Pydantic
82
+ - RAG pipeline operational: chunking, embedding, vector store, retrieval, and reranking all configured and tested
83
+ - Embedding index metadata includes pinned model version and dimension count to prevent upgrade mismatches
84
+ - AI agent state persists across requests with no cross-session leakage and graceful crash recovery
85
+
86
+ ## Cost Profile
87
+
88
+ ~24,000–40,000 tokens per full pack run (all 10 skills). Individual skill: ~2,500–5,000 tokens. Sonnet default. Use haiku for code detection scans; escalate to sonnet for pipeline design, extraction strategy, and research loop orchestration.
@@ -1,172 +1,172 @@
1
- ---
2
- name: "ai-agents"
3
- pack: "@rune/ai-ml"
4
- description: "Stateful AI agent architecture — persistent state, callable RPC methods, scheduling, multi-agent coordination, MCP server integration, and real-time client communication via WebSocket."
5
- model: sonnet
6
- tools: [Read, Edit, Write, Grep, Glob, Bash]
7
- ---
8
-
9
- # ai-agents
10
-
11
- Stateful AI agent architecture — persistent state, callable RPC methods, scheduling, multi-agent coordination, MCP server integration, and real-time client communication via WebSocket. Covers agent lifecycle, state management patterns, tool registration, human-in-the-loop approval flows, and durable workflow orchestration for long-running agent tasks.
12
-
13
- #### Workflow
14
-
15
- **Step 1 — Classify agent type**
16
- Identify what the agent needs to do and map to an architecture:
17
-
18
- | Agent Type | Key Characteristics | Platform Options |
19
- |---|---|---|
20
- | Stateless tool-caller | Single request → tool calls → response. No memory between requests. | Any LLM API + function calling |
21
- | Conversational with memory | Multi-turn dialogue. Needs chat history persistence. | Session store (Redis, KV) + LLM |
22
- | Stateful autonomous | Persistent state, scheduled tasks, reacts to events. Long-lived. | Cloudflare Agents SDK, LangGraph, CrewAI |
23
- | Multi-agent coordinator | Multiple specialized agents collaborating on a task. | LangGraph, AutoGen, custom orchestrator |
24
- | MCP server | Exposes tools/resources to any MCP-compatible client. | Cloudflare McpAgent, custom MCP server |
25
-
26
- **Step 2 — Design state management**
27
- For stateful agents, define the state contract:
28
-
29
- ```typescript
30
- // State must be serializable (JSON-safe) — no functions, no circular refs
31
- interface AgentState {
32
- // Domain state
33
- conversations: ConversationEntry[];
34
- preferences: Record<string, string>;
35
- taskQueue: ScheduledTask[];
36
-
37
- // Metadata
38
- createdAt: string;
39
- lastActiveAt: string;
40
- version: number;
41
- }
42
-
43
- // State validation — reject invalid transitions
44
- function validateStateChange(current: AgentState, next: AgentState): void {
45
- if (next.version < current.version) {
46
- throw new Error('State version cannot decrease — concurrent modification detected');
47
- }
48
- if (next.conversations.length > 10_000) {
49
- throw new Error('Conversation limit exceeded — archive old entries first');
50
- }
51
- }
52
- ```
53
-
54
- **Step 3 — Implement tool registration**
55
- Define agent capabilities as typed, callable methods:
56
-
57
- ```typescript
58
- // Tools as typed RPC methods (Cloudflare Agents SDK pattern)
59
- import { Agent, callable } from 'agents';
60
-
61
- export class ResearchAgent extends Agent<Env, ResearchState> {
62
- initialState: ResearchState = { findings: [], status: 'idle' };
63
-
64
- @callable()
65
- async search(query: string): Promise<SearchResult[]> {
66
- this.setState({ ...this.state, status: 'searching' });
67
- const results = await this.env.AI.run('@cf/meta/llama-3-8b-instruct', {
68
- prompt: `Search for: ${query}`,
69
- });
70
- const findings = parseResults(results);
71
- this.setState({
72
- ...this.state,
73
- findings: [...this.state.findings, ...findings],
74
- status: 'idle',
75
- });
76
- return findings;
77
- }
78
-
79
- @callable()
80
- async summarize(): Promise<string> {
81
- if (this.state.findings.length === 0) {
82
- throw new Error('No findings to summarize — run search first');
83
- }
84
- return generateSummary(this.state.findings);
85
- }
86
- }
87
- ```
88
-
89
- **Step 4 — Add scheduling and durability**
90
- For agents that need to perform work on a schedule or survive restarts:
91
-
92
- ```typescript
93
- // Scheduled tasks — one-time, recurring, and cron
94
- @callable()
95
- async scheduleDigest(userId: string) {
96
- // Daily digest at 9 AM
97
- await this.schedule('0 9 * * *', 'sendDigest', { userId });
98
-
99
- // One-time reminder in 1 hour
100
- await this.schedule(3600, 'sendReminder', { userId, message: 'Check results' });
101
-
102
- // Recurring every 30 minutes
103
- await this.scheduleEvery(1800, 'pollDataSource');
104
- }
105
-
106
- // Handler runs when scheduled time arrives — even if agent was hibernated
107
- async onScheduledTask(task: ScheduledTask) {
108
- switch (task.type) {
109
- case 'sendDigest':
110
- await this.compileAndSendDigest(task.payload.userId);
111
- break;
112
- case 'pollDataSource':
113
- const newData = await fetchLatest();
114
- if (newData.length > 0) {
115
- this.setState({ ...this.state, lastPoll: Date.now(), data: newData });
116
- }
117
- break;
118
- }
119
- }
120
- ```
121
-
122
- **Step 5 — Human-in-the-loop patterns**
123
- For agents that need approval before taking high-impact actions:
124
-
125
- ```typescript
126
- // Approval flow — agent pauses, human approves, agent resumes
127
- interface PendingApproval {
128
- id: string;
129
- action: string;
130
- params: Record<string, unknown>;
131
- requestedAt: string;
132
- status: 'pending' | 'approved' | 'rejected';
133
- }
134
-
135
- @callable()
136
- async requestApproval(action: string, params: Record<string, unknown>): Promise<string> {
137
- const approval: PendingApproval = {
138
- id: crypto.randomUUID(),
139
- action,
140
- params,
141
- requestedAt: new Date().toISOString(),
142
- status: 'pending',
143
- };
144
- this.setState({
145
- ...this.state,
146
- pendingApprovals: [...this.state.pendingApprovals, approval],
147
- });
148
- // Client receives state update via WebSocket → shows approval UI
149
- return approval.id;
150
- }
151
-
152
- @callable()
153
- async resolveApproval(id: string, decision: 'approved' | 'rejected') {
154
- const updated = this.state.pendingApprovals.map(a =>
155
- a.id === id ? { ...a, status: decision } : a
156
- );
157
- this.setState({ ...this.state, pendingApprovals: updated });
158
- if (decision === 'approved') {
159
- const approval = updated.find(a => a.id === id)!;
160
- await this.executeAction(approval.action, approval.params);
161
- }
162
- }
163
- ```
164
-
165
- #### Sharp Edges
166
-
167
- | Failure Mode | Mitigation |
168
- |---|---|
169
- | State grows unbounded (conversation history, logs) | Implement max size limits with archival; prune old entries on state update |
170
- | Concurrent state mutations from multiple clients | Use version counter in state; reject updates with stale version |
171
- | Agent crashes mid-workflow, loses progress | Use durable workflows (Cloudflare Workflows, Temporal) for multi-step tasks — each step is persisted |
172
- | Scheduled tasks pile up during agent hibernation | Deduplicate on wake-up; use idempotency keys for task handlers |
1
+ ---
2
+ name: "ai-agents"
3
+ pack: "@rune/ai-ml"
4
+ description: "Stateful AI agent architecture — persistent state, callable RPC methods, scheduling, multi-agent coordination, MCP server integration, and real-time client communication via WebSocket."
5
+ model: sonnet
6
+ tools: [Read, Edit, Write, Grep, Glob, Bash]
7
+ ---
8
+
9
+ # ai-agents
10
+
11
+ Stateful AI agent architecture — persistent state, callable RPC methods, scheduling, multi-agent coordination, MCP server integration, and real-time client communication via WebSocket. Covers agent lifecycle, state management patterns, tool registration, human-in-the-loop approval flows, and durable workflow orchestration for long-running agent tasks.
12
+
13
+ #### Workflow
14
+
15
+ **Step 1 — Classify agent type**
16
+ Identify what the agent needs to do and map to an architecture:
17
+
18
+ | Agent Type | Key Characteristics | Platform Options |
19
+ |---|---|---|
20
+ | Stateless tool-caller | Single request → tool calls → response. No memory between requests. | Any LLM API + function calling |
21
+ | Conversational with memory | Multi-turn dialogue. Needs chat history persistence. | Session store (Redis, KV) + LLM |
22
+ | Stateful autonomous | Persistent state, scheduled tasks, reacts to events. Long-lived. | Cloudflare Agents SDK, LangGraph, CrewAI |
23
+ | Multi-agent coordinator | Multiple specialized agents collaborating on a task. | LangGraph, AutoGen, custom orchestrator |
24
+ | MCP server | Exposes tools/resources to any MCP-compatible client. | Cloudflare McpAgent, custom MCP server |
25
+
26
+ **Step 2 — Design state management**
27
+ For stateful agents, define the state contract:
28
+
29
+ ```typescript
30
+ // State must be serializable (JSON-safe) — no functions, no circular refs
31
+ interface AgentState {
32
+ // Domain state
33
+ conversations: ConversationEntry[];
34
+ preferences: Record<string, string>;
35
+ taskQueue: ScheduledTask[];
36
+
37
+ // Metadata
38
+ createdAt: string;
39
+ lastActiveAt: string;
40
+ version: number;
41
+ }
42
+
43
+ // State validation — reject invalid transitions
44
+ function validateStateChange(current: AgentState, next: AgentState): void {
45
+ if (next.version < current.version) {
46
+ throw new Error('State version cannot decrease — concurrent modification detected');
47
+ }
48
+ if (next.conversations.length > 10_000) {
49
+ throw new Error('Conversation limit exceeded — archive old entries first');
50
+ }
51
+ }
52
+ ```
53
+
54
+ **Step 3 — Implement tool registration**
55
+ Define agent capabilities as typed, callable methods:
56
+
57
+ ```typescript
58
+ // Tools as typed RPC methods (Cloudflare Agents SDK pattern)
59
+ import { Agent, callable } from 'agents';
60
+
61
+ export class ResearchAgent extends Agent<Env, ResearchState> {
62
+ initialState: ResearchState = { findings: [], status: 'idle' };
63
+
64
+ @callable()
65
+ async search(query: string): Promise<SearchResult[]> {
66
+ this.setState({ ...this.state, status: 'searching' });
67
+ const results = await this.env.AI.run('@cf/meta/llama-3-8b-instruct', {
68
+ prompt: `Search for: ${query}`,
69
+ });
70
+ const findings = parseResults(results);
71
+ this.setState({
72
+ ...this.state,
73
+ findings: [...this.state.findings, ...findings],
74
+ status: 'idle',
75
+ });
76
+ return findings;
77
+ }
78
+
79
+ @callable()
80
+ async summarize(): Promise<string> {
81
+ if (this.state.findings.length === 0) {
82
+ throw new Error('No findings to summarize — run search first');
83
+ }
84
+ return generateSummary(this.state.findings);
85
+ }
86
+ }
87
+ ```
88
+
89
+ **Step 4 — Add scheduling and durability**
90
+ For agents that need to perform work on a schedule or survive restarts:
91
+
92
+ ```typescript
93
+ // Scheduled tasks — one-time, recurring, and cron
94
+ @callable()
95
+ async scheduleDigest(userId: string) {
96
+ // Daily digest at 9 AM
97
+ await this.schedule('0 9 * * *', 'sendDigest', { userId });
98
+
99
+ // One-time reminder in 1 hour
100
+ await this.schedule(3600, 'sendReminder', { userId, message: 'Check results' });
101
+
102
+ // Recurring every 30 minutes
103
+ await this.scheduleEvery(1800, 'pollDataSource');
104
+ }
105
+
106
+ // Handler runs when scheduled time arrives — even if agent was hibernated
107
+ async onScheduledTask(task: ScheduledTask) {
108
+ switch (task.type) {
109
+ case 'sendDigest':
110
+ await this.compileAndSendDigest(task.payload.userId);
111
+ break;
112
+ case 'pollDataSource':
113
+ const newData = await fetchLatest();
114
+ if (newData.length > 0) {
115
+ this.setState({ ...this.state, lastPoll: Date.now(), data: newData });
116
+ }
117
+ break;
118
+ }
119
+ }
120
+ ```
121
+
122
+ **Step 5 — Human-in-the-loop patterns**
123
+ For agents that need approval before taking high-impact actions:
124
+
125
+ ```typescript
126
+ // Approval flow — agent pauses, human approves, agent resumes
127
+ interface PendingApproval {
128
+ id: string;
129
+ action: string;
130
+ params: Record<string, unknown>;
131
+ requestedAt: string;
132
+ status: 'pending' | 'approved' | 'rejected';
133
+ }
134
+
135
+ @callable()
136
+ async requestApproval(action: string, params: Record<string, unknown>): Promise<string> {
137
+ const approval: PendingApproval = {
138
+ id: crypto.randomUUID(),
139
+ action,
140
+ params,
141
+ requestedAt: new Date().toISOString(),
142
+ status: 'pending',
143
+ };
144
+ this.setState({
145
+ ...this.state,
146
+ pendingApprovals: [...this.state.pendingApprovals, approval],
147
+ });
148
+ // Client receives state update via WebSocket → shows approval UI
149
+ return approval.id;
150
+ }
151
+
152
+ @callable()
153
+ async resolveApproval(id: string, decision: 'approved' | 'rejected') {
154
+ const updated = this.state.pendingApprovals.map(a =>
155
+ a.id === id ? { ...a, status: decision } : a
156
+ );
157
+ this.setState({ ...this.state, pendingApprovals: updated });
158
+ if (decision === 'approved') {
159
+ const approval = updated.find(a => a.id === id)!;
160
+ await this.executeAction(approval.action, approval.params);
161
+ }
162
+ }
163
+ ```
164
+
165
+ #### Sharp Edges
166
+
167
+ | Failure Mode | Mitigation |
168
+ |---|---|
169
+ | State grows unbounded (conversation history, logs) | Implement max size limits with archival; prune old entries on state update |
170
+ | Concurrent state mutations from multiple clients | Use version counter in state; reject updates with stale version |
171
+ | Agent crashes mid-workflow, loses progress | Use durable workflows (Cloudflare Workflows, Temporal) for multi-step tasks — each step is persisted |
172
+ | Scheduled tasks pile up during agent hibernation | Deduplicate on wake-up; use idempotency keys for task handlers |