clawpowers 2.2.5 → 2.2.7

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 (138) hide show
  1. package/CHANGELOG.md +186 -160
  2. package/COMPATIBILITY.md +48 -13
  3. package/KNOWN_LIMITATIONS.md +20 -19
  4. package/LICENSE +44 -44
  5. package/LICENSING.md +10 -10
  6. package/README.md +486 -462
  7. package/SECURITY.md +52 -52
  8. package/dist/index.d.ts +17 -5
  9. package/dist/index.js +187 -92
  10. package/dist/index.js.map +1 -1
  11. package/native/Cargo.lock +4927 -4927
  12. package/native/Cargo.toml +73 -73
  13. package/native/crates/canonical/Cargo.toml +24 -24
  14. package/native/crates/canonical/src/lib.rs +677 -673
  15. package/native/crates/compression/Cargo.toml +20 -20
  16. package/native/crates/compression/benches/compression_bench.rs +42 -42
  17. package/native/crates/compression/src/lib.rs +393 -393
  18. package/native/crates/evm-eth/Cargo.toml +13 -13
  19. package/native/crates/evm-eth/src/lib.rs +105 -105
  20. package/native/crates/fee/Cargo.toml +15 -15
  21. package/native/crates/fee/src/lib.rs +281 -281
  22. package/native/crates/index/Cargo.toml +16 -16
  23. package/native/crates/index/src/lib.rs +277 -277
  24. package/native/crates/policy/Cargo.toml +17 -17
  25. package/native/crates/policy/src/lib.rs +614 -614
  26. package/native/crates/security/Cargo.toml +22 -22
  27. package/native/crates/security/src/lib.rs +478 -478
  28. package/native/crates/tokens/Cargo.toml +13 -13
  29. package/native/crates/tokens/src/lib.rs +534 -534
  30. package/native/crates/verification/Cargo.toml +23 -23
  31. package/native/crates/verification/src/lib.rs +333 -333
  32. package/native/crates/wallet/Cargo.toml +20 -20
  33. package/native/crates/wallet/src/lib.rs +261 -261
  34. package/native/crates/x402/Cargo.toml +30 -30
  35. package/native/crates/x402/src/lib.rs +423 -423
  36. package/native/ffi/Cargo.toml +34 -34
  37. package/native/ffi/build.rs +4 -4
  38. package/native/ffi/src/lib.rs +352 -352
  39. package/native/ffi/tests/integration.rs +354 -354
  40. package/native/pyo3/Cargo.toml +26 -26
  41. package/native/pyo3/pyproject.toml +16 -16
  42. package/native/pyo3/src/lib.rs +407 -407
  43. package/native/pyo3/tests/test_smoke.py +180 -180
  44. package/native/wasm/Cargo.toml +47 -44
  45. package/native/wasm/pkg/.gitignore +6 -6
  46. package/native/wasm/pkg/clawpowers_wasm.d.ts +208 -208
  47. package/native/wasm/pkg/clawpowers_wasm.js +872 -872
  48. package/native/wasm/pkg/clawpowers_wasm_bg.wasm.d.ts +40 -40
  49. package/native/wasm/pkg/package.json +16 -16
  50. package/native/wasm/pkg-node/clawpowers_wasm.d.ts +143 -143
  51. package/native/wasm/pkg-node/clawpowers_wasm.js +798 -798
  52. package/native/wasm/pkg-node/clawpowers_wasm_bg.wasm.d.ts +40 -40
  53. package/native/wasm/pkg-node/package.json +12 -12
  54. package/native/wasm/src/lib.rs +433 -433
  55. package/package.json +13 -8
  56. package/scripts/build-wasm.mjs +59 -0
  57. package/scripts/generate_hermes_wrappers.py +211 -0
  58. package/scripts/hermes_wrapper_overrides.json +184 -0
  59. package/scripts/run-python-script.mjs +48 -0
  60. package/scripts/verify-consumer-install.mjs +109 -0
  61. package/scripts/verify-wasm-artifacts.mjs +26 -3
  62. package/scripts/verify_hermes_wrappers.py +154 -0
  63. package/skill.json +20 -0
  64. package/skills/1password/SKILL.md +34 -0
  65. package/skills/README.md +44 -0
  66. package/skills/agent-nexus-2/SKILL.md +34 -0
  67. package/skills/apple-notes/SKILL.md +34 -0
  68. package/skills/apple-reminders/SKILL.md +34 -0
  69. package/skills/autoresearch/SKILL.md +43 -0
  70. package/skills/bear-notes/SKILL.md +34 -0
  71. package/skills/blogwatcher/SKILL.md +34 -0
  72. package/skills/blucli/SKILL.md +34 -0
  73. package/skills/bluebubbles/SKILL.md +34 -0
  74. package/skills/business-strategy/SKILL.md +41 -0
  75. package/skills/camsnap/SKILL.md +34 -0
  76. package/skills/canvas/SKILL.md +34 -0
  77. package/skills/clawhub/SKILL.md +34 -0
  78. package/skills/coding-agent/SKILL.md +34 -0
  79. package/skills/coding-discipline.skill/SKILL.md +34 -0
  80. package/skills/content-writer/SKILL.md +41 -0
  81. package/skills/discord/SKILL.md +34 -0
  82. package/skills/eightctl/SKILL.md +34 -0
  83. package/skills/execution-validation.skill/SKILL.md +34 -0
  84. package/skills/gemini/SKILL.md +34 -0
  85. package/skills/gh-issues/SKILL.md +34 -0
  86. package/skills/gifgrep/SKILL.md +34 -0
  87. package/skills/github/SKILL.md +41 -0
  88. package/skills/gog/SKILL.md +34 -0
  89. package/skills/goplaces/SKILL.md +34 -0
  90. package/skills/healthcheck/SKILL.md +34 -0
  91. package/skills/himalaya/SKILL.md +34 -0
  92. package/skills/humanize/SKILL.md +41 -0
  93. package/skills/imsg/SKILL.md +34 -0
  94. package/skills/itp/SKILL.md +112 -0
  95. package/skills/mcporter/SKILL.md +34 -0
  96. package/skills/model-usage/SKILL.md +34 -0
  97. package/skills/nano-pdf/SKILL.md +34 -0
  98. package/skills/node-connect/SKILL.md +34 -0
  99. package/skills/notion/SKILL.md +34 -0
  100. package/skills/obsidian/SKILL.md +34 -0
  101. package/skills/openai-whisper/SKILL.md +34 -0
  102. package/skills/openai-whisper-api/SKILL.md +34 -0
  103. package/skills/openhue/SKILL.md +34 -0
  104. package/skills/oracle/SKILL.md +34 -0
  105. package/skills/ordercli/SKILL.md +34 -0
  106. package/skills/peekaboo/SKILL.md +34 -0
  107. package/skills/polyclaw/SKILL.md +34 -0
  108. package/skills/prospector/SKILL.md +41 -0
  109. package/skills/rsi.skill/SKILL.md +34 -0
  110. package/skills/sag/SKILL.md +34 -0
  111. package/skills/security/SKILL.md +41 -0
  112. package/skills/session-logs/SKILL.md +34 -0
  113. package/skills/sherpa-onnx-tts/SKILL.md +34 -0
  114. package/skills/skill-creator/SKILL.md +34 -0
  115. package/skills/slack/SKILL.md +34 -0
  116. package/skills/songsee/SKILL.md +34 -0
  117. package/skills/sonoscli/SKILL.md +34 -0
  118. package/skills/spotify-player/SKILL.md +34 -0
  119. package/skills/strykr-prism/SKILL.md +41 -0
  120. package/skills/summarize/SKILL.md +34 -0
  121. package/skills/taskbridge/SKILL.md +34 -0
  122. package/skills/things-mac/SKILL.md +34 -0
  123. package/skills/tmux/SKILL.md +34 -0
  124. package/skills/trello/SKILL.md +34 -0
  125. package/skills/validator-agent/SKILL.md +41 -0
  126. package/skills/video-frames/SKILL.md +34 -0
  127. package/skills/voice-call/SKILL.md +34 -0
  128. package/skills/wacli/SKILL.md +34 -0
  129. package/skills/weather/SKILL.md +34 -0
  130. package/skills/webmcp-payments/SKILL.md +41 -0
  131. package/skills/xurl/SKILL.md +34 -0
  132. package/src/skills/catalog.ts +435 -435
  133. package/src/skills/executor.ts +56 -56
  134. package/src/skills/index.ts +3 -3
  135. package/src/skills/itp/SKILL.md +112 -112
  136. package/src/skills/loader.ts +262 -193
  137. package/native/ffi/index.node +0 -0
  138. package/native/wasm/pkg-node/.gitignore +0 -6
