@rune-kit/rune 2.3.3 → 2.6.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.
- package/README.md +86 -17
- package/compiler/__tests__/pack-split.test.js +141 -1
- package/compiler/__tests__/parser.test.js +147 -55
- package/compiler/__tests__/scripts-bundling.test.js +283 -0
- package/compiler/__tests__/skill-index.test.js +218 -0
- package/compiler/__tests__/tier-override.test.js +41 -0
- package/compiler/adapters/antigravity.js +71 -53
- package/compiler/adapters/codex.js +4 -0
- package/compiler/adapters/cursor.js +4 -0
- package/compiler/adapters/generic.js +4 -0
- package/compiler/adapters/openclaw.js +4 -0
- package/compiler/adapters/opencode.js +4 -0
- package/compiler/adapters/windsurf.js +4 -0
- package/compiler/bin/rune.js +355 -355
- package/compiler/doctor.js +11 -1
- package/compiler/emitter.js +678 -386
- package/compiler/parser.js +267 -247
- package/compiler/transforms/scripts-path.js +18 -0
- package/extensions/zalo/PACK.md +20 -1
- package/extensions/zalo/references/conversation-management.md +214 -0
- package/extensions/zalo/references/eval-scenarios.md +157 -0
- package/extensions/zalo/references/listen-mode.md +237 -0
- package/extensions/zalo/references/mcp-production.md +274 -0
- package/extensions/zalo/references/multi-account-proxy.md +224 -0
- package/extensions/zalo/references/vietqr-banking.md +160 -0
- package/hooks/hooks.json +12 -0
- package/hooks/intent-router/index.cjs +108 -0
- package/hooks/pre-tool-guard/index.cjs +177 -68
- package/package.json +63 -64
- package/skills/brainstorm/SKILL.md +2 -0
- package/skills/cook/SKILL.md +661 -648
- package/skills/debug/SKILL.md +394 -392
- package/skills/deploy/SKILL.md +2 -0
- package/skills/fix/SKILL.md +283 -281
- package/skills/marketing/SKILL.md +3 -0
- package/skills/onboard/SKILL.md +7 -0
- package/skills/plan/SKILL.md +344 -342
- package/skills/preflight/SKILL.md +362 -360
- package/skills/review/SKILL.md +491 -489
- package/skills/scout/SKILL.md +1 -0
- package/skills/sentinel/SKILL.md +319 -296
- package/skills/sentinel/references/auth-crypto-reference.md +192 -0
- package/skills/sentinel/references/desktop-security.md +201 -0
- package/skills/sentinel/references/supply-chain.md +160 -0
- package/skills/session-bridge/SKILL.md +1 -0
- package/skills/slides/SKILL.md +142 -0
- package/skills/slides/scripts/build-deck.js +158 -0
- package/skills/team/SKILL.md +1 -0
- package/skills/test/SKILL.md +587 -585
- package/skills/verification/SKILL.md +1 -0
- package/skills/watchdog/SKILL.md +2 -0
- package/docs/ANTIGRAVITY-GAP-ANALYSIS.md +0 -369
- package/docs/ARCHITECTURE.md +0 -332
- package/docs/COMMUNITY-PACKS.md +0 -109
- package/docs/CONTRIBUTING-L4.md +0 -215
- package/docs/CROSS-IDE-ANALYSIS.md +0 -164
- package/docs/EXTENSION-TEMPLATE.md +0 -126
- package/docs/MESH-RULES.md +0 -34
- package/docs/MULTI-PLATFORM.md +0 -804
- package/docs/SKILL-DEPTH-AUDIT.md +0 -191
- package/docs/SKILL-TEMPLATE.md +0 -118
- package/docs/TRADE-MATRIX.md +0 -327
- package/docs/VERSIONING.md +0 -91
- package/docs/VISION.md +0 -263
- package/docs/assets/demo-subtitles.srt +0 -215
- package/docs/assets/end-card.html +0 -276
- package/docs/assets/mesh-diagram.html +0 -654
- package/docs/assets/thumbnail.html +0 -295
- package/docs/guides/cli.md +0 -403
- package/docs/guides/index.html +0 -1450
- package/docs/index.html +0 -1005
- package/docs/references/claudekit-analysis.md +0 -414
- package/docs/references/voltagent-analysis.md +0 -189
- package/docs/script.js +0 -495
- package/docs/skills/index.html +0 -832
- package/docs/style.css +0 -958
- package/docs/video-demo-plan.md +0 -172
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<title>Rune Demo — YouTube Thumbnail</title>
|
|
6
|
-
<style>
|
|
7
|
-
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@700&family=JetBrains+Mono:wght@700&family=Inter:wght@500;600&display=swap');
|
|
8
|
-
|
|
9
|
-
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
10
|
-
|
|
11
|
-
body {
|
|
12
|
-
width: 1280px;
|
|
13
|
-
height: 720px;
|
|
14
|
-
overflow: hidden;
|
|
15
|
-
font-family: 'Inter', sans-serif;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.thumbnail {
|
|
19
|
-
width: 1280px;
|
|
20
|
-
height: 720px;
|
|
21
|
-
background: #0a0e17;
|
|
22
|
-
position: relative;
|
|
23
|
-
display: flex;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/* Left side: terminal mockup */
|
|
27
|
-
.terminal-side {
|
|
28
|
-
flex: 1;
|
|
29
|
-
padding: 40px 20px 40px 50px;
|
|
30
|
-
display: flex;
|
|
31
|
-
flex-direction: column;
|
|
32
|
-
justify-content: center;
|
|
33
|
-
position: relative;
|
|
34
|
-
z-index: 2;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.terminal {
|
|
38
|
-
background: #0d1117;
|
|
39
|
-
border: 1px solid #30363d;
|
|
40
|
-
border-radius: 12px;
|
|
41
|
-
overflow: hidden;
|
|
42
|
-
box-shadow: 0 20px 60px rgba(0,0,0,0.5), 0 0 80px rgba(99,102,241,0.1);
|
|
43
|
-
max-width: 580px;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
.terminal-bar {
|
|
47
|
-
background: #161b22;
|
|
48
|
-
padding: 10px 16px;
|
|
49
|
-
display: flex;
|
|
50
|
-
align-items: center;
|
|
51
|
-
gap: 8px;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.terminal-dot {
|
|
55
|
-
width: 12px;
|
|
56
|
-
height: 12px;
|
|
57
|
-
border-radius: 50%;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
.terminal-dot.red { background: #ff5f57; }
|
|
61
|
-
.terminal-dot.yellow { background: #febc2e; }
|
|
62
|
-
.terminal-dot.green { background: #28c840; }
|
|
63
|
-
|
|
64
|
-
.terminal-title {
|
|
65
|
-
color: #7d8590;
|
|
66
|
-
font-size: 12px;
|
|
67
|
-
margin-left: 8px;
|
|
68
|
-
font-family: 'Inter', sans-serif;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
.terminal-body {
|
|
72
|
-
padding: 20px 24px;
|
|
73
|
-
font-family: 'JetBrains Mono', monospace;
|
|
74
|
-
font-size: 14px;
|
|
75
|
-
line-height: 1.7;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.prompt {
|
|
79
|
-
color: #7d8590;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.prompt .path {
|
|
83
|
-
color: #58a6ff;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.prompt .arrow {
|
|
87
|
-
color: #3fb950;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.cmd {
|
|
91
|
-
color: #e6edf3;
|
|
92
|
-
font-weight: 700;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.cmd .skill {
|
|
96
|
-
color: #d2a8ff;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.output {
|
|
100
|
-
color: #7d8590;
|
|
101
|
-
margin-left: 0;
|
|
102
|
-
font-size: 12.5px;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.output .success {
|
|
106
|
-
color: #3fb950;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.output .highlight {
|
|
110
|
-
color: #ffa657;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.output .skill-name {
|
|
114
|
-
color: #79c0ff;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
.output .phase {
|
|
118
|
-
color: #d2a8ff;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
.line-gap {
|
|
122
|
-
height: 8px;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/* Right side: text overlay */
|
|
126
|
-
.text-side {
|
|
127
|
-
width: 420px;
|
|
128
|
-
display: flex;
|
|
129
|
-
flex-direction: column;
|
|
130
|
-
justify-content: center;
|
|
131
|
-
align-items: flex-start;
|
|
132
|
-
padding: 50px 50px 50px 30px;
|
|
133
|
-
position: relative;
|
|
134
|
-
z-index: 2;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
.badge {
|
|
138
|
-
background: rgba(239, 68, 68, 0.15);
|
|
139
|
-
border: 1px solid rgba(239, 68, 68, 0.3);
|
|
140
|
-
color: #fca5a5;
|
|
141
|
-
font-size: 13px;
|
|
142
|
-
font-weight: 600;
|
|
143
|
-
padding: 6px 14px;
|
|
144
|
-
border-radius: 6px;
|
|
145
|
-
margin-bottom: 20px;
|
|
146
|
-
letter-spacing: 0.5px;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.hero-number {
|
|
150
|
-
font-family: 'Space Grotesk', sans-serif;
|
|
151
|
-
font-size: 120px;
|
|
152
|
-
font-weight: 700;
|
|
153
|
-
color: #f8fafc;
|
|
154
|
-
line-height: 0.9;
|
|
155
|
-
letter-spacing: -4px;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
.hero-label {
|
|
159
|
-
font-family: 'Space Grotesk', sans-serif;
|
|
160
|
-
font-size: 48px;
|
|
161
|
-
font-weight: 700;
|
|
162
|
-
color: #f8fafc;
|
|
163
|
-
line-height: 1;
|
|
164
|
-
margin-top: -4px;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
.hero-sub {
|
|
168
|
-
font-size: 18px;
|
|
169
|
-
color: #94a3b8;
|
|
170
|
-
margin-top: 16px;
|
|
171
|
-
line-height: 1.5;
|
|
172
|
-
font-weight: 500;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
.hero-sub .accent {
|
|
176
|
-
color: #a5b4fc;
|
|
177
|
-
font-weight: 600;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
.tagline {
|
|
181
|
-
margin-top: 24px;
|
|
182
|
-
font-size: 14px;
|
|
183
|
-
color: #64748b;
|
|
184
|
-
font-style: italic;
|
|
185
|
-
letter-spacing: 0.5px;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
/* Gradient glow behind */
|
|
189
|
-
.bg-glow {
|
|
190
|
-
position: absolute;
|
|
191
|
-
top: 50%;
|
|
192
|
-
left: 50%;
|
|
193
|
-
transform: translate(-50%, -50%);
|
|
194
|
-
width: 800px;
|
|
195
|
-
height: 600px;
|
|
196
|
-
background: radial-gradient(ellipse, rgba(99,102,241,0.08) 0%, transparent 60%);
|
|
197
|
-
z-index: 1;
|
|
198
|
-
pointer-events: none;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
.bg-glow-2 {
|
|
202
|
-
position: absolute;
|
|
203
|
-
top: 20%;
|
|
204
|
-
right: 0;
|
|
205
|
-
width: 500px;
|
|
206
|
-
height: 400px;
|
|
207
|
-
background: radial-gradient(ellipse, rgba(239,68,68,0.06) 0%, transparent 60%);
|
|
208
|
-
z-index: 1;
|
|
209
|
-
pointer-events: none;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/* Logo corner */
|
|
213
|
-
.logo {
|
|
214
|
-
position: absolute;
|
|
215
|
-
bottom: 30px;
|
|
216
|
-
right: 40px;
|
|
217
|
-
display: flex;
|
|
218
|
-
align-items: center;
|
|
219
|
-
gap: 10px;
|
|
220
|
-
z-index: 3;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
.logo-icon {
|
|
224
|
-
width: 32px;
|
|
225
|
-
height: 32px;
|
|
226
|
-
background: linear-gradient(135deg, #ef4444, #6366f1);
|
|
227
|
-
border-radius: 8px;
|
|
228
|
-
display: flex;
|
|
229
|
-
align-items: center;
|
|
230
|
-
justify-content: center;
|
|
231
|
-
color: white;
|
|
232
|
-
font-family: 'Space Grotesk', sans-serif;
|
|
233
|
-
font-weight: 700;
|
|
234
|
-
font-size: 16px;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
.logo-text {
|
|
238
|
-
font-family: 'Space Grotesk', sans-serif;
|
|
239
|
-
font-size: 20px;
|
|
240
|
-
font-weight: 700;
|
|
241
|
-
color: #e2e8f0;
|
|
242
|
-
letter-spacing: -0.5px;
|
|
243
|
-
}
|
|
244
|
-
</style>
|
|
245
|
-
</head>
|
|
246
|
-
<body>
|
|
247
|
-
|
|
248
|
-
<div class="thumbnail">
|
|
249
|
-
<div class="bg-glow"></div>
|
|
250
|
-
<div class="bg-glow-2"></div>
|
|
251
|
-
|
|
252
|
-
<!-- Left: Terminal -->
|
|
253
|
-
<div class="terminal-side">
|
|
254
|
-
<div class="terminal">
|
|
255
|
-
<div class="terminal-bar">
|
|
256
|
-
<div class="terminal-dot red"></div>
|
|
257
|
-
<div class="terminal-dot yellow"></div>
|
|
258
|
-
<div class="terminal-dot green"></div>
|
|
259
|
-
<span class="terminal-title">~/my-saas-app</span>
|
|
260
|
-
</div>
|
|
261
|
-
<div class="terminal-body">
|
|
262
|
-
<div><span class="prompt"><span class="path">~/app</span> <span class="arrow">$</span></span> <span class="cmd">/rune <span class="skill">cook</span> "add Stripe billing"</span></div>
|
|
263
|
-
<div class="line-gap"></div>
|
|
264
|
-
<div class="output"><span class="phase">[Phase 1]</span> <span class="skill-name">scout</span> scanning codebase...</div>
|
|
265
|
-
<div class="output"><span class="phase">[Phase 2]</span> <span class="skill-name">plan</span> creating implementation steps</div>
|
|
266
|
-
<div class="output"><span class="phase">[Phase 3]</span> <span class="highlight">adversary</span> red-teaming plan...</div>
|
|
267
|
-
<div class="output"> <span style="color:#ff7b72">! Missing webhook signature check</span></div>
|
|
268
|
-
<div class="output"><span class="phase">[Phase 4]</span> <span class="skill-name">test</span> writing failing tests (TDD)</div>
|
|
269
|
-
<div class="output"><span class="phase">[Phase 5]</span> <span class="skill-name">fix</span> implementing code...</div>
|
|
270
|
-
<div class="output"><span class="phase">[Phase 6]</span> <span class="skill-name">sentinel</span> + <span class="skill-name">review</span> + <span class="skill-name">preflight</span></div>
|
|
271
|
-
<div class="output"><span class="success">✔ All 8 phases complete. Ready to ship.</span></div>
|
|
272
|
-
</div>
|
|
273
|
-
</div>
|
|
274
|
-
</div>
|
|
275
|
-
|
|
276
|
-
<!-- Right: Text -->
|
|
277
|
-
<div class="text-side">
|
|
278
|
-
<div class="badge">OPEN SOURCE • MIT</div>
|
|
279
|
-
<div class="hero-number">57</div>
|
|
280
|
-
<div class="hero-label">Skills</div>
|
|
281
|
-
<div class="hero-sub">
|
|
282
|
-
Turn your AI assistant from a <span class="accent">chatbot</span> into an <span class="accent">engineering team</span>
|
|
283
|
-
</div>
|
|
284
|
-
<div class="tagline">"Less skills. Deeper connections."</div>
|
|
285
|
-
</div>
|
|
286
|
-
|
|
287
|
-
<!-- Logo -->
|
|
288
|
-
<div class="logo">
|
|
289
|
-
<div class="logo-icon">R</div>
|
|
290
|
-
<span class="logo-text">Rune</span>
|
|
291
|
-
</div>
|
|
292
|
-
</div>
|
|
293
|
-
|
|
294
|
-
</body>
|
|
295
|
-
</html>
|
package/docs/guides/cli.md
DELETED
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
# Rune CLI
|
|
2
|
-
|
|
3
|
-
The Rune CLI compiles 55 AI coding skills into any IDE platform. One skill mesh, every editor.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Quick Start
|
|
8
|
-
|
|
9
|
-
**Step 1** -- Install and initialize in your project:
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
cd your-project
|
|
13
|
-
npx @rune-kit/rune init
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
Rune auto-detects your platform (Cursor, Windsurf, Antigravity) and compiles skills into the correct format.
|
|
17
|
-
|
|
18
|
-
**Step 2** -- Start your AI assistant:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
# Cursor / Windsurf / Antigravity / Generic
|
|
22
|
-
# Open your editor -- skills are loaded automatically from the rules directory.
|
|
23
|
-
|
|
24
|
-
# Claude Code -- no compilation needed, Rune runs as a native plugin:
|
|
25
|
-
claude
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
**Step 3** -- Verify the setup:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
npx @rune-kit/rune doctor
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
That's it. 55 skills are now active in your AI assistant.
|
|
35
|
-
|
|
36
|
-
> **Pro Tip**: For Claude Code, skip the CLI entirely. Install Rune as a plugin:
|
|
37
|
-
> `claude plugin add rune-kit/rune` -- skills load natively with zero compilation.
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## Commands
|
|
42
|
-
|
|
43
|
-
### `rune init`
|
|
44
|
-
|
|
45
|
-
Interactive setup. Detects your platform, creates `rune.config.json`, and compiles all skills in one step.
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
npx @rune-kit/rune init
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
+----------------------------------------------+
|
|
53
|
-
| Rune -- Less skills. Deeper connections. |
|
|
54
|
-
+----------------------------------------------+
|
|
55
|
-
|
|
56
|
-
-> Detected: cursor
|
|
57
|
-
-> Created rune.config.json
|
|
58
|
-
-> Built 55 skills + 12 extensions to .cursor/rules/
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
**Flags**:
|
|
62
|
-
|
|
63
|
-
| Flag | Description | Example |
|
|
64
|
-
|------|-------------|---------|
|
|
65
|
-
| `--platform <name>` | Override auto-detection | `rune init --platform windsurf` |
|
|
66
|
-
| `--extensions <list>` | Enable specific extension packs | `rune init --extensions @rune/ui,@rune/backend` |
|
|
67
|
-
| `--disable <skills>` | Disable specific skills | `rune init --disable video-creator,asset-creator` |
|
|
68
|
-
|
|
69
|
-
If Claude Code is detected (`.claude-plugin/` exists), init exits early with a message -- no compilation needed.
|
|
70
|
-
|
|
71
|
-
---
|
|
72
|
-
|
|
73
|
-
### `rune build`
|
|
74
|
-
|
|
75
|
-
Recompile skills using existing config. Run after updating Rune or changing `rune.config.json`.
|
|
76
|
-
|
|
77
|
-
```bash
|
|
78
|
-
npx @rune-kit/rune build
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
[parse] Discovering skills...
|
|
83
|
-
[transform] Platform: cursor
|
|
84
|
-
[transform] Resolved 142 cross-references
|
|
85
|
-
[transform] Resolved 87 tool-name references
|
|
86
|
-
[emit] 55 skills + 12 extensions
|
|
87
|
-
|
|
88
|
-
-> Built 67 files to .cursor/rules/
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
**Flags**:
|
|
92
|
-
|
|
93
|
-
| Flag | Description | Example |
|
|
94
|
-
|------|-------------|---------|
|
|
95
|
-
| `--platform <name>` | Override config platform | `rune build --platform windsurf` |
|
|
96
|
-
| `--output <dir>` | Override output directory | `rune build --output ../other-project` |
|
|
97
|
-
| `--disable <skills>` | Disable specific skills | `rune build --disable trend-scout` |
|
|
98
|
-
|
|
99
|
-
> **Pro Tip**: Use `--output` to compile Rune into multiple projects from a single source.
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
### `rune doctor`
|
|
104
|
-
|
|
105
|
-
Validate compiled output. Checks that all skill files exist, cross-references resolve, and config is valid.
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
npx @rune-kit/rune doctor
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
Exits with code 0 if healthy, code 1 if issues found. Useful in CI pipelines.
|
|
112
|
-
|
|
113
|
-
**Flags**:
|
|
114
|
-
|
|
115
|
-
| Flag | Description |
|
|
116
|
-
|------|-------------|
|
|
117
|
-
| `--platform <name>` | Override config platform |
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
### `rune help`
|
|
122
|
-
|
|
123
|
-
Show available commands and flags.
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
npx @rune-kit/rune help
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## Platforms
|
|
132
|
-
|
|
133
|
-
Rune compiles to 5 platforms. Each gets skills in its native format.
|
|
134
|
-
|
|
135
|
-
| Platform | Output Directory | File Format | Detection Marker |
|
|
136
|
-
|----------|-----------------|-------------|------------------|
|
|
137
|
-
| Claude Code | _(native plugin)_ | `.md` (SKILL.md) | `.claude-plugin/` |
|
|
138
|
-
| Cursor | `.cursor/rules/` | `.mdc` | `.cursor/` |
|
|
139
|
-
| Windsurf | `.windsurf/rules/` | `.md` | `.windsurf/` |
|
|
140
|
-
| Antigravity | `.agent/rules/` | `.md` | `.agent/` |
|
|
141
|
-
| Generic | `.ai/rules/` | `.md` | _(fallback)_ |
|
|
142
|
-
| OpenClaw | `.openclaw/rune/` | `.md` + manifest | `.openclaw/` |
|
|
143
|
-
|
|
144
|
-
### Claude Code
|
|
145
|
-
|
|
146
|
-
Rune is a native Claude Code plugin. No compilation needed.
|
|
147
|
-
|
|
148
|
-
```bash
|
|
149
|
-
# Install as plugin (recommended)
|
|
150
|
-
claude plugin add rune-kit/rune
|
|
151
|
-
|
|
152
|
-
# Or use Rune as a local plugin during development
|
|
153
|
-
claude --plugin-dir /path/to/rune
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
Skills load directly from `skills/*/SKILL.md`. The CLI detects `.claude-plugin/` and skips compilation:
|
|
157
|
-
|
|
158
|
-
```
|
|
159
|
-
-> Claude Code detected -- Rune works as a native plugin. No compilation needed.
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
### Cursor
|
|
163
|
-
|
|
164
|
-
Skills compile to `.cursor/rules/*.mdc` (Cursor's rule format).
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
npx @rune-kit/rune init --platform cursor
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
Output: `.cursor/rules/rune-cook.mdc`, `.cursor/rules/rune-plan.mdc`, etc.
|
|
171
|
-
|
|
172
|
-
Each skill file gets a Cursor-compatible header with `alwaysApply: false` frontmatter. Cross-references between skills are rewritten to `rune-<skill-name>` format.
|
|
173
|
-
|
|
174
|
-
### Windsurf
|
|
175
|
-
|
|
176
|
-
Skills compile to `.windsurf/rules/*.md`.
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
npx @rune-kit/rune init --platform windsurf
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
Output: `.windsurf/rules/rune-cook.md`, `.windsurf/rules/rune-plan.md`, etc.
|
|
183
|
-
|
|
184
|
-
### Antigravity
|
|
185
|
-
|
|
186
|
-
Skills compile to `.agent/rules/*.md` (Google Antigravity format).
|
|
187
|
-
|
|
188
|
-
```bash
|
|
189
|
-
npx @rune-kit/rune init --platform antigravity
|
|
190
|
-
```
|
|
191
|
-
|
|
192
|
-
Output: `.agent/rules/rune-cook.md`, `.agent/rules/rune-plan.md`, etc.
|
|
193
|
-
|
|
194
|
-
### Generic
|
|
195
|
-
|
|
196
|
-
Fallback for any AI IDE that reads markdown rules from a directory.
|
|
197
|
-
|
|
198
|
-
```bash
|
|
199
|
-
npx @rune-kit/rune init --platform generic
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
Output: `.ai/rules/rune-cook.md`, `.ai/rules/rune-plan.md`, etc.
|
|
203
|
-
|
|
204
|
-
### OpenClaw
|
|
205
|
-
|
|
206
|
-
Skills compile to an OpenClaw plugin structure with manifest, TypeScript entry point, and skill files.
|
|
207
|
-
|
|
208
|
-
```bash
|
|
209
|
-
npx @rune-kit/rune init --platform openclaw
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
Output structure:
|
|
213
|
-
|
|
214
|
-
```
|
|
215
|
-
.openclaw/rune/
|
|
216
|
-
openclaw.plugin.json # Plugin manifest
|
|
217
|
-
src/index.ts # register(api) entry point
|
|
218
|
-
skills/ # Compiled skill files
|
|
219
|
-
rune-cook.md
|
|
220
|
-
rune-plan.md
|
|
221
|
-
rune-skill-router.md
|
|
222
|
-
...
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
After building, add Rune to your OpenClaw config (`openclaw.json`):
|
|
226
|
-
|
|
227
|
-
```json
|
|
228
|
-
{
|
|
229
|
-
"plugins": {
|
|
230
|
-
"load": {
|
|
231
|
-
"paths": ["./.openclaw/rune"]
|
|
232
|
-
},
|
|
233
|
-
"entries": {
|
|
234
|
-
"rune": {
|
|
235
|
-
"enabled": true
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
The generated `src/index.ts` registers a `before_agent_start` hook that injects the skill-router instructions, so OpenClaw routes tasks through Rune skills automatically.
|
|
243
|
-
|
|
244
|
-
> **Pro Tip**: If you also use the NeuralMemory plugin, Rune coexists with it --
|
|
245
|
-
> NeuralMemory occupies the `memory` slot while Rune occupies `skills`.
|
|
246
|
-
|
|
247
|
-
---
|
|
248
|
-
|
|
249
|
-
## Auto-Detection
|
|
250
|
-
|
|
251
|
-
When you run `rune init` without `--platform`, Rune checks for these markers in order:
|
|
252
|
-
|
|
253
|
-
| Priority | Marker | Platform |
|
|
254
|
-
|----------|--------|----------|
|
|
255
|
-
| 1 | `.claude-plugin/` | Claude Code (exits early) |
|
|
256
|
-
| 2 | `.cursor/` | Cursor |
|
|
257
|
-
| 3 | `.windsurf/` | Windsurf |
|
|
258
|
-
| 4 | `.agent/` | Antigravity |
|
|
259
|
-
| 5 | _(none found)_ | Prompts for selection |
|
|
260
|
-
|
|
261
|
-
If no marker is found, Rune shows the available platforms and asks you to choose. Unknown input defaults to `generic`.
|
|
262
|
-
|
|
263
|
-
---
|
|
264
|
-
|
|
265
|
-
## Configuration
|
|
266
|
-
|
|
267
|
-
`rune init` creates a `rune.config.json` in your project root:
|
|
268
|
-
|
|
269
|
-
```json
|
|
270
|
-
{
|
|
271
|
-
"$schema": "https://rune-kit.github.io/rune/config-schema.json",
|
|
272
|
-
"version": 1,
|
|
273
|
-
"platform": "cursor",
|
|
274
|
-
"source": "/path/to/rune",
|
|
275
|
-
"skills": {
|
|
276
|
-
"disabled": []
|
|
277
|
-
},
|
|
278
|
-
"extensions": {
|
|
279
|
-
"enabled": null
|
|
280
|
-
},
|
|
281
|
-
"output": {
|
|
282
|
-
"index": true
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
| Field | Type | Description |
|
|
288
|
-
|-------|------|-------------|
|
|
289
|
-
| `platform` | string | Target platform (cursor, windsurf, antigravity, generic) |
|
|
290
|
-
| `source` | string | Path to Rune installation (auto-set by init) |
|
|
291
|
-
| `skills.disabled` | string[] | Skills to exclude from compilation |
|
|
292
|
-
| `extensions.enabled` | string[] or null | Extension packs to include (`null` = all) |
|
|
293
|
-
| `output.index` | boolean | Generate index file listing all compiled skills |
|
|
294
|
-
|
|
295
|
-
Edit this file directly, then run `rune build` to recompile.
|
|
296
|
-
|
|
297
|
-
> **Pro Tip**: Commit `rune.config.json` to your repo so teammates get the same skill configuration.
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
## Extension Packs
|
|
302
|
-
|
|
303
|
-
Rune ships 12 free extension packs (L4 layer). Each adds domain-specific skills.
|
|
304
|
-
|
|
305
|
-
| Pack | Skills | Domain |
|
|
306
|
-
|------|--------|--------|
|
|
307
|
-
| `@rune/ui` | 5 | UI component patterns, design systems |
|
|
308
|
-
| `@rune/backend` | 5 | API design, database patterns, auth |
|
|
309
|
-
| `@rune/devops` | 7 | CI/CD, Docker, Kubernetes, chaos testing |
|
|
310
|
-
| `@rune/mobile` | 5 | React Native, Flutter, mobile UX |
|
|
311
|
-
| `@rune/security` | 5 | OWASP, pen testing, threat modeling |
|
|
312
|
-
| `@rune/trading` | 7 | Backtesting, quant analysis, market data |
|
|
313
|
-
| `@rune/saas` | 5 | Multi-tenancy, billing, onboarding |
|
|
314
|
-
| `@rune/ecommerce` | 5 | Cart, checkout, inventory, payments |
|
|
315
|
-
| `@rune/ai-ml` | 6 | LLM architecture, prompt patterns, ML ops |
|
|
316
|
-
| `@rune/gamedev` | 5 | Game loops, ECS, physics, assets |
|
|
317
|
-
| `@rune/content` | 5 | CMS, SEO, content pipelines |
|
|
318
|
-
| `@rune/analytics` | 5 | SQL patterns, data validation, dashboards |
|
|
319
|
-
|
|
320
|
-
**Enable specific packs**:
|
|
321
|
-
|
|
322
|
-
```bash
|
|
323
|
-
npx @rune-kit/rune init --extensions @rune/ui,@rune/backend,@rune/trading
|
|
324
|
-
```
|
|
325
|
-
|
|
326
|
-
**Enable all packs** (default):
|
|
327
|
-
|
|
328
|
-
```bash
|
|
329
|
-
npx @rune-kit/rune init
|
|
330
|
-
# extensions.enabled = null means all packs are included
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
**Disable via config**:
|
|
334
|
-
|
|
335
|
-
```json
|
|
336
|
-
{
|
|
337
|
-
"extensions": {
|
|
338
|
-
"enabled": ["@rune/ui", "@rune/backend"]
|
|
339
|
-
}
|
|
340
|
-
}
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
---
|
|
344
|
-
|
|
345
|
-
## Pro Tips
|
|
346
|
-
|
|
347
|
-
**CI Integration** -- Add Rune build to your CI pipeline to keep skills in sync:
|
|
348
|
-
|
|
349
|
-
```yaml
|
|
350
|
-
# .github/workflows/rune.yml
|
|
351
|
-
- name: Compile Rune skills
|
|
352
|
-
run: npx @rune-kit/rune build
|
|
353
|
-
- name: Validate output
|
|
354
|
-
run: npx @rune-kit/rune doctor
|
|
355
|
-
```
|
|
356
|
-
|
|
357
|
-
**Monorepo Setup** -- Compile to multiple packages from one Rune source:
|
|
358
|
-
|
|
359
|
-
```bash
|
|
360
|
-
npx @rune-kit/rune build --output packages/frontend --platform cursor
|
|
361
|
-
npx @rune-kit/rune build --output packages/backend --platform generic
|
|
362
|
-
```
|
|
363
|
-
|
|
364
|
-
**Selective Skills** -- Disable skills you don't need to reduce noise:
|
|
365
|
-
|
|
366
|
-
```bash
|
|
367
|
-
npx @rune-kit/rune init --disable video-creator,asset-creator,trend-scout
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
**Keep Updated** -- Pull latest skills and recompile:
|
|
371
|
-
|
|
372
|
-
```bash
|
|
373
|
-
cd /path/to/rune && git pull
|
|
374
|
-
cd /your/project && npx @rune-kit/rune build
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
---
|
|
378
|
-
|
|
379
|
-
## Troubleshooting
|
|
380
|
-
|
|
381
|
-
**"No platform configured"** when running `rune build`:
|
|
382
|
-
- Run `rune init` first to create `rune.config.json`.
|
|
383
|
-
|
|
384
|
-
**"Unknown platform"** during init:
|
|
385
|
-
- Check available platforms: `cursor`, `windsurf`, `antigravity`, `generic`.
|
|
386
|
-
- Claude Code users don't need the CLI -- install as a plugin instead.
|
|
387
|
-
|
|
388
|
-
**Skills not loading in Cursor**:
|
|
389
|
-
- Verify files exist in `.cursor/rules/`.
|
|
390
|
-
- Check that files have `.mdc` extension.
|
|
391
|
-
- Restart Cursor to pick up new rule files.
|
|
392
|
-
|
|
393
|
-
**Skills not loading in Windsurf / Antigravity**:
|
|
394
|
-
- Verify files exist in the correct rules directory.
|
|
395
|
-
- Check that your editor version supports the rules feature.
|
|
396
|
-
|
|
397
|
-
**"No rune.config.json found"** when running `rune doctor`:
|
|
398
|
-
- Run `rune init` to generate the config file.
|
|
399
|
-
|
|
400
|
-
**Build errors on specific skills**:
|
|
401
|
-
- Check the error output for the skill name and issue.
|
|
402
|
-
- Use `--disable <skill>` to skip problematic skills temporarily.
|
|
403
|
-
- Report issues at https://github.com/rune-kit/rune/issues.
|