一键导入
memory-to-skill-crystallizer
Convert memory lessons into reusable skills automatically. Extract patterns from memory/YYYY-MM-DD.md and create skills/local/ entries.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Convert memory lessons into reusable skills automatically. Extract patterns from memory/YYYY-MM-DD.md and create skills/local/ entries.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Fix OpenClaw connectivity to foreign apps for users in China without resetting existing tasks or tokens. Use when WhatsApp/Telegram/Discord linking fails with WebSocket timeout or handshake errors (for example status=408 Request Time-out, Opening handshake has timed out), when direct outbound access is blocked but VPN/proxy is available, or when OpenClaw can reach local dashboard but channels remain "Not linked".
Coordinate between local skills and discovered ClawHub patterns. Integrates phoenix-loop, agent-audit-trail, HEARTBEAT, and autonomy skills with external best practices.
Publish skills to ClawHub via web dashboard only. No CLI login, no device flow. Reuse existing browser session.
When blocked, report exact blocker + attempts made + minimum user input needed. Enable fast unblock without back-and-forth.
Verify evidence URLs are real and accessible. Check that artifact links resolve to actual content, not placeholders.
Diagnose and fix gateway token mismatches causing 401 errors. Align tokens across config, service, and CLI surfaces.
| name | memory-to-skill-crystallizer |
| description | Convert memory lessons into reusable skills automatically. Extract patterns from memory/YYYY-MM-DD.md and create skills/local/ entries. |
Convert memory lessons into reusable skills.
Lessons learned:
# Scan recent memory for repeated patterns
$memoryFiles = Get-ChildItem "memory/" -Filter "*.md" | Sort-Object LastWriteTime -Descending | Select-Object -First 7
$patterns = @{}
foreach ($file in $memoryFiles) {
$content = Get-Content $file.FullName -Raw
if ($content -match "Failed|Blocker|Error") {
# Extract pattern
$matches = [regex]::Matches($content, "(Failed|Blocker|Error): (.+)")
foreach ($m in $matches) {
$key = $m.Groups[2].Value
$patterns[$key] = $patterns[$key] + 1
}
}
}
# Find repeated patterns (2+ occurrences)
$repeated = $patterns.GetEnumerator() | Where-Object { $_.Value -ge 2 }
foreach ($pattern in $repeated) {
$skillName = $pattern.Key -replace '[^a-z]', '-' -replace '-+', '-'
$skillPath = "skills/local/$skillName-recovery"
New-Item -ItemType Directory -Path $skillPath -Force | Out-Null
$skillContent = @"
---
name: $skillName-recovery
description: Auto-recovery for: $($pattern.Key)
---
# $($pattern.Key) Recovery
## Trigger
When $($pattern.Key) occurs
## Steps
1. Detect the error pattern
2. Execute recovery steps
3. Verify resolution
## Verification
- [ ] Error resolved
- [ ] Task can continue
"@
$skillContent | Out-File "$skillPath/SKILL.md" -Encoding UTF8
}
# Add to skills index if in bot-output
if (Test-Path "skills/local/") {
Write-Host "Created skills in skills/local/"
Get-ChildItem "skills/local/" -Directory | ForEach-Object {
Write-Host " - $($_.Name)"
}
}
| Criteria | Verification |
|---|---|
| Pattern detected | 2+ occurrences in memory |
| Skill file created | SKILL.md exists in skills/local/ |
| Trigger defined | ## Trigger section present |
| Steps documented | ## Steps section present |
Use when:
Crystallize lessons. Reuse forever.