@@ -5,13 +5,36 @@
5
5
  * npm pack --dry-run --json interleaves prepack build output (from tsup) on stdout
6
6
  * before the JSON array. We find the LAST '[' that starts a valid JSON array.
7
7
  */
8
- import { spawnSync } from 'child_process';
8
+ import { spawnSync } from 'node:child_process';
9
+ import { existsSync } from 'node:fs';
10
+ import { join } from 'node:path';
9
11
 
10
- const result = spawnSync('npm', ['pack', '--dry-run', '--json'], {
12
+ function npmCliPath() {
13
+ if (process.env.npm_execpath) return process.env.npm_execpath;
14
+ const appData = process.env.APPDATA;
15
+ if (appData) {
16
+ const candidate = join(appData, 'npm', 'node_modules', 'npm', 'bin', 'npm-cli.js');
17
+ if (existsSync(candidate)) return candidate;
18
+ }
19
+ return null;
20
+ }
21
+
22
+ const cliPath = npmCliPath();
23
+ const npmCommand = cliPath ? process.execPath : (process.platform === 'win32' ? 'npm.cmd' : 'npm');
24
+ const npmArgs = cliPath
25
+ ? [cliPath, 'pack', '--dry-run', '--json']
26
+ : ['pack', '--dry-run', '--json'];
27
+ const result = spawnSync(npmCommand, npmArgs, {
11
28
  encoding: 'utf8',
12
29
  stdio: ['ignore', 'pipe', 'inherit'], // let prepack stderr go to terminal, capture stdout
30
+ maxBuffer: 64 * 1024 * 1024,
31
+ shell: !cliPath && process.platform === 'win32',
13
32
  });
14
33
 
34
+ if (result.error) {
35
+ console.error(result.error.stack ?? result.error);
36
+ }
37
+
15
38
  const stdout = result.stdout ?? '';
16
39
 
17
40
  // Find the last '[' in stdout -- npm pack JSON array always comes after prepack output
@@ -32,7 +55,7 @@ if (!pack) {
32
55
  process.exit(1);
33
56
  }
34
57
 
35
- const files = (pack[0]?.files ?? []).map(f => f.path);
58
+ const files = (pack[0]?.files ?? []).map(f => String(f.path).replace(/^package\//, ''));
36
59
 
37
60
  const required = [
38
61
  'native/wasm/pkg-node/clawpowers_wasm.js',
@@ -0,0 +1,154 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+ import json
5
+ import os
6
+ import shutil
7
+ import subprocess
8
+ import sys
9
+ import tempfile
10
+ import time
11
+ from pathlib import Path
12
+
13
+ DEFAULT_HERMES_REPO = 'https://github.com/NousResearch/hermes-agent.git'
14
+ DEFAULT_HERMES_REF = 'main'
15
+ DEFAULT_SAMPLES = [
16
+ 'itp',
17
+ 'github',
18
+ 'content-writer',
19
+ 'webmcp-payments',
20
+ 'prospector',
21
+ 'security',
22
+ 'business-strategy',
23
+ ]
24
+
25
+
26
+ def parse_args() -> argparse.Namespace:
27
+ parser = argparse.ArgumentParser(description='Verify Hermes-loadable skill wrappers in this repo.')
28
+ parser.add_argument(
29
+ '--repo',
30
+ default=str(Path.cwd()),
31
+ help='Path to the ClawPowers-Skills checkout. Defaults to the current working directory.',
32
+ )
33
+ parser.add_argument(
34
+ '--hermes-agent',
35
+ default=os.environ.get('HERMES_AGENT_CHECKOUT', ''),
36
+ help=(
37
+ 'Path to a Hermes agent checkout. Can also be set with HERMES_AGENT_CHECKOUT. '
38
+ 'When omitted, the verifier clones NousResearch/hermes-agent at --hermes-ref into a temp directory.'
39
+ ),
40
+ )
41
+ parser.add_argument(
42
+ '--hermes-repo',
43
+ default=os.environ.get('HERMES_AGENT_REPO', DEFAULT_HERMES_REPO),
44
+ help='Git URL used when --hermes-agent/HERMES_AGENT_CHECKOUT is not provided.',
45
+ )
46
+ parser.add_argument(
47
+ '--hermes-ref',
48
+ default=os.environ.get('HERMES_AGENT_REF', DEFAULT_HERMES_REF),
49
+ help='Hermes git ref used for the temporary checkout when --hermes-agent is omitted.',
50
+ )
51
+ parser.add_argument('--sample', action='append', dest='samples', default=[])
52
+ return parser.parse_args()
53
+
54
+
55
+ def _run(cmd: list[str], cwd: Path | None = None) -> None:
56
+ subprocess.run(cmd, cwd=str(cwd) if cwd else None, check=True)
57
+
58
+
59
+ def resolve_hermes_agent(args: argparse.Namespace, tmp_root: Path) -> tuple[Path, str]:
60
+ if args.hermes_agent:
61
+ hermes_agent = Path(args.hermes_agent).expanduser().resolve()
62
+ source = f'local:{hermes_agent}'
63
+ else:
64
+ hermes_agent = tmp_root / 'hermes-agent'
65
+ clone_cmd = [
66
+ 'git',
67
+ 'clone',
68
+ '--depth',
69
+ '1',
70
+ '--branch',
71
+ args.hermes_ref,
72
+ args.hermes_repo,
73
+ str(hermes_agent),
74
+ ]
75
+ try:
76
+ _run(clone_cmd)
77
+ except subprocess.CalledProcessError:
78
+ _run(['git', 'clone', '--depth', '1', args.hermes_repo, str(hermes_agent)])
79
+ _run(['git', 'fetch', '--depth', '1', 'origin', args.hermes_ref], cwd=hermes_agent)
80
+ _run(['git', 'checkout', 'FETCH_HEAD'], cwd=hermes_agent)
81
+ source = f'git:{args.hermes_repo}@{args.hermes_ref}'
82
+
83
+ if not hermes_agent.exists():
84
+ raise SystemExit(f'Missing Hermes agent checkout: {hermes_agent}')
85
+
86
+ tools_module = hermes_agent / 'tools' / 'skills_tool.py'
87
+ if not tools_module.exists():
88
+ raise SystemExit(f'Missing Hermes skills tool module: {tools_module}')
89
+
90
+ return hermes_agent, source
91
+
92
+
93
+ def main() -> int:
94
+ args = parse_args()
95
+ repo = Path(args.repo).expanduser().resolve()
96
+ skills_src = repo / 'skills'
97
+
98
+ if not skills_src.exists():
99
+ raise SystemExit(
100
+ f'Missing skills directory: {skills_src}. Run this from the ClawPowers-Skills repo root or pass --repo.'
101
+ )
102
+
103
+ started = time.perf_counter()
104
+ with tempfile.TemporaryDirectory(prefix='hermes-compat-') as compat_tmpdir:
105
+ compat_tmp = Path(compat_tmpdir)
106
+ hermes_agent, hermes_source = resolve_hermes_agent(args, compat_tmp)
107
+ expected = sorted(path.name for path in skills_src.iterdir() if path.is_dir())
108
+
109
+ with tempfile.TemporaryDirectory(prefix='hermes-skill-verify-') as hermes_home_tmpdir:
110
+ tmp_home = Path(hermes_home_tmpdir)
111
+ shutil.copytree(skills_src, tmp_home / 'skills')
112
+ os.environ['HERMES_HOME'] = str(tmp_home)
113
+ sys.path.insert(0, str(hermes_agent))
114
+
115
+ from tools.skills_tool import skills_list, skill_view, check_skills_requirements # type: ignore
116
+
117
+ listing = json.loads(skills_list())
118
+ if not listing.get('success'):
119
+ raise SystemExit(f'skills_list failed: {listing}')
120
+
121
+ discovered = sorted(skill['name'] for skill in listing['skills'])
122
+ if discovered != expected:
123
+ missing = sorted(set(expected) - set(discovered))
124
+ extra = sorted(set(discovered) - set(expected))
125
+ raise SystemExit(
126
+ f'Skill discovery mismatch. Missing={missing} Extra={extra}'
127
+ )
128
+
129
+ samples = args.samples or DEFAULT_SAMPLES
130
+ sample_results = []
131
+ for name in samples:
132
+ viewed = json.loads(skill_view(name))
133
+ if not viewed.get('success'):
134
+ raise SystemExit(f'skill_view failed for {name}: {viewed}')
135
+ sample_results.append(name)
136
+
137
+ requirements_ok = check_skills_requirements()
138
+ duration_ms = round((time.perf_counter() - started) * 1000, 1)
139
+
140
+ result = {
141
+ 'repo': str(repo),
142
+ 'hermes_source': hermes_source,
143
+ 'hermes_agent': str(hermes_agent),
144
+ 'count': len(discovered),
145
+ 'samples_checked': sample_results,
146
+ 'requirements_ok': requirements_ok,
147
+ 'duration_ms': duration_ms,
148
+ }
149
+ print(json.dumps(result, indent=2))
150
+ return 0 if requirements_ok else 1
151
+
152
+
153
+ if __name__ == '__main__':
154
+ raise SystemExit(main())
package/skill.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "clawpowers",
3
+ "version": "2.2.7",
4
+ "description": "Capability library for AI agents: payments, memory, RSI, wallet, swarm, and ITP primitives.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "https://github.com/up2itnow0822/ClawPowers-Skills"
8
+ },
9
+ "homepage": "https://clawpowers.ai",
10
+ "license": "BSL-1.1",
11
+ "packageManager": "npm",
12
+ "entrypoints": {
13
+ "library": "dist/index.js",
14
+ "types": "dist/index.d.ts"
15
+ },
16
+ "notes": [
17
+ "ClawPowers is a capability library, not a standalone OpenClaw wrapper.",
18
+ "For the stock OpenClaw wrapper runtime, use the clawpowers-agent package."
19
+ ]
20
+ }
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: 1password
3
+ 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."
4
+ metadata:
5
+ hermes:
6
+ tags: [productivity, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # 1password
12
+
13
+ This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `1password`.
14
+
15
+ ## Purpose
16
+
17
+ 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.
18
+
19
+ ## When to use
20
+
21
+ - use this skill when the task matches the capability described above
22
+ ## Source of truth
23
+
24
+ - Catalog source: `src/skills/catalog.ts`
25
+ - Catalog entry source class: `openclaw-bundled`
26
+ - Category: `productivity`
27
+
28
+ ## Notes
29
+
30
+ - This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
31
+ - It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
32
+ ## Compatibility boundary
33
+
34
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
@@ -0,0 +1,44 @@
1
+ # ClawPowers skills for Hermes
2
+
3
+ This directory is the **Hermes-supported surface** for this branch.
4
+
5
+ Only skills placed here are in scope for the branch's Hermes compatibility claim.
6
+
7
+ ## Current exported skills
8
+
9
+ - Total exported skills: 67
10
+ - Hand-authored validated wedge: `itp`
11
+ - Catalog-derived wrappers: 66
12
+ - Richer generated wrappers with override guidance: 10
13
+
14
+ ## Install shape
15
+
16
+ Hermes expects skills like:
17
+
18
+ ```text
19
+ ~/.hermes/skills/<skill-name>/SKILL.md
20
+ ```
21
+
22
+ Example:
23
+
24
+ ```bash
25
+ mkdir -p ~/.hermes/skills/itp
26
+ cp skills/itp/SKILL.md ~/.hermes/skills/itp/SKILL.md
27
+ ```
28
+
29
+ ## Fast verification
30
+
31
+ ```bash
32
+ python3 scripts/verify_hermes_wrappers.py
33
+ ```
34
+
35
+ Then validate with Hermes' own skill tooling.
36
+
37
+ ## Important boundary
38
+
39
+ This branch now exports the full ClawPowers catalog as Hermes-loadable skill bundles, but that does **not** automatically mean every broader `clawpowers` runtime/library module is a native Hermes package surface.
40
+
41
+ This branch separates:
42
+
43
+ - **Hermes-compatible skill bundles** under `skills/`
44
+ - **non-Hermes-native library/runtime surfaces** elsewhere in the repo
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: agent-nexus-2
3
+ description: "Multi-agent coordination and task delegation for complex workflows requiring parallel agent execution."
4
+ metadata:
5
+ hermes:
6
+ tags: [development, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # agent-nexus-2
12
+
13
+ This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `agent-nexus-2`.
14
+
15
+ ## Purpose
16
+
17
+ Multi-agent coordination and task delegation for complex workflows requiring parallel agent execution.
18
+
19
+ ## When to use
20
+
21
+ - use this skill when the task matches the capability described above
22
+ ## Source of truth
23
+
24
+ - Catalog source: `src/skills/catalog.ts`
25
+ - Catalog entry source class: `managed`
26
+ - Category: `development`
27
+
28
+ ## Notes
29
+
30
+ - This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
31
+ - It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
32
+ ## Compatibility boundary
33
+
34
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: apple-notes
3
+ 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."
4
+ metadata:
5
+ hermes:
6
+ tags: [productivity, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # apple-notes
12
+
13
+ This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `apple-notes`.
14
+
15
+ ## Purpose
16
+
17
+ 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.
18
+
19
+ ## When to use
20
+
21
+ - use this skill when the task matches the capability described above
22
+ ## Source of truth
23
+
24
+ - Catalog source: `src/skills/catalog.ts`
25
+ - Catalog entry source class: `openclaw-bundled`
26
+ - Category: `productivity`
27
+
28
+ ## Notes
29
+
30
+ - This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
31
+ - It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
32
+ ## Compatibility boundary
33
+
34
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: apple-reminders
3
+ description: "Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output."
4
+ metadata:
5
+ hermes:
6
+ tags: [productivity, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # apple-reminders
12
+
13
+ This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `apple-reminders`.
14
+
15
+ ## Purpose
16
+
17
+ Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
18
+
19
+ ## When to use
20
+
21
+ - use this skill when the task matches the capability described above
22
+ ## Source of truth
23
+
24
+ - Catalog source: `src/skills/catalog.ts`
25
+ - Catalog entry source class: `openclaw-bundled`
26
+ - Category: `productivity`
27
+
28
+ ## Notes
29
+
30
+ - This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
31
+ - It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
32
+ ## Compatibility boundary
33
+
34
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: autoresearch
3
+ description: "Autonomous code quality improvement loop using keep-or-revert cycles. Optimizes a composite quality score derived from tests, lint, and type coverage."
4
+ metadata:
5
+ hermes:
6
+ tags: [development, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # Autoresearch — Autonomous Code Quality & RSI Loop
12
+
13
+ Autonomous code quality and harness-improvement loop for audits, baselines, and keep-or-revert mutation experiments.
14
+
15
+ ## Purpose
16
+
17
+ Autonomous code quality improvement loop using keep-or-revert cycles. Optimizes a composite quality score derived from tests, lint, and type coverage.
18
+
19
+ ## When to use
20
+
21
+ - when you need a code audit or quality scan
22
+ - when you want a baseline before making changes
23
+ - when running a small keep-or-revert improvement loop
24
+ - when evaluating prompt or harness mutations
25
+ ## Quickstart
26
+
27
+ - python3 tools/autoresearch-mlx/autoresearch_agent.py audit <path>
28
+ - python3 tools/autoresearch-mlx/autoresearch_agent.py baseline <path>
29
+ - python3 tools/autoresearch-mlx/autoresearch_agent.py scan <path>
30
+ ## Source of truth
31
+
32
+ - Catalog source: `src/skills/catalog.ts`
33
+ - Catalog entry source class: `managed`
34
+ - Category: `development`
35
+
36
+ ## Notes
37
+
38
+ - Use one mutation per experiment and keep it reversible.
39
+ - If quality regresses, revert immediately.
40
+ - This wrapper summarizes the real workspace skill without claiming the full local toolchain ships inside this repo.
41
+ ## Compatibility boundary
42
+
43
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: bear-notes
3
+ description: "Create, search, and manage Bear notes via grizzly CLI."
4
+ metadata:
5
+ hermes:
6
+ tags: [productivity, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # bear-notes
12
+
13
+ This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `bear-notes`.
14
+
15
+ ## Purpose
16
+
17
+ Create, search, and manage Bear notes via grizzly CLI.
18
+
19
+ ## When to use
20
+
21
+ - use this skill when the task matches the capability described above
22
+ ## Source of truth
23
+
24
+ - Catalog source: `src/skills/catalog.ts`
25
+ - Catalog entry source class: `openclaw-bundled`
26
+ - Category: `productivity`
27
+
28
+ ## Notes
29
+
30
+ - This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
31
+ - It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
32
+ ## Compatibility boundary
33
+
34
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: blogwatcher
3
+ description: "Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI."
4
+ metadata:
5
+ hermes:
6
+ tags: [utilities, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # blogwatcher
12
+
13
+ This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `blogwatcher`.
14
+
15
+ ## Purpose
16
+
17
+ Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
18
+
19
+ ## When to use
20
+
21
+ - use this skill when the task matches the capability described above
22
+ ## Source of truth
23
+
24
+ - Catalog source: `src/skills/catalog.ts`
25
+ - Catalog entry source class: `openclaw-bundled`
26
+ - Category: `utilities`
27
+
28
+ ## Notes
29
+
30
+ - This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
31
+ - It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
32
+ ## Compatibility boundary
33
+
34
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: blucli
3
+ description: "BluOS CLI (blu) for discovery, playback, grouping, and volume."
4
+ metadata:
5
+ hermes:
6
+ tags: [music, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # blucli
12
+
13
+ This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `blucli`.
14
+
15
+ ## Purpose
16
+
17
+ BluOS CLI (blu) for discovery, playback, grouping, and volume.
18
+
19
+ ## When to use
20
+
21
+ - use this skill when the task matches the capability described above
22
+ ## Source of truth
23
+
24
+ - Catalog source: `src/skills/catalog.ts`
25
+ - Catalog entry source class: `openclaw-bundled`
26
+ - Category: `music`
27
+
28
+ ## Notes
29
+
30
+ - This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
31
+ - It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
32
+ ## Compatibility boundary
33
+
34
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: bluebubbles
3
+ 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."
4
+ metadata:
5
+ hermes:
6
+ tags: [communication, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # bluebubbles
12
+
13
+ This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `bluebubbles`.
14
+
15
+ ## Purpose
16
+
17
+ Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration). Calls go through the generic message tool with channel=bluebubbles.
18
+
19
+ ## When to use
20
+
21
+ - use this skill when the task matches the capability described above
22
+ ## Source of truth
23
+
24
+ - Catalog source: `src/skills/catalog.ts`
25
+ - Catalog entry source class: `openclaw-bundled`
26
+ - Category: `communication`
27
+
28
+ ## Notes
29
+
30
+ - This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
31
+ - It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
32
+ ## Compatibility boundary
33
+
34
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: business-strategy
3
+ description: "PMF validation, beachhead identification, activity ROI analysis, kill/invest decisions, and strategic metrics for the AI Agent Economy."
4
+ metadata:
5
+ hermes:
6
+ tags: [productivity, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # Business Strategy
12
+
13
+ Strategy wrapper for PMF validation, beachhead selection, ROI calls, and kill-or-invest decisions for the AI Agent Economy.
14
+
15
+ ## Purpose
16
+
17
+ PMF validation, beachhead identification, activity ROI analysis, kill/invest decisions, and strategic metrics for the AI Agent Economy.
18
+
19
+ ## When to use
20
+
21
+ - when deciding what to invest in or cut
22
+ - when evaluating PMF, beachheads, or strategic focus
23
+ - when comparing activity ROI or prioritizing execution lanes
24
+ ## Quickstart
25
+
26
+ - define the decision and success metric first
27
+ - compare options using expected ROI and strategic fit
28
+ - end with a clear continue, kill, or reallocate recommendation
29
+ ## Source of truth
30
+
31
+ - Catalog source: `src/skills/catalog.ts`
32
+ - Catalog entry source class: `managed`
33
+ - Category: `productivity`
34
+
35
+ ## Notes
36
+
37
+ - The catalog frames this as a decision-making and prioritization surface, not a generic brainstorming tool.
38
+ - This wrapper exposes the Hermes-loadable skill surface only and does not replace deeper strategy artifacts elsewhere in the workspace.
39
+ ## Compatibility boundary
40
+
41
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: camsnap
3
+ description: "Capture frames or clips from RTSP/ONVIF cameras."
4
+ metadata:
5
+ hermes:
6
+ tags: [media, clawpowers-catalog, hermes-compatible]
7
+ ---
8
+
9
+ <!-- generated-by: scripts/generate_hermes_wrappers.py -->
10
+
11
+ # camsnap
12
+
13
+ This Hermes-compatible skill wrapper exports the ClawPowers catalog entry for `camsnap`.
14
+
15
+ ## Purpose
16
+
17
+ Capture frames or clips from RTSP/ONVIF cameras.
18
+
19
+ ## When to use
20
+
21
+ - use this skill when the task matches the capability described above
22
+ ## Source of truth
23
+
24
+ - Catalog source: `src/skills/catalog.ts`
25
+ - Catalog entry source class: `openclaw-bundled`
26
+ - Category: `media`
27
+
28
+ ## Notes
29
+
30
+ - This wrapper makes the skill discoverable and loadable by Hermes as a standard `SKILL.md` bundle.
31
+ - It does not, by itself, claim that every underlying runtime, CLI, API integration, or library dependency behind the broader ClawPowers ecosystem is fully configured in Hermes.
32
+ ## Compatibility boundary
33
+
34
+ This file is part of the Hermes-compatible top-level `skills/` surface for this branch. It should be read as a discoverable skill bundle, not as a blanket claim that the wider `clawpowers` library/runtime surface is fully configured inside Hermes.