forked from Selig/openclaw-skill
6 custom skills (assign-task, dispatch-webhook, daily-briefing, task-capture, qmd-brain, tts-voice) with technical documentation. Compatible with Claude Code, OpenClaw, Codex CLI, and OpenCode.
100 lines
4.2 KiB
JSON
Executable File
100 lines
4.2 KiB
JSON
Executable File
{
|
|
"title": "Other platforms",
|
|
"content": "tail -f ~/.openclaw/gateway.log\ntypescript theme={null}\nimport { test } from \"vitest\";\nimport { createHookEvent } from \"./src/hooks/hooks.js\";\nimport myHandler from \"./hooks/my-hook/handler.js\";\n\ntest(\"my handler works\", async () => {\n const event = createHookEvent(\"command\", \"new\", \"test-session\", {\n foo: \"bar\",\n });\n\nawait myHandler(event);\n\n// Assert side effects\n});\n\nGateway startup\n ↓\nScan directories (workspace → managed → bundled)\n ↓\nParse HOOK.md files\n ↓\nCheck eligibility (bins, env, config, os)\n ↓\nLoad handlers from eligible hooks\n ↓\nRegister handlers for events\n\nUser sends /new\n ↓\nCommand validation\n ↓\nCreate hook event\n ↓\nTrigger hook (all registered handlers)\n ↓\nCommand processing continues\n ↓\nSession reset\nbash theme={null}\n ls -la ~/.openclaw/hooks/my-hook/\n # Should show: HOOK.md, handler.ts\n bash theme={null}\n cat ~/.openclaw/hooks/my-hook/HOOK.md\n # Should have YAML frontmatter with name and metadata\n bash theme={null}\n openclaw hooks list\n bash theme={null}\nopenclaw hooks info my-hook\nbash theme={null}\n openclaw hooks list\n # Should show ✓ next to enabled hooks\n bash theme={null}\n ./scripts/clawlog.sh | grep hook\n bash theme={null}",
|
|
"code_samples": [
|
|
{
|
|
"code": "### Test Hooks Directly\n\nTest your handlers in isolation:",
|
|
"language": "unknown"
|
|
},
|
|
{
|
|
"code": "## Architecture\n\n### Core Components\n\n* **`src/hooks/types.ts`**: Type definitions\n* **`src/hooks/workspace.ts`**: Directory scanning and loading\n* **`src/hooks/frontmatter.ts`**: HOOK.md metadata parsing\n* **`src/hooks/config.ts`**: Eligibility checking\n* **`src/hooks/hooks-status.ts`**: Status reporting\n* **`src/hooks/loader.ts`**: Dynamic module loader\n* **`src/cli/hooks-cli.ts`**: CLI commands\n* **`src/gateway/server-startup.ts`**: Loads hooks at gateway start\n* **`src/auto-reply/reply/commands-core.ts`**: Triggers command events\n\n### Discovery Flow",
|
|
"language": "unknown"
|
|
},
|
|
{
|
|
"code": "### Event Flow",
|
|
"language": "unknown"
|
|
},
|
|
{
|
|
"code": "## Troubleshooting\n\n### Hook Not Discovered\n\n1. Check directory structure:",
|
|
"language": "unknown"
|
|
},
|
|
{
|
|
"code": "2. Verify HOOK.md format:",
|
|
"language": "unknown"
|
|
},
|
|
{
|
|
"code": "3. List all discovered hooks:",
|
|
"language": "unknown"
|
|
},
|
|
{
|
|
"code": "### Hook Not Eligible\n\nCheck requirements:",
|
|
"language": "unknown"
|
|
},
|
|
{
|
|
"code": "Look for missing:\n\n* Binaries (check PATH)\n* Environment variables\n* Config values\n* OS compatibility\n\n### Hook Not Executing\n\n1. Verify hook is enabled:",
|
|
"language": "unknown"
|
|
},
|
|
{
|
|
"code": "2. Restart your gateway process so hooks reload.\n\n3. Check gateway logs for errors:",
|
|
"language": "unknown"
|
|
},
|
|
{
|
|
"code": "### Handler Errors\n\nCheck for TypeScript/import errors:",
|
|
"language": "unknown"
|
|
}
|
|
],
|
|
"headings": [
|
|
{
|
|
"level": "h3",
|
|
"text": "Test Hooks Directly",
|
|
"id": "test-hooks-directly"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "Architecture",
|
|
"id": "architecture"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Core Components",
|
|
"id": "core-components"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Discovery Flow",
|
|
"id": "discovery-flow"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Event Flow",
|
|
"id": "event-flow"
|
|
},
|
|
{
|
|
"level": "h2",
|
|
"text": "Troubleshooting",
|
|
"id": "troubleshooting"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Hook Not Discovered",
|
|
"id": "hook-not-discovered"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Hook Not Eligible",
|
|
"id": "hook-not-eligible"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Hook Not Executing",
|
|
"id": "hook-not-executing"
|
|
},
|
|
{
|
|
"level": "h3",
|
|
"text": "Handler Errors",
|
|
"id": "handler-errors"
|
|
}
|
|
],
|
|
"url": "llms-txt#other-platforms",
|
|
"links": []
|
|
} |