Install
openclaw skills install skill-dispatcherProactive skill router that prevents forgetting available skills. Triggers on any non-trivial task. Routes user intent to available skills via a decision tree, enhancer layer, and anti-forget gates. Use when you have multiple skills installed and want to ensure none are forgotten. First run: scan available_skills list, fill the routing table template, and activate.
openclaw skills install skill-dispatcherBefore this skill works, you MUST fill the routing table with YOUR skills:
<available_skills> in your system promptscripts/coverage_check.py <skill1> <skill2> ... — lists uncovered skills<!-- TODO --> markersTrigger keyword rules:
If user message contains an exact keyword match, skip Q1/Q2 and route directly:
| Exact phrase | Direct route |
|---|---|
| <!-- TODO: add 3-6 most common unambiguous triggers --> |
If NOT a direct hit → proceed to decision tree.
Q1: Your primary domain?
├─ <!-- TODO: add your most common task categories -->
├─ category_A / trigger_A → skill_A
├─ category_B / trigger_B → skill_B
├─ category_C / trigger_C → skill_C (chain if needed)
└─ ...
⚠️ CHAIN RULE: "→" = read 1st skill, execute, THEN read 2nd.
⚠️ NO chain for non-multi-step tasks.
Q2: Anything else?
→ Scan Full Routing Table below.
→ No match? Proceed normally.
Q3: Enhancer layer? ← auto-apply, not user-requested
After routing to primary skill/tool, check if output needs enhancement:
├─ 生成图/图表/UI/配色 → aesthetic, Color Palette Generator, data-viz-palette
├─ 生成大段文字/解释 → humanizer
├─ 上下文/文件膨胀 → token-optimizer
├─ 复杂多步任务 → agent-planner (先规划再执行)
├─ 被用户纠正/发现错误 → Self-Improving + Proactive Agent
├─ 设计skill/prompt → context-engineering, prompt-engineer
└─ 无增强需求 → skip
⚠️ 🔴 COMPLIANCE TAG REQUIRED on every user-visible output:
After routing, append ONE LINE: [enh: skill §specific-parameter]
Read the enhancer → extract concrete principle → encode it.
Example: [enh: aesthetic §card间距48px|DP步32px|蓝绿红三色语义]
Example: [enh: —] means no enhancer applied (internal ops only).
⚠️ If output involves drawio/mermaid/image_generate/code:
AND no [enh:] tag present → auto-flagged as violation.
⚠️ Generic words without numbers = same as not reading.
⚠️ Copying the same [enh:] tag across different tasks = flagged for review.
Q4: Background health? ← session-state triggers (every ~10 exchanges)
├─ Context usage >50% or >10 exchanges → token-optimizer
├─ Recent tool failures/timeouts → healthcheck
├─ Bulk file create/delete/reorg → lobster-workspace-guardian
└─ All clear → skip
💡 Check with: session_status (📊 session_status tool)
💡 Not every message — every ~10 exchanges or when things feel off.
These are your belt-and-suspenders. If the dispatcher's description didn't match and you're about to take one of these actions raw, this section catches it. If the dispatcher IS loaded, the decision tree already handled routing — skip this.
| You are about to... | STOP and check... |
|---|---|
| Write code / explain algorithm | Any code/algorithm skill you have |
Call web_search | Search/scraping skills (they have better extraction) |
Call web_fetch | Web content fetching skills |
| Read/write/clean memory | Memory management skills |
| Delete or reorganize files | Workspace janitor skills |
| Create or modify a skill | Skill creation skills |
| Do anything on GitHub | GitHub skills |
| Generating diagram/image/visual | 🔴 Aesthetic/design skills — read SKILL.md, do NOT skip |
| Writing long explanation/text | 🔴 Humanizer/text quality skills — read SKILL.md, do NOT skip |
| User corrected you / found mistake | 🔴 Self-improvement skills — read SKILL.md, do NOT skip |
These are NOT standalone skills. They overlay on top of a primary skill/tool. User doesn't need to ask for them — check automatically when output matches:
| Enhancer | Triggers when... | Priority |
|---|---|---|
| <!-- TODO: aesthetic skill --> | Generating image/diagram/visual → improve visual quality | ⭐⭐ |
| <!-- TODO: color palette skill --> | New diagram/chart/UI → pick color scheme | ⭐⭐ |
| <!-- TODO: humanizer skill --> | Writing long text/explanation → make it more natural | ⭐⭐ |
| <!-- TODO: token optimizer skill --> | Context growing / files bloated → trim | ⭐⭐ |
| <!-- TODO: planner skill --> | Complex multi-step task → plan before execute | ⭐⭐ |
| <!-- TODO: self-improvement skill --> | User corrects you / you find a mistake | ⭐⭐⭐ |
| Trigger | Skill | Freq |
|---|---|---|
| <!-- trigger keywords --> | <!-- skill-name --> | ⭐ |
| Trigger | Skill | Freq |
|---|---|---|
| <!-- trigger keywords --> | <!-- skill-name --> | ⭐ |
| Trigger | Skill | Freq |
|---|---|---|
| <!-- trigger keywords --> | <!-- skill-name --> | ⭐ |
| Trigger | Skill | Freq |
|---|---|---|
| <!-- trigger keywords --> | <!-- skill-name --> | ⭐ |
| Trigger | Skill | Freq |
|---|---|---|
| <!-- trigger keywords --> | <!-- skill-name --> | ⭐ |
| Trigger | Skill | Freq |
|---|---|---|
| <!-- trigger keywords --> | <!-- skill-name --> | ⭐ |
| Trigger | Skill | Freq |
|---|---|---|
| <!-- trigger keywords --> | <!-- skill-name --> | ⭐ |
| Trigger | Skill | Freq |
|---|---|---|
| <!-- trigger keywords --> | <!-- skill-name --> | ⭐ |
If NO routing table match but you SUSPECT a skill exists:
<available_skills> list in current context<available_skills> against names in the routing table + Direct Hits.
<available_skills> but NOT in this dispatcher → 🚨 uncovered skill detected → trigger New Skill Onboardingreferences/skill-capabilities.md for full capability detailsWhen a new skill is detected, follow the full 6-step protocol: → references/onboarding.md — Detection → Classify → Draft → 3-Round Review → Commit → Log
Every user-visible output that involves drawio/mermaid/code/image generation MUST carry an [enh:] tag. Format: [enh: skill §concrete-principle-applied]. No tag → violation. Generic words without specifics → same as not reading.
Set up periodic scanning for missing [enh:] tags on visual/code outputs. Repeat violations → upgrade enhancer priority or add to Direct Hits.
Writing memory on every single forget creates noise. Repeated patterns persist.