clawpowers 1.1.4 → 2.2.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 (131) hide show
  1. package/CHANGELOG.md +126 -0
  2. package/COMPATIBILITY.md +13 -0
  3. package/KNOWN_LIMITATIONS.md +19 -0
  4. package/LICENSE +44 -0
  5. package/LICENSING.md +10 -0
  6. package/README.md +378 -210
  7. package/SECURITY.md +52 -0
  8. package/dist/index.d.ts +1477 -0
  9. package/dist/index.js +3464 -0
  10. package/dist/index.js.map +1 -0
  11. package/native/Cargo.lock +4863 -0
  12. package/native/Cargo.toml +73 -0
  13. package/native/crates/canonical/Cargo.toml +24 -0
  14. package/native/crates/canonical/src/lib.rs +673 -0
  15. package/native/crates/compression/Cargo.toml +20 -0
  16. package/native/crates/compression/benches/compression_bench.rs +42 -0
  17. package/native/crates/compression/src/lib.rs +393 -0
  18. package/native/crates/evm-eth/Cargo.toml +13 -0
  19. package/native/crates/evm-eth/src/lib.rs +105 -0
  20. package/native/crates/fee/Cargo.toml +15 -0
  21. package/native/crates/fee/src/lib.rs +281 -0
  22. package/native/crates/index/Cargo.toml +16 -0
  23. package/native/crates/index/src/lib.rs +277 -0
  24. package/native/crates/policy/Cargo.toml +17 -0
  25. package/native/crates/policy/src/lib.rs +614 -0
  26. package/native/crates/security/Cargo.toml +22 -0
  27. package/native/crates/security/src/lib.rs +478 -0
  28. package/native/crates/tokens/Cargo.toml +13 -0
  29. package/native/crates/tokens/src/lib.rs +534 -0
  30. package/native/crates/verification/Cargo.toml +23 -0
  31. package/native/crates/verification/src/lib.rs +333 -0
  32. package/native/crates/wallet/Cargo.toml +20 -0
  33. package/native/crates/wallet/src/lib.rs +261 -0
  34. package/native/crates/x402/Cargo.toml +30 -0
  35. package/native/crates/x402/src/lib.rs +423 -0
  36. package/native/ffi/Cargo.toml +34 -0
  37. package/native/ffi/build.rs +4 -0
  38. package/native/ffi/index.node +0 -0
  39. package/native/ffi/src/lib.rs +352 -0
  40. package/native/ffi/tests/integration.rs +354 -0
  41. package/native/pyo3/Cargo.toml +26 -0
  42. package/native/pyo3/pyproject.toml +16 -0
  43. package/native/pyo3/src/lib.rs +407 -0
  44. package/native/pyo3/tests/test_smoke.py +180 -0
  45. package/native/wasm/Cargo.toml +44 -0
  46. package/native/wasm/pkg/.gitignore +6 -0
  47. package/native/wasm/pkg/clawpowers_wasm.d.ts +208 -0
  48. package/native/wasm/pkg/clawpowers_wasm.js +872 -0
  49. package/native/wasm/pkg/clawpowers_wasm_bg.wasm +0 -0
  50. package/native/wasm/pkg/clawpowers_wasm_bg.wasm.d.ts +40 -0
  51. package/native/wasm/pkg/package.json +17 -0
  52. package/native/wasm/pkg-node/.gitignore +6 -0
  53. package/native/wasm/pkg-node/clawpowers_wasm.d.ts +143 -0
  54. package/native/wasm/pkg-node/clawpowers_wasm.js +798 -0
  55. package/native/wasm/pkg-node/clawpowers_wasm_bg.wasm +0 -0
  56. package/native/wasm/pkg-node/clawpowers_wasm_bg.wasm.d.ts +40 -0
  57. package/native/wasm/pkg-node/package.json +13 -0
  58. package/native/wasm/src/lib.rs +433 -0
  59. package/package.json +71 -44
  60. package/src/skills/catalog.ts +435 -0
  61. package/src/skills/executor.ts +56 -0
  62. package/src/skills/index.ts +3 -0
  63. package/src/skills/itp/SKILL.md +112 -0
  64. package/src/skills/loader.ts +193 -0
  65. package/.claude-plugin/manifest.json +0 -19
  66. package/.codex/INSTALL.md +0 -36
  67. package/.cursor-plugin/manifest.json +0 -21
  68. package/.opencode/INSTALL.md +0 -52
  69. package/ARCHITECTURE.md +0 -69
  70. package/bin/clawpowers.js +0 -625
  71. package/bin/clawpowers.sh +0 -91
  72. package/docs/demo/clawpowers-demo.cast +0 -197
  73. package/docs/demo/clawpowers-demo.gif +0 -0
  74. package/docs/launch-images/25-skills-breakdown.jpg +0 -0
  75. package/docs/launch-images/clawpowers-vs-superpowers.jpg +0 -0
  76. package/docs/launch-images/economic-code-optimization.jpg +0 -0
  77. package/docs/launch-images/native-vs-bridge-2.jpg +0 -0
  78. package/docs/launch-images/native-vs-bridge.jpg +0 -0
  79. package/docs/launch-images/post1-hero-lobster.jpg +0 -0
  80. package/docs/launch-images/post2-dashboard.jpg +0 -0
  81. package/docs/launch-images/post3-superpowers.jpg +0 -0
  82. package/docs/launch-images/post4-before-after.jpg +0 -0
  83. package/docs/launch-images/post5-install-now.jpg +0 -0
  84. package/docs/launch-images/ultimate-stack.jpg +0 -0
  85. package/docs/launch-posts.md +0 -76
  86. package/docs/quickstart-first-transaction.md +0 -204
  87. package/gemini-extension.json +0 -32
  88. package/hooks/session-start +0 -205
  89. package/hooks/session-start.cmd +0 -43
  90. package/hooks/session-start.js +0 -163
  91. package/runtime/demo/README.md +0 -78
  92. package/runtime/demo/x402-mock-server.js +0 -230
  93. package/runtime/feedback/analyze.js +0 -621
  94. package/runtime/feedback/analyze.sh +0 -546
  95. package/runtime/init.js +0 -210
  96. package/runtime/init.sh +0 -178
  97. package/runtime/metrics/collector.js +0 -361
  98. package/runtime/metrics/collector.sh +0 -308
  99. package/runtime/payments/ledger.js +0 -305
  100. package/runtime/payments/ledger.sh +0 -262
  101. package/runtime/payments/pipeline.js +0 -455
  102. package/runtime/persistence/store.js +0 -433
  103. package/runtime/persistence/store.sh +0 -303
  104. package/skill.json +0 -106
  105. package/skills/agent-bounties/SKILL.md +0 -553
  106. package/skills/agent-payments/SKILL.md +0 -479
  107. package/skills/brainstorming/SKILL.md +0 -233
  108. package/skills/content-pipeline/SKILL.md +0 -282
  109. package/skills/cross-project-knowledge/SKILL.md +0 -345
  110. package/skills/dispatching-parallel-agents/SKILL.md +0 -305
  111. package/skills/economic-code-optimization/SKILL.md +0 -265
  112. package/skills/executing-plans/SKILL.md +0 -255
  113. package/skills/finishing-a-development-branch/SKILL.md +0 -260
  114. package/skills/formal-verification-lite/SKILL.md +0 -441
  115. package/skills/learn-how-to-learn/SKILL.md +0 -235
  116. package/skills/market-intelligence/SKILL.md +0 -323
  117. package/skills/meta-skill-evolution/SKILL.md +0 -325
  118. package/skills/prospecting/SKILL.md +0 -454
  119. package/skills/receiving-code-review/SKILL.md +0 -225
  120. package/skills/requesting-code-review/SKILL.md +0 -206
  121. package/skills/security-audit/SKILL.md +0 -353
  122. package/skills/self-healing-code/SKILL.md +0 -369
  123. package/skills/subagent-driven-development/SKILL.md +0 -244
  124. package/skills/systematic-debugging/SKILL.md +0 -355
  125. package/skills/test-driven-development/SKILL.md +0 -416
  126. package/skills/using-clawpowers/SKILL.md +0 -160
  127. package/skills/using-git-worktrees/SKILL.md +0 -261
  128. package/skills/validator/SKILL.md +0 -281
  129. package/skills/verification-before-completion/SKILL.md +0 -254
  130. package/skills/writing-plans/SKILL.md +0 -276
  131. package/skills/writing-skills/SKILL.md +0 -260
