@wipcomputer/wip-ldm-os 0.4.48 → 0.4.50
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
CHANGED
|
@@ -9,7 +9,7 @@ license: MIT
|
|
|
9
9
|
compatibility: Requires git, npm, node. Node.js 18+.
|
|
10
10
|
metadata:
|
|
11
11
|
display-name: "LDM OS"
|
|
12
|
-
version: "0.4.
|
|
12
|
+
version: "0.4.50"
|
|
13
13
|
homepage: "https://github.com/wipcomputer/wip-ldm-os"
|
|
14
14
|
author: "Parker Todd Brooks"
|
|
15
15
|
category: infrastructure
|
|
@@ -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
|
@@ -671,9 +671,45 @@ function installSkill(repoPath, toolName) {
|
|
|
671
671
|
}
|
|
672
672
|
|
|
673
673
|
try {
|
|
674
|
+
// Deploy to OpenClaw (~/.openclaw/skills/)
|
|
674
675
|
mkdirSync(ocSkillDir, { recursive: true });
|
|
675
676
|
cpSync(skillSrc, ocSkillDest);
|
|
676
|
-
|
|
677
|
+
|
|
678
|
+
// Deploy to Claude Code (~/.claude/skills/) - standard discovery path
|
|
679
|
+
const ccSkillDir = join(HOME, '.claude', 'skills', toolName);
|
|
680
|
+
if (existsSync(join(HOME, '.claude'))) {
|
|
681
|
+
mkdirSync(ccSkillDir, { recursive: true });
|
|
682
|
+
cpSync(skillSrc, join(ccSkillDir, 'SKILL.md'));
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
ok(`Skill: deployed to ~/.openclaw/skills/ and ~/.claude/skills/`);
|
|
686
|
+
|
|
687
|
+
// Deploy references/ if it exists (Agent Skills Spec pattern)
|
|
688
|
+
const refsSrc = join(repoPath, 'references');
|
|
689
|
+
if (existsSync(refsSrc)) {
|
|
690
|
+
// To OpenClaw skill dir
|
|
691
|
+
cpSync(refsSrc, join(ocSkillDir, 'references'), { recursive: true });
|
|
692
|
+
// To Claude Code skill dir
|
|
693
|
+
if (existsSync(ccSkillDir)) {
|
|
694
|
+
cpSync(refsSrc, join(ccSkillDir, 'references'), { recursive: true });
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
// Also deploy to home (settings/docs/skills/) so all agents can read them
|
|
698
|
+
try {
|
|
699
|
+
const ldmConfigPath = join(LDM_ROOT, 'config.json');
|
|
700
|
+
if (existsSync(ldmConfigPath)) {
|
|
701
|
+
const ldmConfig = JSON.parse(readFileSync(ldmConfigPath, 'utf8'));
|
|
702
|
+
const workspace = (ldmConfig.workspace || '').replace('~', HOME);
|
|
703
|
+
if (workspace && existsSync(workspace)) {
|
|
704
|
+
const homeRefsDest = join(workspace, 'settings', 'docs', 'skills', toolName);
|
|
705
|
+
mkdirSync(homeRefsDest, { recursive: true });
|
|
706
|
+
cpSync(refsSrc, homeRefsDest, { recursive: true });
|
|
707
|
+
ok(`Skill: references/ deployed to ${homeRefsDest.replace(HOME, '~')}`);
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
} catch {}
|
|
711
|
+
}
|
|
712
|
+
|
|
677
713
|
return true;
|
|
678
714
|
} catch (e) {
|
|
679
715
|
fail(`Skill: deploy failed. ${e.message}`);
|