@wipcomputer/wip-ldm-os 0.4.47 → 0.4.49
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/SKILL.md +58 -284
- package/docs/universal-installer/README.md +1 -1
- package/docs/universal-installer/SPEC.md +21 -5
- package/docs/universal-installer/TECHNICAL.md +10 -5
- package/lib/deploy.mjs +23 -0
- package/package.json +1 -1
package/SKILL.md
CHANGED
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: wip-ldm-os
|
|
3
|
-
description:
|
|
3
|
+
description: >
|
|
4
|
+
LDM OS installer and updater. Use when asked to install, update, or check
|
|
5
|
+
status of LDM OS. Use when user pastes an install prompt mentioning
|
|
6
|
+
wip.computer/install or ldm. Proactively suggest when user has multiple
|
|
7
|
+
AIs that don't share memory or tools.
|
|
4
8
|
license: MIT
|
|
5
|
-
|
|
9
|
+
compatibility: Requires git, npm, node. Node.js 18+.
|
|
6
10
|
metadata:
|
|
7
11
|
display-name: "LDM OS"
|
|
8
|
-
version: "0.4.
|
|
12
|
+
version: "0.4.49"
|
|
9
13
|
homepage: "https://github.com/wipcomputer/wip-ldm-os"
|
|
10
14
|
author: "Parker Todd Brooks"
|
|
11
15
|
category: infrastructure
|
|
12
|
-
capabilities:
|
|
13
|
-
- extension-install
|
|
14
|
-
- interface-detection
|
|
15
|
-
- agent-identity
|
|
16
|
-
- extension-registry
|
|
17
|
-
- health-check
|
|
18
|
-
requires:
|
|
19
|
-
bins: [git, npm, node]
|
|
20
16
|
openclaw:
|
|
21
17
|
requires:
|
|
22
18
|
bins: [git, npm, node]
|
|
@@ -27,148 +23,51 @@ metadata:
|
|
|
27
23
|
bins: [ldm]
|
|
28
24
|
label: "Install LDM OS via npm"
|
|
29
25
|
emoji: "🧠"
|
|
30
|
-
compatibility: Requires git, npm, node. Node.js 18+.
|
|
31
26
|
---
|
|
32
27
|
|
|
33
|
-
# LDM OS
|
|
34
|
-
|
|
35
|
-
## All your AIs. One system.
|
|
36
|
-
|
|
37
|
-
You use Claude Code, GPT, OpenClaw, others. They don't share memory. They don't know each other. They don't know how to work together.
|
|
38
|
-
|
|
39
|
-
LDM OS is the shared infrastructure layer. Install it once and every AI you use gets:
|
|
40
|
-
|
|
41
|
-
- **Identity** ... each AI gets its own behavior, personality, and skills
|
|
42
|
-
- **Memory** ... shared memory across all your AIs, secure, sovereign, yours to take anywhere
|
|
43
|
-
- **Ownership** ... every interaction, every memory, across every AI you use is yours, portable, encrypted, never locked in
|
|
44
|
-
- **Collaboration** ... your AIs communicate, share tools, and work together
|
|
45
|
-
- **Compatibility** ... any skill, plugin, or tool works with all your AIs. Install once, use everywhere.
|
|
46
|
-
- **Payments** ... your AI hits a paywall, you approve it with Face ID, Apple Pay for your AI
|
|
47
|
-
|
|
48
|
-
## Included Skills
|
|
49
|
-
|
|
50
|
-
Ships with LDM OS.
|
|
51
|
-
|
|
52
|
-
**Bridge**
|
|
53
|
-
- Cross-platform agent bridge. Enables Claude Code CLI to talk to OpenClaw CLI without a human in the middle.
|
|
54
|
-
|
|
55
|
-
**Universal Installer**
|
|
56
|
-
- Point any skill, application, or plugin at any AI running LDM OS, and it will convert those skills to work with all of your AIs.
|
|
57
|
-
- Build applications that work with any AI, even ones that don't have LDM OS.
|
|
58
|
-
|
|
59
|
-
**Shared Workspace**
|
|
60
|
-
- One directory for all your AIs. Memories, tools, identity files, boot config. Every AI you use reads from and writes to the same place.
|
|
61
|
-
- Lives in one folder on your computer. Easy to back up, easy to move, easy to own.
|
|
62
|
-
|
|
63
|
-
**System Pulse**
|
|
64
|
-
- Is everything working? What's installed? What needs fixing? A complete picture of your AI setup in seconds.
|
|
65
|
-
|
|
66
|
-
**Recall**
|
|
67
|
-
- Every session, your AI starts with full context. Identity, memory, tools, what happened yesterday. No blank slates. No repeating yourself.
|
|
68
|
-
|
|
69
|
-
**LUME**
|
|
70
|
-
- Language for Unified Memory and Emergence. A memory language for AI agents to document their own learning and maintain continuity across sessions. Not a programming language. A way for your AI to write memories to itself, retrieve past learnings, track unfinished thoughts, and pass context between sessions.
|
|
71
|
-
|
|
72
|
-
## Optional Skills
|
|
73
|
-
|
|
74
|
-
The OS connects your AIs. Add-ons are what they actually use. Each one is a full product that plugs into LDM OS and works with every AI you run.
|
|
75
|
-
|
|
76
|
-
**Memory Crystal** (recommended)
|
|
77
|
-
- All your AI tools. One shared memory. Private, searchable, sovereign. Memory Crystal lets all your AIs remember you ... together. You use multiple AIs. They don't talk to each other. They can't search what the others know. Memory Crystal fixes this. All your AIs share one memory. Searchable and private. Anywhere in the world.
|
|
78
|
-
- *Stable* ... `wipcomputer/memory-crystal`
|
|
79
|
-
|
|
80
|
-
**AI DevOps Toolbox**
|
|
81
|
-
- Your AI writes code. But does it know how to release it? Check license compliance? Protect your identity files? Sync private repos to public? Follow a real development process? AI DevOps Toolbox is the complete toolkit. Built by a team of humans and AIs shipping real software together.
|
|
82
|
-
- *Stable* ... `wipcomputer/wip-ai-devops-toolbox`
|
|
28
|
+
# LDM OS
|
|
83
29
|
|
|
84
|
-
|
|
85
|
-
- 1Password secrets for AI agents. Headless, no biometric popups, service account driven.
|
|
86
|
-
- *Stable* ... `wipcomputer/wip-1password`
|
|
87
|
-
|
|
88
|
-
**Markdown Viewer**
|
|
89
|
-
- Live markdown viewer for AI pair-editing. Updates render instantly in any browser.
|
|
90
|
-
- *Stable* ... `wipcomputer/wip-markdown-viewer`
|
|
91
|
-
|
|
92
|
-
**xAI Grok**
|
|
93
|
-
- xAI Grok API. Search the web, search X, generate images, generate video.
|
|
94
|
-
- *Stable* ... `wipcomputer/wip-xai-grok`
|
|
95
|
-
|
|
96
|
-
**X Platform**
|
|
97
|
-
- X Platform API. Read posts, search tweets, post, upload media.
|
|
98
|
-
- *Stable* ... `wipcomputer/wip-xai-x`
|
|
99
|
-
|
|
100
|
-
**Dream Weaver Protocol**
|
|
101
|
-
- Memory consolidation protocol for AI agents with bounded context windows. A practical guide for remembering memories.
|
|
102
|
-
- `wipcomputer/dream-weaver-protocol`
|
|
103
|
-
|
|
104
|
-
**Agent Pay**
|
|
105
|
-
- Micropayments for AI agents. Your AI hits a paywall, you approve it with Face ID. Apple Pay for your AI.
|
|
106
|
-
- *Coming Soon*
|
|
107
|
-
|
|
108
|
-
**OpenClaw**
|
|
109
|
-
- Open-source agent runtime. Run AI agents 24/7 with identity, memory, and tool access. The existence proof for LDM OS.
|
|
110
|
-
- `openclaw/openclaw`
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## Step 1: Check if LDM OS is already installed
|
|
115
|
-
|
|
116
|
-
**Always check first. Never assume.**
|
|
30
|
+
## Step 1: Check if installed
|
|
117
31
|
|
|
118
32
|
```bash
|
|
119
33
|
which ldm && ldm --version 2>/dev/null
|
|
120
34
|
```
|
|
121
35
|
|
|
122
|
-
If you cannot run shell commands (
|
|
36
|
+
If you cannot run shell commands (GPT, Grok, Claude macOS, etc.): tell the user "I can't run commands from here. Open a terminal AI (Claude Code or OpenClaw) and paste the install prompt there. Or run `which ldm` in your terminal and tell me the result."
|
|
123
37
|
|
|
124
|
-
|
|
38
|
+
Branch on the result:
|
|
125
39
|
|
|
126
40
|
---
|
|
127
41
|
|
|
128
|
-
##
|
|
42
|
+
## Already installed
|
|
129
43
|
|
|
130
|
-
|
|
44
|
+
Do NOT re-explain what LDM OS is. Show what they have and what's new.
|
|
131
45
|
|
|
132
|
-
### Run status
|
|
46
|
+
### 1. Run status
|
|
133
47
|
|
|
134
48
|
```bash
|
|
135
49
|
ldm status 2>&1
|
|
136
50
|
```
|
|
137
51
|
|
|
138
|
-
|
|
139
|
-
- CLI version and whether a newer version exists
|
|
140
|
-
- Extension count and how many have updates available
|
|
141
|
-
- Specific version diffs for each outdated extension
|
|
142
|
-
|
|
143
|
-
**Use the output of `ldm status` as your summary.** Do not say "up to date" if `ldm status` shows updates available.
|
|
52
|
+
### 2. Show update table
|
|
144
53
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
Show a table of components with updates:
|
|
54
|
+
Always a table. Every component with an update gets its own row.
|
|
148
55
|
|
|
149
56
|
```
|
|
150
57
|
| Component | Current | Available | Package |
|
|
151
58
|
|-----------|---------|-----------|---------|
|
|
152
|
-
| LDM OS CLI | v0.4.41 | v0.4.45 | @wipcomputer/wip-ldm-os |
|
|
153
|
-
| wip-branch-guard | v1.9.44 | v1.9.51 | @wipcomputer/wip-branch-guard |
|
|
154
59
|
```
|
|
155
60
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
### Show what changed per component
|
|
61
|
+
### 3. Show what changed per component
|
|
159
62
|
|
|
160
|
-
**Do NOT skip this step.**
|
|
161
|
-
|
|
162
|
-
For each component with an update, fetch the release notes:
|
|
63
|
+
**Do NOT skip this step.**
|
|
163
64
|
|
|
164
65
|
```bash
|
|
165
|
-
# For each component with an update:
|
|
166
66
|
gh release list --repo wipcomputer/<repo-name> --limit 5 --json tagName,name --jq '.[]'
|
|
167
|
-
# Then for each release between current and available:
|
|
168
67
|
gh release view <tag> --repo wipcomputer/<repo-name> --json body --jq .body
|
|
169
68
|
```
|
|
170
69
|
|
|
171
|
-
|
|
70
|
+
Translate release notes to user language. Every bullet answers "what changed for ME?"
|
|
172
71
|
|
|
173
72
|
Good: "Your AIs now explain what LDM OS actually does when you ask them to install it"
|
|
174
73
|
Bad: "Restored rich product content to SKILL.md"
|
|
@@ -176,214 +75,89 @@ Bad: "Restored rich product content to SKILL.md"
|
|
|
176
75
|
Good: "Fixed: install skill wasn't publishing to the website after the March update"
|
|
177
76
|
Bad: "Fix .publish-skill.json iCloud path bug"
|
|
178
77
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
Show 2-3 bullet points per component in this user-facing style. No dev jargon. No commit messages. No architecture decisions. Just what changed for the person reading this.
|
|
78
|
+
Show 2-3 bullets per component. Then:
|
|
79
|
+
1. **What changed for this AI?**
|
|
80
|
+
2. **What changed across all my AIs?**
|
|
183
81
|
|
|
184
|
-
|
|
185
|
-
1. **What changed for this AI?** New capabilities, new tools, bug fixes that affect this AI.
|
|
186
|
-
2. **What changed across all my AIs?** Shared memory improvements, new skills, things that work everywhere now.
|
|
82
|
+
### 4. Ask
|
|
187
83
|
|
|
188
|
-
|
|
84
|
+
Do you have questions? Want to see a dry run?
|
|
189
85
|
|
|
190
|
-
- Do you have questions?
|
|
191
|
-
- Want to see a dry run?
|
|
192
|
-
|
|
193
|
-
If they say yes:
|
|
194
86
|
```bash
|
|
195
87
|
ldm install --dry-run
|
|
196
88
|
```
|
|
197
89
|
|
|
198
|
-
|
|
90
|
+
Don't install until the user says "install".
|
|
199
91
|
|
|
200
|
-
When they say install:
|
|
201
92
|
```bash
|
|
202
|
-
npm install -g @wipcomputer/wip-ldm-os@latest
|
|
203
|
-
ldm install
|
|
204
|
-
ldm doctor
|
|
93
|
+
npm install -g @wipcomputer/wip-ldm-os@latest
|
|
94
|
+
ldm install
|
|
95
|
+
ldm doctor
|
|
205
96
|
```
|
|
206
97
|
|
|
207
|
-
Updates deploy new code without touching data. crystal.db, agent files, secrets, and state are never overwritten.
|
|
208
|
-
|
|
209
98
|
---
|
|
210
99
|
|
|
211
|
-
##
|
|
212
|
-
|
|
213
|
-
Now explain. The user is new.
|
|
214
|
-
|
|
215
|
-
### What is LDM OS?
|
|
216
|
-
|
|
217
|
-
Learning Dreaming Machines. All your AIs. One system.
|
|
218
|
-
|
|
219
|
-
You use Claude Code, GPT, OpenClaw, others. They don't share memory. They don't know each other. They don't know how to work together.
|
|
220
|
-
|
|
221
|
-
LDM OS is the shared infrastructure layer. Install it once and every AI you use gets:
|
|
222
|
-
|
|
223
|
-
- **Identity** ... each AI gets its own behavior, personality, and skills
|
|
224
|
-
- **Memory** ... shared memory across all your AIs, secure, sovereign, yours to take anywhere
|
|
225
|
-
- **Ownership** ... every interaction, every memory, across every AI you use is yours, portable, encrypted, never locked in
|
|
226
|
-
- **Collaboration** ... your AIs communicate, share tools, and work together
|
|
227
|
-
- **Compatibility** ... any skill, plugin, or tool works with all your AIs. Install once, use everywhere.
|
|
228
|
-
- **Payments** ... your AI hits a paywall, you approve it with Face ID, Apple Pay for your AI
|
|
229
|
-
|
|
230
|
-
### What does it install?
|
|
231
|
-
|
|
232
|
-
- `~/.ldm/extensions/` ... where tools and plugins live
|
|
233
|
-
- `~/.ldm/agents/` ... each AI gets its own identity, personality, and memory here
|
|
234
|
-
- `~/.ldm/memory/` ... shared memory across all your AIs (including the Memory Crystal)
|
|
235
|
-
- `~/.ldm/state/` ... configuration and sync state
|
|
236
|
-
- `~/.ldm/shared/rules/` ... dev conventions deployed to every AI harness
|
|
100
|
+
## Not installed
|
|
237
101
|
|
|
238
|
-
|
|
102
|
+
The user is new. Read [references/PRODUCT.md](references/PRODUCT.md) for what to explain.
|
|
239
103
|
|
|
240
|
-
|
|
104
|
+
### 1. Explain what LDM OS is
|
|
241
105
|
|
|
242
|
-
|
|
243
|
-
-
|
|
244
|
-
-
|
|
245
|
-
-
|
|
246
|
-
-
|
|
247
|
-
- **LUME** ... Language for Unified Memory and Emergence. A memory language for AI agents to document their own learning and maintain continuity across sessions.
|
|
106
|
+
Use the content from references/PRODUCT.md. Cover:
|
|
107
|
+
- What is it (shared infrastructure for all your AIs)
|
|
108
|
+
- What does it install (~/.ldm/ directories)
|
|
109
|
+
- What changes for this AI
|
|
110
|
+
- What changes across all AIs
|
|
248
111
|
|
|
249
|
-
###
|
|
112
|
+
### 2. Show what ships with it
|
|
250
113
|
|
|
251
|
-
-
|
|
252
|
-
- Rules deployed to `~/.claude/rules/` (git conventions, security, release pipeline)
|
|
253
|
-
- Extensions like Memory Crystal, wip-release are managed centrally
|
|
254
|
-
- Stop hooks write to crystal and daily logs after every turn
|
|
114
|
+
Read [references/SKILLS-CATALOG.md](references/SKILLS-CATALOG.md). Present the included skills and optional skills catalog.
|
|
255
115
|
|
|
256
|
-
###
|
|
116
|
+
### 3. Ask
|
|
257
117
|
|
|
258
|
-
|
|
259
|
-
- Shared rules (same conventions everywhere)
|
|
260
|
-
- Shared extensions (install once, every AI sees it)
|
|
261
|
-
- Agent identity (each AI is its own entity with its own prefix)
|
|
118
|
+
Do you have questions? Want to see a dry run?
|
|
262
119
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
- Do you have questions?
|
|
266
|
-
- Want to see a dry run?
|
|
267
|
-
|
|
268
|
-
If they say yes, install the CLI first:
|
|
120
|
+
Install the CLI first:
|
|
269
121
|
```bash
|
|
270
122
|
npm install -g @wipcomputer/wip-ldm-os
|
|
271
123
|
```
|
|
272
124
|
|
|
273
|
-
If npm/node is not installed
|
|
125
|
+
If npm/node is not installed: Node.js 18+ from https://nodejs.org first.
|
|
274
126
|
|
|
275
|
-
|
|
127
|
+
Dry run:
|
|
276
128
|
```bash
|
|
277
129
|
ldm init --dry-run
|
|
278
130
|
```
|
|
279
131
|
|
|
280
|
-
|
|
132
|
+
Don't install until the user says "install".
|
|
281
133
|
|
|
282
|
-
When they say install:
|
|
283
134
|
```bash
|
|
284
135
|
ldm init
|
|
285
136
|
```
|
|
286
137
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
After LDM OS is initialized, show the user the optional skills catalog:
|
|
290
|
-
|
|
291
|
-
| Skill | What it does | Status |
|
|
292
|
-
|-------|-------------|--------|
|
|
293
|
-
| **Memory Crystal** (recommended) | All your AIs share one memory. Private, searchable, sovereign. | Stable |
|
|
294
|
-
| **AI DevOps Toolbox** | Release, deploy, license, repo management. The complete dev toolkit. | Stable |
|
|
295
|
-
| **1Password** | 1Password secrets for AI agents. Headless, service account driven. | Stable |
|
|
296
|
-
| **Markdown Viewer** | Live markdown viewer for AI pair-editing. | Stable |
|
|
297
|
-
| **xAI Grok** | xAI Grok API. Search the web, search X, generate images, generate video. | Stable |
|
|
298
|
-
| **X Platform** | X Platform API. Read posts, search tweets, post, upload media. | Stable |
|
|
299
|
-
| **Dream Weaver Protocol** | Memory consolidation for AI agents with bounded context windows. | Stable |
|
|
300
|
-
| **Agent Pay** | Micropayments for AI agents. Apple Pay for your AI. | Coming Soon |
|
|
301
|
-
|
|
302
|
-
To install a skill:
|
|
303
|
-
```bash
|
|
304
|
-
ldm install wipcomputer/memory-crystal --dry-run
|
|
305
|
-
```
|
|
306
|
-
|
|
307
|
-
Show the dry run. When approved:
|
|
138
|
+
Then show optional skills from references/SKILLS-CATALOG.md. Install with:
|
|
308
139
|
```bash
|
|
309
|
-
ldm install wipcomputer
|
|
140
|
+
ldm install wipcomputer/<skill-name> --dry-run
|
|
141
|
+
ldm install wipcomputer/<skill-name>
|
|
310
142
|
```
|
|
311
143
|
|
|
312
|
-
|
|
313
|
-
|
|
144
|
+
Verify:
|
|
314
145
|
```bash
|
|
315
146
|
ldm doctor
|
|
316
147
|
```
|
|
317
148
|
|
|
318
149
|
---
|
|
319
150
|
|
|
320
|
-
##
|
|
321
|
-
|
|
322
|
-
| Interface | Requires | Examples |
|
|
323
|
-
|-----------|----------|----------|
|
|
324
|
-
| CLI | Shell access (run bash/node commands) | `ldm init`, `ldm install`, `ldm doctor` |
|
|
325
|
-
| Skill | SKILL.md file (works in Claude Code and OpenClaw) | You're reading it right now |
|
|
326
|
-
|
|
327
|
-
**Built and tested on:**
|
|
328
|
-
- **Claude Code CLI** ... full support (shell, CLI, hooks, MCP)
|
|
329
|
-
- **OpenClaw** ... full support (shell, CLI, plugins, hooks)
|
|
330
|
-
|
|
331
|
-
**Works with (read-only, no shell):**
|
|
332
|
-
- **GPT** ... can read the skill and explain LDM OS, but cannot run install commands
|
|
333
|
-
- **Grok** ... can read the skill and explain LDM OS, but cannot run install commands
|
|
334
|
-
- **Claude macOS** ... can read the skill and explain LDM OS, but cannot run install commands
|
|
335
|
-
|
|
336
|
-
If you are an AI without shell access: explain LDM OS using this document, then tell the user to open a terminal-capable AI (Claude Code or OpenClaw) to run the install.
|
|
337
|
-
|
|
338
|
-
## Operating Rules (both paths)
|
|
339
|
-
|
|
340
|
-
**Check before you run.** Before running any `ldm` command, check if it's installed: `which ldm`. If not found, tell the user: "I need to install the LDM OS CLI first. That's one npm package (`npm install -g @wipcomputer/wip-ldm-os`) that gives us the `ldm` command. It doesn't install anything else until you say so." Never show the user a "command not found" error you already knew would happen.
|
|
341
|
-
|
|
342
|
-
**Always dry-run first.** Before installing or making changes, run with `--dry-run` so the user can see exactly what will happen. Only proceed when the user explicitly says to.
|
|
343
|
-
|
|
344
|
-
**Never touch sacred data.** The installer never overwrites: crystal.db, agent data, secrets, state files. Code gets updated. Data stays.
|
|
345
|
-
|
|
346
|
-
## Commands
|
|
347
|
-
|
|
348
|
-
| Command | What it does |
|
|
349
|
-
|---------|-------------|
|
|
350
|
-
| `ldm init` | Scaffold `~/.ldm/` and write version.json |
|
|
351
|
-
| `ldm install <org/repo>` | Clone, detect interfaces, deploy, register |
|
|
352
|
-
| `ldm install /path/to/repo` | Install from local path |
|
|
353
|
-
| `ldm install` | Update all registered extensions |
|
|
354
|
-
| `ldm doctor` | Check health of all extensions |
|
|
355
|
-
| `ldm status` | Show version and extension list |
|
|
356
|
-
| `ldm --version` | Show version |
|
|
357
|
-
|
|
358
|
-
All commands support `--dry-run` (preview changes) and `--json` (machine-readable output).
|
|
359
|
-
|
|
360
|
-
## Interface Detection
|
|
361
|
-
|
|
362
|
-
When you run `ldm install`, it automatically detects what a repo supports:
|
|
363
|
-
|
|
364
|
-
| Interface | How it's detected | Where it deploys |
|
|
365
|
-
|-----------|------------------|-----------------|
|
|
366
|
-
| CLI | `package.json` has `bin` entries | `npm install -g` |
|
|
367
|
-
| MCP Server | Has `mcp-server.mjs` or `mcp-server.js` | `claude mcp add --scope user` |
|
|
368
|
-
| OpenClaw Plugin | Has `openclaw.plugin.json` | `~/.ldm/extensions/` + `~/.openclaw/extensions/` |
|
|
369
|
-
| Skill | Has `SKILL.md` or `skills/` directory | `~/.openclaw/skills/` |
|
|
370
|
-
| CC Hook | Has `guard.mjs` or `claudeCode.hook` in package.json | `~/.claude/settings.json` |
|
|
371
|
-
| Module | Has `main` or `exports` in package.json | Importable via `node_modules` |
|
|
372
|
-
|
|
373
|
-
No manual configuration needed. Point it at a repo and it figures out the rest.
|
|
374
|
-
|
|
375
|
-
## Part of LDM OS
|
|
151
|
+
## Rules
|
|
376
152
|
|
|
377
|
-
|
|
153
|
+
- **Check before you run.** `which ldm` first. Never show "command not found" you knew would happen.
|
|
154
|
+
- **Dry-run first.** Always. Only install when the user says "install".
|
|
155
|
+
- **Never touch sacred data.** crystal.db, agent data, secrets, state files are never overwritten.
|
|
378
156
|
|
|
379
|
-
|
|
380
|
-
- **AI DevOps Toolbox** ... `wipcomputer/wip-ai-devops-toolbox`
|
|
381
|
-
- **1Password** ... `wipcomputer/wip-1password`
|
|
382
|
-
- **Markdown Viewer** ... `wipcomputer/wip-markdown-viewer`
|
|
383
|
-
- **xAI Grok** ... `wipcomputer/wip-xai-grok`
|
|
384
|
-
- **X Platform** ... `wipcomputer/wip-xai-x`
|
|
385
|
-
- **OpenClaw** ... `openclaw/openclaw`
|
|
386
|
-
- **Dream Weaver Protocol** ... `wipcomputer/dream-weaver-protocol`
|
|
387
|
-
- **Bridge** ... `wipcomputer/wip-bridge`
|
|
157
|
+
## Reference files
|
|
388
158
|
|
|
389
|
-
|
|
159
|
+
For detailed information, read these on demand (not on every activation):
|
|
160
|
+
- [references/PRODUCT.md](references/PRODUCT.md) ... what LDM OS is, what it installs
|
|
161
|
+
- [references/SKILLS-CATALOG.md](references/SKILLS-CATALOG.md) ... included and optional skills
|
|
162
|
+
- [references/COMMANDS.md](references/COMMANDS.md) ... full command reference
|
|
163
|
+
- [references/INTERFACES.md](references/INTERFACES.md) ... interface detection table
|
|
@@ -15,7 +15,7 @@ The chiclets at the top of this README tell you what interfaces this repo ships.
|
|
|
15
15
|
| **npm** | Published to npm. Installable via `npm install`. Versioned, dependency-managed, standard distribution. |
|
|
16
16
|
| **CLI / TUI** | Ships a command-line interface. Humans run it in a terminal. Agents call it from shell. The most portable interface there is. |
|
|
17
17
|
| **OpenClaw Skill** | Registered as a skill on [ClawHub](https://clawhub.ai). OpenClaw agents can discover and use it natively through the gateway. |
|
|
18
|
-
| **Claude Code Skill** | Has a `SKILL.md` that teaches Claude Code (and any agent that reads markdown) when to use this tool, what it does, and how to call it.
|
|
18
|
+
| **Claude Code Skill** | Has a `SKILL.md` that teaches Claude Code (and any agent that reads markdown) when to use this tool, what it does, and how to call it. Follows the [Agent Skills Spec](https://agentskills.io/specification). Process in SKILL.md, context in `references/`. |
|
|
19
19
|
| **Universal Interface Spec** | Follows the [TECHNICAL.md](TECHNICAL.md) convention. The repo's architecture is documented, the interfaces are declared, and any agent or human can understand the full surface area by reading one file. |
|
|
20
20
|
|
|
21
21
|
When you see these badges on a WIP repo, you know exactly how to consume it. Human or agent, CLI or plugin, local or remote. That's the point.
|
|
@@ -76,19 +76,35 @@ A plugin for OpenClaw agents. Lifecycle hooks, tool registration, settings.
|
|
|
76
76
|
|
|
77
77
|
### 5. Skill (SKILL.md)
|
|
78
78
|
|
|
79
|
-
A markdown file that teaches agents when and how to use the tool. The instruction interface.
|
|
79
|
+
A markdown file that teaches agents when and how to use the tool. The instruction interface. Follows the [Agent Skills Spec](https://agentskills.io/specification).
|
|
80
80
|
|
|
81
|
-
**Convention:** `SKILL.md` at the repo root. YAML frontmatter with name,
|
|
81
|
+
**Convention:** `SKILL.md` at the repo root. YAML frontmatter with name, description. Optional `references/` directory for context files.
|
|
82
82
|
|
|
83
83
|
**Detection:** `SKILL.md` exists.
|
|
84
84
|
|
|
85
|
-
**Install:**
|
|
85
|
+
**Install:** `SKILL.md` deployed to `~/.openclaw/skills/<name>/`. If `references/` exists, deployed alongside SKILL.md and to `settings/docs/skills/<name>/` in the workspace.
|
|
86
|
+
|
|
87
|
+
**Structure:**
|
|
88
|
+
```
|
|
89
|
+
repo/
|
|
90
|
+
├── SKILL.md # < 150 lines. Process only. Imperative instructions.
|
|
91
|
+
└── references/ # Optional. Context files loaded on demand.
|
|
92
|
+
├── PRODUCT.md # What the product is
|
|
93
|
+
├── TOOLS.md # MCP tools, CLI commands
|
|
94
|
+
└── ...
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Key rules (from Agent Skills Spec):**
|
|
98
|
+
- SKILL.md body < 5000 tokens. Process goes in SKILL.md, context goes in references/.
|
|
99
|
+
- Imperative language: "Run this command" not "This product enables..."
|
|
100
|
+
- Progressive disclosure: metadata loaded at startup, body on activation, references on demand.
|
|
86
101
|
|
|
87
102
|
```yaml
|
|
88
103
|
---
|
|
89
104
|
name: wip-grok
|
|
90
|
-
|
|
91
|
-
|
|
105
|
+
description: >
|
|
106
|
+
xAI Grok API. Search the web, search X, generate images.
|
|
107
|
+
Use when asked to search, browse, or generate images.
|
|
92
108
|
metadata:
|
|
93
109
|
category: search,media
|
|
94
110
|
capabilities:
|
|
@@ -106,19 +106,24 @@ A plugin for OpenClaw agents. Lifecycle hooks, tool registration, settings.
|
|
|
106
106
|
|
|
107
107
|
### 5. Skill (SKILL.md)
|
|
108
108
|
|
|
109
|
-
A markdown file that teaches agents when and how to use the tool. The instruction interface.
|
|
109
|
+
A markdown file that teaches agents when and how to use the tool. The instruction interface. Follows the [Agent Skills Spec](https://agentskills.io/specification).
|
|
110
110
|
|
|
111
|
-
**Convention:** `SKILL.md` at the repo root.
|
|
111
|
+
**Convention:** `SKILL.md` at the repo root. Optional `references/` directory for context files.
|
|
112
112
|
|
|
113
113
|
**Detection:** `SKILL.md` exists.
|
|
114
114
|
|
|
115
|
-
**Install:**
|
|
115
|
+
**Install:** `ldm install` deploys `SKILL.md` to `~/.openclaw/skills/<name>/`. If `references/` exists, it is deployed alongside and also to `settings/docs/skills/<name>/` in the workspace (so all agents can read them).
|
|
116
|
+
|
|
117
|
+
**Key rules:**
|
|
118
|
+
- SKILL.md body < 5000 tokens. Process in SKILL.md, context in references/.
|
|
119
|
+
- references/ files are loaded on demand, not on every activation.
|
|
116
120
|
|
|
117
121
|
```yaml
|
|
118
122
|
---
|
|
119
123
|
name: wip-grok
|
|
120
|
-
|
|
121
|
-
|
|
124
|
+
description: >
|
|
125
|
+
xAI Grok API. Search the web, search X, generate images.
|
|
126
|
+
Use when asked to search, browse, or generate images.
|
|
122
127
|
metadata:
|
|
123
128
|
category: search,media
|
|
124
129
|
capabilities:
|
package/lib/deploy.mjs
CHANGED
|
@@ -674,6 +674,29 @@ function installSkill(repoPath, toolName) {
|
|
|
674
674
|
mkdirSync(ocSkillDir, { recursive: true });
|
|
675
675
|
cpSync(skillSrc, ocSkillDest);
|
|
676
676
|
ok(`Skill: deployed to ${ocSkillDir}`);
|
|
677
|
+
|
|
678
|
+
// Deploy references/ if it exists (Agent Skills Spec pattern)
|
|
679
|
+
const refsSrc = join(repoPath, 'references');
|
|
680
|
+
if (existsSync(refsSrc)) {
|
|
681
|
+
const refsDest = join(ocSkillDir, 'references');
|
|
682
|
+
cpSync(refsSrc, refsDest, { recursive: true });
|
|
683
|
+
|
|
684
|
+
// Also deploy to home (settings/docs/skills/) so all agents can read them
|
|
685
|
+
try {
|
|
686
|
+
const ldmConfigPath = join(LDM_ROOT, 'config.json');
|
|
687
|
+
if (existsSync(ldmConfigPath)) {
|
|
688
|
+
const ldmConfig = JSON.parse(readFileSync(ldmConfigPath, 'utf8'));
|
|
689
|
+
const workspace = (ldmConfig.workspace || '').replace('~', HOME);
|
|
690
|
+
if (workspace && existsSync(workspace)) {
|
|
691
|
+
const homeRefsDest = join(workspace, 'settings', 'docs', 'skills', toolName);
|
|
692
|
+
mkdirSync(homeRefsDest, { recursive: true });
|
|
693
|
+
cpSync(refsSrc, homeRefsDest, { recursive: true });
|
|
694
|
+
ok(`Skill: references/ deployed to ${homeRefsDest.replace(HOME, '~')}`);
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
} catch {}
|
|
698
|
+
}
|
|
699
|
+
|
|
677
700
|
return true;
|
|
678
701
|
} catch (e) {
|
|
679
702
|
fail(`Skill: deploy failed. ${e.message}`);
|