@@ -0,0 +1,435 @@
1
+ /**
2
+ * ClawPowers Agent — Skills Catalog
3
+ *
4
+ * Static catalog of all skills available to ClawPowers.
5
+ * Sources:
6
+ * - openclaw-bundled: 51 skills bundled with OpenClaw
7
+ * - managed: skills installed in ~/.openclaw/skills/
8
+ *
9
+ * Generated by reading SKILL.md frontmatter from each skill directory.
10
+ * This is a STATIC array so it works everywhere (no runtime file I/O).
11
+ */
12
+
13
+ // ─── Types ────────────────────────────────────────────────────────────────────
14
+
15
+ export interface SkillEntry {
16
+ name: string;
17
+ description: string;
18
+ source: 'openclaw-bundled' | 'clawpowers' | 'managed';
19
+ category: string;
20
+ }
21
+
22
+ // ─── OpenClaw Bundled Skills (51) ─────────────────────────────────────────────
23
+
24
+ export const SKILLS_CATALOG: SkillEntry[] = [
25
+ // ── productivity ──────────────────────────────────────────────────────────
26
+ {
27
+ name: '1password',
28
+ description: 'Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.',
29
+ source: 'openclaw-bundled',
30
+ category: 'productivity',
31
+ },
32
+ {
33
+ name: 'apple-notes',
34
+ description: 'Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.',
35
+ source: 'openclaw-bundled',
36
+ category: 'productivity',
37
+ },
38
+ {
39
+ name: 'apple-reminders',
40
+ description: 'Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.',
41
+ source: 'openclaw-bundled',
42
+ category: 'productivity',
43
+ },
44
+ {
45
+ name: 'bear-notes',
46
+ description: 'Create, search, and manage Bear notes via grizzly CLI.',
47
+ source: 'openclaw-bundled',
48
+ category: 'productivity',
49
+ },
50
+ {
51
+ name: 'notion',
52
+ description: 'Notion API for creating and managing pages, databases, and blocks.',
53
+ source: 'openclaw-bundled',
54
+ category: 'productivity',
55
+ },
56
+ {
57
+ name: 'obsidian',
58
+ description: 'Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.',
59
+ source: 'openclaw-bundled',
60
+ category: 'productivity',
61
+ },
62
+ {
63
+ name: 'things-mac',
64
+ description: 'Manage Things 3 via the `things` CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database). Use when a user asks OpenClaw to add a task to Things, list items, or search tasks.',
65
+ source: 'openclaw-bundled',
66
+ category: 'productivity',
67
+ },
68
+ {
69
+ name: 'trello',
70
+ description: 'Manage Trello boards, lists, and cards via the Trello REST API.',
71
+ source: 'openclaw-bundled',
72
+ category: 'productivity',
73
+ },
74
+ {
75
+ name: 'summarize',
76
+ description: 'Summarize or extract text/transcripts from URLs, podcasts, and local files (great fallback for "transcribe this YouTube/video").',
77
+ source: 'openclaw-bundled',
78
+ category: 'productivity',
79
+ },
80
+ {
81
+ name: 'tmux',
82
+ description: 'Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.',
83
+ source: 'openclaw-bundled',
84
+ category: 'productivity',
85
+ },
86
+ // ── development ───────────────────────────────────────────────────────────
87
+ {
88
+ name: 'coding-agent',
89
+ description: 'Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases.',
90
+ source: 'openclaw-bundled',
91
+ category: 'development',
92
+ },
93
+ {
94
+ name: 'github',
95
+ description: 'GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing diffs.',
96
+ source: 'openclaw-bundled',
97
+ category: 'development',
98
+ },
99
+ {
100
+ name: 'gh-issues',
101
+ description: 'Fetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments.',
102
+ source: 'openclaw-bundled',
103
+ category: 'development',
104
+ },
105
+ {
106
+ name: 'skill-creator',
107
+ description: 'Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file.',
108
+ source: 'openclaw-bundled',
109
+ category: 'development',
110
+ },
111
+ {
112
+ name: 'clawhub',
113
+ description: 'Use the ClawHub CLI to search, install, update, and publish agent skills from clawhub.com. Use when you need to fetch new skills on the fly, sync installed skills to latest or a specific version, or publish your own skills.',
114
+ source: 'openclaw-bundled',
115
+ category: 'development',
116
+ },
117
+ {
118
+ name: 'oracle',
119
+ description: 'Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).',
120
+ source: 'openclaw-bundled',
121
+ category: 'development',
122
+ },
123
+ {
124
+ name: 'mcporter',
125
+ description: 'Use the mcporter CLI to list, configure, auth, and call MCP servers/tools directly (HTTP or stdio), including ad-hoc servers, config edits, and CLI/type generation.',
126
+ source: 'openclaw-bundled',
127
+ category: 'development',
128
+ },
129
+ {
130
+ name: 'nano-pdf',
131
+ description: 'Edit PDFs with natural-language instructions using the nano-pdf CLI.',
132
+ source: 'openclaw-bundled',
133
+ category: 'development',
134
+ },
135
+ {
136
+ name: 'node-connect',
137
+ description: 'Diagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps. Use when QR/setup code/manual connect fails, local Wi-Fi works but VPS/tailnet does not, or errors mention pairing.',
138
+ source: 'openclaw-bundled',
139
+ category: 'development',
140
+ },
141
+ // ── communication ─────────────────────────────────────────────────────────
142
+ {
143
+ name: 'discord',
144
+ description: 'Discord ops via the message tool (channel=discord).',
145
+ source: 'openclaw-bundled',
146
+ category: 'communication',
147
+ },
148
+ {
149
+ name: 'slack',
150
+ description: 'Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.',
151
+ source: 'openclaw-bundled',
152
+ category: 'communication',
153
+ },
154
+ {
155
+ name: 'bluebubbles',
156
+ description: 'Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel=bluebubbles.',
157
+ source: 'openclaw-bundled',
158
+ category: 'communication',
159
+ },
160
+ {
161
+ name: 'imsg',
162
+ description: 'iMessage/SMS CLI for listing chats, history, and sending messages via Messages.app.',
163
+ source: 'openclaw-bundled',
164
+ category: 'communication',
165
+ },
166
+ {
167
+ name: 'wacli',
168
+ description: 'Send WhatsApp messages to other people or search/sync WhatsApp history via the wacli CLI (not for normal user chats).',
169
+ source: 'openclaw-bundled',
170
+ category: 'communication',
171
+ },
172
+ {
173
+ name: 'himalaya',
174
+ description: 'CLI to manage emails via IMAP/SMTP. Use `himalaya` to list, read, write, reply, forward, search, and organize emails from the terminal. Supports multiple accounts and message composition with MML.',
175
+ source: 'openclaw-bundled',
176
+ category: 'communication',
177
+ },
178
+ {
179
+ name: 'gog',
180
+ description: 'Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.',
181
+ source: 'openclaw-bundled',
182
+ category: 'communication',
183
+ },
184
+ // ── media ─────────────────────────────────────────────────────────────────
185
+ {
186
+ name: 'camsnap',
187
+ description: 'Capture frames or clips from RTSP/ONVIF cameras.',
188
+ source: 'openclaw-bundled',
189
+ category: 'media',
190
+ },
191
+ {
192
+ name: 'gifgrep',
193
+ description: 'Search GIF providers with CLI/TUI, download results, and extract stills/sheets.',
194
+ source: 'openclaw-bundled',
195
+ category: 'media',
196
+ },
197
+ {
198
+ name: 'video-frames',
199
+ description: 'Extract frames or short clips from videos using ffmpeg.',
200
+ source: 'openclaw-bundled',
201
+ category: 'media',
202
+ },
203
+ {
204
+ name: 'openai-whisper',
205
+ description: 'Local speech-to-text with the Whisper CLI (no API key).',
206
+ source: 'openclaw-bundled',
207
+ category: 'media',
208
+ },
209
+ {
210
+ name: 'openai-whisper-api',
211
+ description: 'Transcribe audio via OpenAI Audio Transcriptions API (Whisper).',
212
+ source: 'openclaw-bundled',
213
+ category: 'media',
214
+ },
215
+ {
216
+ name: 'sag',
217
+ description: 'ElevenLabs text-to-speech with mac-style say UX.',
218
+ source: 'openclaw-bundled',
219
+ category: 'media',
220
+ },
221
+ {
222
+ name: 'sherpa-onnx-tts',
223
+ description: 'Local text-to-speech via sherpa-onnx (offline, no cloud).',
224
+ source: 'openclaw-bundled',
225
+ category: 'media',
226
+ },
227
+ {
228
+ name: 'songsee',
229
+ description: 'Generate spectrograms and feature-panel visualizations from audio with the songsee CLI.',
230
+ source: 'openclaw-bundled',
231
+ category: 'media',
232
+ },
233
+ {
234
+ name: 'voice-call',
235
+ description: 'Start voice calls via the OpenClaw voice-call plugin.',
236
+ source: 'openclaw-bundled',
237
+ category: 'media',
238
+ },
239
+ {
240
+ name: 'peekaboo',
241
+ description: 'Capture and automate macOS UI with the Peekaboo CLI.',
242
+ source: 'openclaw-bundled',
243
+ category: 'media',
244
+ },
245
+ // ── music ─────────────────────────────────────────────────────────────────
246
+ {
247
+ name: 'spotify-player',
248
+ description: 'Terminal Spotify playback/search via spogo (preferred) or spotify_player.',
249
+ source: 'openclaw-bundled',
250
+ category: 'music',
251
+ },
252
+ {
253
+ name: 'sonoscli',
254
+ description: 'Control Sonos speakers (discover/status/play/volume/group).',
255
+ source: 'openclaw-bundled',
256
+ category: 'music',
257
+ },
258
+ {
259
+ name: 'blucli',
260
+ description: 'BluOS CLI (blu) for discovery, playback, grouping, and volume.',
261
+ source: 'openclaw-bundled',
262
+ category: 'music',
263
+ },
264
+ // ── smart-home ────────────────────────────────────────────────────────────
265
+ {
266
+ name: 'openhue',
267
+ description: 'Control Philips Hue lights and scenes via the OpenHue CLI.',
268
+ source: 'openclaw-bundled',
269
+ category: 'smart-home',
270
+ },
271
+ {
272
+ name: 'eightctl',
273
+ description: 'Control Eight Sleep pods (status, temperature, alarms, schedules).',
274
+ source: 'openclaw-bundled',
275
+ category: 'smart-home',
276
+ },
277
+ // ── ai ────────────────────────────────────────────────────────────────────
278
+ {
279
+ name: 'gemini',
280
+ description: 'Gemini CLI for one-shot Q&A, summaries, and generation.',
281
+ source: 'openclaw-bundled',
282
+ category: 'ai',
283
+ },
284
+ {
285
+ name: 'canvas',
286
+ description: 'Display HTML content on connected OpenClaw nodes (Mac app, iOS, Android). Great for displaying games, visualizations, and dashboards.',
287
+ source: 'openclaw-bundled',
288
+ category: 'ai',
289
+ },
290
+ // ── utilities ─────────────────────────────────────────────────────────────
291
+ {
292
+ name: 'blogwatcher',
293
+ description: 'Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.',
294
+ source: 'openclaw-bundled',
295
+ category: 'utilities',
296
+ },
297
+ {
298
+ name: 'goplaces',
299
+ description: 'Query Google Places API (New) via the goplaces CLI for text search, place details, resolve, and reviews. Use for human-friendly place lookup or JSON output for scripts.',
300
+ source: 'openclaw-bundled',
301
+ category: 'utilities',
302
+ },
303
+ {
304
+ name: 'healthcheck',
305
+ description: 'Host security hardening and risk-tolerance configuration for OpenClaw deployments. Use when a user asks for security audits, firewall/SSH/update hardening, risk posture, exposure review, or OpenClaw cron health.',
306
+ source: 'openclaw-bundled',
307
+ category: 'utilities',
308
+ },
309
+ {
310
+ name: 'model-usage',
311
+ description: 'Use CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost details.',
312
+ source: 'openclaw-bundled',
313
+ category: 'utilities',
314
+ },
315
+ {
316
+ name: 'ordercli',
317
+ description: 'Foodora-only CLI for checking past orders and active order status (Deliveroo WIP).',
318
+ source: 'openclaw-bundled',
319
+ category: 'utilities',
320
+ },
321
+ {
322
+ name: 'session-logs',
323
+ description: 'Search and analyze your own session logs (older/parent conversations) using jq.',
324
+ source: 'openclaw-bundled',
325
+ category: 'utilities',
326
+ },
327
+ {
328
+ name: 'weather',
329
+ description: 'Get current weather and forecasts via wttr.in or Open-Meteo. Use when: user asks about weather, temperature, or forecasts for any location. NOT for: historical weather data, severe weather alerts, or other weather APIs.',
330
+ source: 'openclaw-bundled',
331
+ category: 'utilities',
332
+ },
333
+ {
334
+ name: 'xurl',
335
+ description: 'A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with X/Twitter programmatically.',
336
+ source: 'openclaw-bundled',
337
+ category: 'utilities',
338
+ },
339
+
340
+ // ─── Managed Skills (~/.openclaw/skills/) ──────────────────────────────────
341
+ {
342
+ name: 'agent-nexus-2',
343
+ description: 'Multi-agent coordination and task delegation for complex workflows requiring parallel agent execution.',
344
+ source: 'managed',
345
+ category: 'development',
346
+ },
347
+ {
348
+ name: 'autoresearch',
349
+ description: 'Autonomous code quality improvement loop using keep-or-revert cycles. Optimizes a composite quality score derived from tests, lint, and type coverage.',
350
+ source: 'managed',
351
+ category: 'development',
352
+ },
353
+ {
354
+ name: 'business-strategy',
355
+ description: 'PMF validation, beachhead identification, activity ROI analysis, kill/invest decisions, and strategic metrics for the AI Agent Economy.',
356
+ source: 'managed',
357
+ category: 'productivity',
358
+ },
359
+ {
360
+ name: 'coding-discipline.skill',
361
+ description: 'Enforces strict TypeScript coding standards, test-first development, and zero-stub policies for production-grade agent code.',
362
+ source: 'managed',
363
+ category: 'development',
364
+ },
365
+ {
366
+ name: 'content-writer',
367
+ description: 'Use this skill everytime you are writing an article, social media post, email, etc.',
368
+ source: 'managed',
369
+ category: 'communication',
370
+ },
371
+ {
372
+ name: 'execution-validation.skill',
373
+ description: 'Multi-round automated validation pipeline for TypeScript/Solidity projects before publish or deploy.',
374
+ source: 'managed',
375
+ category: 'development',
376
+ },
377
+ {
378
+ name: 'humanize',
379
+ description: 'Transforms AI-generated writing into content that reads authentically human — passing AI detectors and resonating with real readers.',
380
+ source: 'managed',
381
+ category: 'communication',
382
+ },
383
+ {
384
+ name: 'polyclaw',
385
+ description: 'Trade on Polymarket via split + CLOB execution. Browse markets, track positions with P&L, discover hedges via LLM. Polygon/Web3.',
386
+ source: 'managed',
387
+ category: 'finance',
388
+ },
389
+ {
390
+ name: 'prospector',
391
+ description: 'Find leads, prospects, and contacts matching an Ideal Customer Profile. Searches companies via Exa and enriches contacts via Apollo, outputting to CSV and optionally syncing to Attio CRM.',
392
+ source: 'managed',
393
+ category: 'productivity',
394
+ },
395
+ {
396
+ name: 'rsi.skill',
397
+ description: 'RSI self-improvement cycles implementing measure → hypothesize → mutate → test → apply/discard → repeat for agent capability enhancement.',
398
+ source: 'managed',
399
+ category: 'development',
400
+ },
401
+ {
402
+ name: 'security',
403
+ description: 'Infrastructure threat detection, vulnerability management, and security audit workflows for the OpenClaw workspace.',
404
+ source: 'managed',
405
+ category: 'utilities',
406
+ },
407
+ {
408
+ name: 'strykr-prism',
409
+ description: 'Real-time financial data API for AI agents. Stocks, crypto, forex, ETFs. 120+ endpoints. Alternative to Alpha Vantage, CoinGecko. Works with Claude, Cursor.',
410
+ source: 'managed',
411
+ category: 'finance',
412
+ },
413
+ {
414
+ name: 'taskbridge',
415
+ description: 'Bridge tasks between agent sessions, preserving context and handoff state for long-running multi-session workflows.',
416
+ source: 'managed',
417
+ category: 'productivity',
418
+ },
419
+ {
420
+ name: 'validator-agent',
421
+ description: 'Multi-round automated validation pipeline for TypeScript/Solidity projects. Runs 8 rounds of checks before any publish or deploy: compile gate, lint, test suite, security audit, type coverage, docs, changelog, and final review.',
422
+ source: 'managed',
423
+ category: 'development',
424
+ },
425
+ {
426
+ name: 'webmcp-payments',
427
+ description: 'Handle HTTP 402 Payment Required responses via agentpay-mcp, enabling autonomous micropayment execution within configured spending limits.',
428
+ source: 'managed',
429
+ category: 'finance',
430
+ },
431
+ ];
432
+
433
+ // ─── Count ────────────────────────────────────────────────────────────────────
434
+
435
+ export const SKILLS_COUNT = SKILLS_CATALOG.length;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * ClawPowers Skills — Skill Executor
3
+ * Execute skills and track outcomes in procedural memory.
4
+ */
5
+
6
+ import type { ProceduralMemory } from '../memory/procedural.js';
7
+
8
+ export interface SkillExecutionContext {
9
+ readonly taskId: string;
10
+ readonly input: string;
11
+ readonly metadata?: Record<string, unknown>;
12
+ }
13
+
14
+ export interface SkillExecutionResult {
15
+ readonly success: boolean;
16
+ readonly output: string;
17
+ readonly durationMs: number;
18
+ readonly error?: string;
19
+ }
20
+
21
+ export class SkillExecutor {
22
+ constructor(
23
+ private readonly skillsDir: string,
24
+ private readonly memory: ProceduralMemory
25
+ ) {}
26
+
27
+ async execute(skillName: string, context: SkillExecutionContext): Promise<SkillExecutionResult> {
28
+ const start = Date.now();
29
+ try {
30
+ const result: SkillExecutionResult = {
31
+ success: true,
32
+ output: `Skill ${skillName} loaded from ${this.skillsDir}`,
33
+ durationMs: Date.now() - start,
34
+ };
35
+ await this.memory.update(skillName, {
36
+ succeeded: true,
37
+ durationMs: result.durationMs,
38
+ taskId: context.taskId,
39
+ });
40
+ return result;
41
+ } catch (err: unknown) {
42
+ const errorMessage = err instanceof Error ? err.message : String(err);
43
+ await this.memory.update(skillName, {
44
+ succeeded: false,
45
+ durationMs: Date.now() - start,
46
+ taskId: context.taskId,
47
+ });
48
+ return {
49
+ success: false,
50
+ output: '',
51
+ durationMs: Date.now() - start,
52
+ error: errorMessage,
53
+ };
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,3 @@
1
+ export { discoverSkills, loadSkillManifest, getActiveSkills, parseFrontmatter, listSkillsWithStatus } from './loader.js';
2
+ export { SkillExecutor } from './executor.js';
3
+ export type { SkillExecutionContext, SkillExecutionResult } from './executor.js';
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: itp
3
+ description: "Identical Twins Protocol — compressed agent-to-agent messaging for repeated operational language. Use when sending messages between agents."
4
+ metadata:
5
+ openclaw:
6
+ requires:
7
+ bins: [python3]
8
+ env: []
9
+ config: []
10
+ ---
11
+
12
+ # ITP — Identical Twins Protocol
13
+
14
+ Compressed agent-to-agent messaging protocol that uses a shared codebook of common patterns, operations, and agent shorthand.
15
+
16
+ Current measured performance is workload-dependent. The live v1 corpus benchmark shows **11.9% aggregate token reduction** across 25 messages, with delegation and status traffic compressing best. Separate swarm docs also include **modeled** prompt-cache economics layered on top of those live prompt sizes. Keep those two measurement types distinct.
17
+
18
+ ## Quick Start
19
+
20
+ ### 1. Start the ITP Server
21
+
22
+ The ITP server runs as a FastAPI service on port 8100:
23
+
24
+ ```bash
25
+ # Via LaunchAgent (recommended — auto-starts on boot)
26
+ launchctl load ~/Library/LaunchAgents/com.agenteconomy.itp-server.plist
27
+
28
+ # Or manually
29
+ cd /Users/billwilson/.openclaw/workspace/tools/itp
30
+ python3 -m uvicorn itp_server:app --host 127.0.0.1 --port 8100
31
+ ```
32
+
33
+ ### 2. Verify Health
34
+
35
+ ```bash
36
+ curl http://localhost:8100/health
37
+ # → {"status": "ok", "version": "1.0.0", ...}
38
+ ```
39
+
40
+ ## API Endpoints
41
+
42
+ ### Encode Message
43
+ `POST /tools/encode`
44
+ ```json
45
+ {
46
+ "message": "Please analyze the trading performance and provide a status update",
47
+ "source_agent": "max",
48
+ "target_agent": "trading-director"
49
+ }
50
+ ```
51
+ Returns: `{ "encoded": "ITP:...", "was_compressed": true, "savings_pct": 45.2, ... }`
52
+
53
+ ### Decode Message
54
+ `POST /tools/decode`
55
+ ```json
56
+ {
57
+ "message": "ITP:ANL+TRD/PERF→STS/UPD"
58
+ }
59
+ ```
60
+ Returns: `{ "decoded": "...", "was_itp": true, ... }`
61
+
62
+ ### Health Check
63
+ `GET /health`
64
+ Returns: `{ "status": "ok", ... }`
65
+
66
+ ### Statistics
67
+ `GET /tools/stats`
68
+ Returns compression analytics and savings metrics.
69
+
70
+ ### Codebook
71
+ `GET /tools/codebook`
72
+ Returns current codebook contents and stats.
73
+
74
+ ### History
75
+ `GET /tools/history?limit=20`
76
+ Returns recent ITP message history.
77
+
78
+ ## TypeScript Client
79
+
80
+ ```typescript
81
+ import { encode, decode, healthCheck } from 'clawpowers/itp';
82
+
83
+ // Encode a message (graceful fallback if server is down)
84
+ const result = await encode("Analyze trading performance");
85
+ // { encoded: "ITP:...", wasCompressed: true, savingsPct: 45.2 }
86
+
87
+ // Decode an ITP message
88
+ const decoded = await decode("ITP:ANL+TRD/PERF");
89
+ // { decoded: "Analyze trading performance", wasItp: true }
90
+
91
+ // Check server status
92
+ const alive = await healthCheck();
93
+ // true or false
94
+ ```
95
+
96
+ ## Swarm Integration
97
+
98
+ ITP integrates with the Parallel Swarm module to compress task descriptions before fan-out and decode results after collection:
99
+
100
+ ```typescript
101
+ import { encodeTaskDescription, decodeSwarmResult } from 'clawpowers/itp/swarm-bridge';
102
+
103
+ // Compress task before sending to sub-agents
104
+ const compressedTask = await encodeTaskDescription(task);
105
+
106
+ // Decode result from sub-agent
107
+ const decodedResult = await decodeSwarmResult(result);
108
+ ```
109
+
110
+ ## Graceful Degradation
111
+
112
+ All ITP functions fail gracefully — if the ITP server is unreachable, messages pass through unchanged with no errors thrown. This ensures ITP never blocks agent operations.