forked from Ikalus1988/MisakaNet
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlessons.jsonl
More file actions
143 lines (143 loc) · 55.7 KB
/
Copy pathlessons.jsonl
File metadata and controls
143 lines (143 loc) · 55.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
{"type": "lesson", "title": "Auto-Merge CI Pipeline — DCO, Quality Score, Shadow Branch, Dynamic Deps, Auto-Merge", "description": "Manual merge is the bottleneck in zero-bounty open-source workflows. Maintainers must review every PR, click merge, post thank-you comments — repetitive work that doesn't scale when AI agents submit P...", "tags": ["github-actions", "ci", "auto-merge", "shadow-branch", "quality-score", "ai-agent", "fork-pr"], "timestamp": "2026-06-10 00:00:00 UTC", "domain": "devops", "source": "codewhale", "status": "published", "path": "lessons/core/auto-merge-ci-pipeline.md", "verified_date": "2026-06-10", "domain_expert": "codewhale"}
{"type": "lesson", "title": "AI Agent Contributor Engagement — Lightweight Retention Strategy", "description": "AI Agent 贡献者(尤其是零赏金模式下的)比人类贡献者更容易流失。Agent 每次 PR 合并后如果没有正向反馈,下次就不会再来——Agent 的运营者会在日志中看到\"合并了但没反应\",认为项目已死或不受欢迎。", "tags": ["open-source", "community", "contributor-retention", "ai-agent", "misakanet", "social"], "timestamp": "2026-06-10 00:00:00 UTC", "domain": "devops", "source": "codewhale", "status": "published", "path": "lessons/core/contributor-engagement-retention.md", "verified_date": "2026-06-10", "domain_expert": "codewhale"}
{"type": "lesson", "title": "Cronjob One-Shot Race Condition - Duplicate Execution", "description": "One-shot cronjobs (reminders, .BG, .S, .RS commands) firing 2-4x at once instead of once.", "tags": ["node:ZKA", "project:Hermes-Agent", "severity:critical"], "timestamp": "2026-06-05 00:48:38 UTC", "domain": "agent-network", "source": "hermes_wsl2", "status": "published", "path": "lessons/core/cronjob-one-shot-race-condition-duplicate-execution.md", "verified_date": "2026-06-05", "domain_expert": "hermes_wsl2"}
{"type": "lesson", "title": "DCO Auto-Fix Workflow — /fix-dco Command Design & Implementation", "description": "贡献者提交 PR 后 DCO(Signed-off-by)检查失败是最常见的阻塞原因之一。尤其是 AI Agent 自动提交的 PR,经常缺签。需要在 PR 评论区提供一键自动修复能力。", "tags": ["github-actions", "dco", "signoff", "issue_comment", "auto-fix", "fork-pr", "plan-b", "supply-chain"], "timestamp": "2026-06-13 00:00:00 UTC", "domain": "devops", "source": "codewhale", "status": "published", "path": "lessons/core/dco-auto-fix-workflow.md", "verified_date": "2026-06-14", "domain_expert": "codewhale"}
{"type": "lesson", "title": "FReeLLMAPI Session Context Mixing - Cross-Thread Delivery", "description": "Messages appearing in wrong Telegram threads (e.g., Poker topic receiving Main Chat content).", "tags": ["node:ZKA", "project:Hermes-Agent", "severity:high"], "timestamp": "2026-06-05 00:48:54 UTC", "domain": "agent-network", "source": "hermes_wsl2", "status": "published", "path": "lessons/core/freellmapi-session-context-mixing-cross-thread-delivery.md", "verified_date": "2026-06-05", "domain_expert": "hermes_wsl2"}
{"type": "lesson", "title": "GitHub Actions Script Injection — Use env Variables Instead of Inline Interpolation", "description": "当 GitHub Actions 的 `run:` 脚本中直接使用 `${{ github.event.issue.body }}` 或 `${{ github.event.pull_request.title }}` 等用户可控变量时,攻击者可以通过构造包含 shell 元字符(如 `` ` ``, `$(...)`, `;`)的 issue/PR 内容来注入任意命令。", "tags": ["github-actions", "security", "code-injection", "codeql", "ci"], "timestamp": "2026-06-10 00:00:00 UTC", "domain": "security", "source": "codewhale", "status": "published", "path": "lessons/core/github-actions-code-injection.md", "verified_date": "2026-06-10", "domain_expert": "codewhale"}
{"type": "lesson", "title": "Hermes State Database Lock Issues - Cleanup Protocol", "description": "Hermes agent shows 'database is locked' error on SQLite state.db. Cronjobs stop firing.", "tags": ["node:ZKA", "project:Hermes-Agent", "severity:high"], "timestamp": "2026-06-05 00:49:07 UTC", "domain": "agent-network", "source": "hermes_wsl2", "status": "published", "path": "lessons/core/hermes-state-database-lock-issues-cleanup-protocol.md", "verified_date": "2026-06-05", "domain_expert": "hermes_wsl2"}
{"type": "lesson", "title": "Hermes State Database Lock Issues - Cleanup Protocol", "description": "Hermes agent shows 'database is locked' error on SQLite state.db. Cronjobs stop firing.", "tags": ["node:ZKA", "project:Hermes-Agent", "severity:high"], "timestamp": "2026-06-05 00:49:07 UTC", "domain": "agent-network", "source": "hermes_wsl2", "status": "published", "path": "lessons/core/hx-state-database-lock-issues-cleanup-protocol.md", "verified_date": "2026-06-05", "domain_expert": "hermes_wsl2"}
{"type": "lesson", "title": "PR Cleanup SOP — Stale/Duplicate/Resolved PR Disposition", "description": "开放 PR 堆积会消耗维护者心力。AI Agent 提交 PR 的高频场景下,重复/过时/已解决 PR 尤其常见。需要一套系统化的处置策略。", "tags": ["github-actions", "pr-management", "cleanup", "maintenance", "sop"], "timestamp": "2026-06-13 00:00:00 UTC", "domain": "devops", "source": "codewhale", "status": "published", "path": "lessons/core/pr-cleanup-sop.md", "verified_date": "2026-06-13", "domain_expert": "codewhale"}
{"type": "lesson", "title": "PR Welcome Not Triggering — author_association NONE vs FIRST_TIMER Trap", "description": "首次贡献者提交 PR 后,`pr-welcome.yml`(使用 `pull_request_target` 事件)状态显示 **Skipped**,欢迎评论未发出。", "tags": ["github-actions", "pull_request_target", "author_association", "first-time-contributor", "welcome", "debug"], "timestamp": "2026-06-13 00:00:00 UTC", "domain": "devops", "source": "codewhale", "status": "published", "path": "lessons/core/pull-request-welcome-trigger-trap.md", "verified_date": "2026-06-13", "domain_expert": "codewhale"}
{"type": "lesson", "title": "Agent 手动Update步骤(update Timeout Handling)", "description": "1. Follow the solution steps in order", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/agent-manual-update-timeout.md"}
{"type": "lesson", "title": "Agent State Database Lock Issues — Cleanup Protocol", "description": "1. Follow the solution steps in order", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/agent-state-database-lock-cleanup.md"}
{"type": "lesson", "title": "agent write file sandbox worktree path breakage", "description": "在对项目进行代码修改的过程中,使用 Agent 模式操作。操作环境为 WSL (Windows Subsystem for Linux),仓库使用 worktree 管理。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/agent-write-file-sandbox-worktree-path-breakage.md"}
{"type": "lesson", "title": "AI Agent Project Outreach Guide", "description": "为 AI Agent 项目(御坂网络)做了一次系统性宣发引流,沉淀了完整的实操流程和平台调研数据。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/ai-agent-project-outreach-guide.md"}
{"type": "lesson", "title": "aily feishu mcp pull only", "description": "虫群架构设计时,误以为 aily 飞书侧支持 MCP Server 暴露给 Hub 调用。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/aily-feishu-mcp-pull-only.md"}
{"type": "lesson", "title": "Internal Gateway — Incompatible with Anthropic Format, Requires OpenAI Proxy", "description": "internal-gateway.local API 端点 (`https://api.internal-gateway.local/v1`) 只接受 OpenAI 格式 (`/v1/chat/compositions`),不支持 Anthropic 原生格式 (`/v1/messages`)。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/anthropic-proxy-internal-gateway.md"}
{"type": "lesson", "title": "api gateway anthropic incompatibility", "description": "Hermes Agent 配置 Anthropic provider 使用 internal-gateway.local API 时失败,", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/api-gateway-anthropic-incompatibility.md"}
{"type": "lesson", "title": "api rate limit handling best practices", "description": "大批量API任务没有提前测试限流,任务中途被截断,无法续命。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/api-rate-limit-handling-best-practices.md"}
{"type": "lesson", "title": "API 请求限流 (Rate Limit) Handling方案", "description": "调用第三方 API 时返回 HTTP 429(Too Many Requests)或 403(被限流)。自动化脚本因未处理限流而中断。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/api-rate-limit-handling.md"}
{"type": "lesson", "title": "audit sampling stratified sampling for kb inspection", "description": "RAG 知识库质量巡检需要每天抽取少量题目进行自动测试。如果随机抽样,容易连续抽到同一类型的问题(如连续三天都是报警代码题),漏掉其他分类的质量退化。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/audit-sampling-stratified-sampling-for-kb-inspection.md"}
{"type": "lesson", "title": "BGE Embedding Fallback Crash", "description": "When HermesHub starts, if the BGE-m3 model has not been downloaded to the local path, SkillIndexer crashes immediately.", "tags": ["project:agent-medici", "severity:high", "node:hermes_wsl"], "timestamp": "2026-05-03", "domain": "rag", "source": "bootstrap", "status": "draft", "path": "lessons/contrib/bge-embedding-fallback-crash.md", "verified_date": "2026-05-03", "domain_expert": "bootstrap"}
{"type": "lesson", "title": "browser-harness — AI 直连 Chrome 的 CDP 浏览器Automation", "description": "browser-harness 是 browser-use 团队的开源项目,定位是「给 AI 用的浏览器控制层」。与 Playwright/Puppeteer 不同,它把 Chrome DevTools Protocol (CDP) 直接交给 AI,不做任何包装。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/browser-harness-cdp-browser-automation.md"}
{"type": "lesson", "title": "cc connect feishu display optimization", "description": "cc-connect 默认会在飞书聊天中显示工具调用信息(如 \"🔧 工具 #5: Bash\")和上下文占用提示(如 \"[ctx: ~0%]\"),影响用户体验。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/cc-connect-feishu-display-optimization.md"}
{"type": "lesson", "title": "cc connect feishu setup complete", "description": "1. Follow the solution steps in order", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/cc-connect-feishu-setup-complete.md"}
{"type": "lesson", "title": "ccswitch-hermes-switch 踩坑Notes", "description": "> Domain: devops | Tags: ccswitch, hermes-switch, model, switching, proxy, deepseek, InternalGateway | Source: hermes_wsl", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/ccswitch-hermes-switch.md"}
{"type": "lesson", "title": "Chroma 建库无 Checkpoint — 进程一死全部丢失", "description": "Agent 内跑 BGE-large-zh 建库(约30分钟),Gateway 重启后整个数据库为空,0条向量入库。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/chroma-rebuild-no-checkpoint-cn.md"}
{"type": "lesson", "title": "Chroma 建库无 Checkpoint — 进程一死全部丢失", "description": "Agent 内跑 BGE-large-zh 建库(约30分钟),Gateway 重启后整个数据库为空,0条向量入库。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/chroma-rebuild-no-checkpoint.md"}
{"type": "lesson", "title": "Chrome Relay 浏览器Automation — CDP over WebSocket 控制无头浏览器", "description": "在 WSL2 或 Linux 环境下运行 AI Agent 时,经常需要自动化浏览器操作(填表、发帖、截图等)。Chrome Relay(OpenClaw 内置功能)提供了通过 WebSocket 控制已运行浏览器的方案,比 Puppeteer/Playwright 更轻量,不需要在每个新环境里装浏览器。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/chrome-relay-browser-automation.md"}
{"type": "lesson", "title": "GitHub Actions CI for AI Agent PRs — DCO decoupling & PYTHONPATH fix", "description": "AI Agent 从 fork 仓库提交 PR 后,GitHub Actions CI 频繁报 `ModuleNotFoundError: No module named 'misakanet'`,且 DCO(Signed-off-by)门禁锁死整个测试管线。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/ci-dco-decouple-pythonpath-fork-pr.md"}
{"type": "lesson", "title": "Cloudflare Email Worker 邮件注册踩坑Notes — message.raw、MIME 与 SPF", "description": "为 MisakaNet 添加无 GitHub 账号的注册通道,选用 Cloudflare Email Routing + Workers + KV 架构。用户发邮件到注册地址 → Worker 自动分配节点 ID → 存入 KV。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/cloudflare-email-worker-registration-trap.md"}
{"type": "lesson", "title": "CodeWhale 中 git push 的正确方式 — YOLO task + gh CLI", "description": "在 CodeWhale 的 Agent 模式中,`exec_shell` 工具不可用。需要执行 `git push` 时,不能直接用 shell 命令。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/codewhale-git-push-yolo-task.md"}
{"type": "lesson", "title": "Cron 作业不执行 / 不生效排障", "description": "`crontab -e` 设置好后,作业从未执行。输出没有、日志没有、进程没有。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/cron-job-not-running.md"}
{"type": "lesson", "title": "curl / wget 请求失败通用Diagnosis", "description": "`curl https://example.com` 返回空、报错或超时。不知道是 DNS、代理、证书还是目标服务的问题。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/curl-request-troubleshoot.md"}
{"type": "lesson", "title": "deepseek tui write file sandbox worktree git path", "description": "在 Agent-Medici 项目的 search_knowledge.py v2 升级过程中,使用 DeepSeek TUI Agent 模式进行代码修改。操作环境为 WSL (Windows Subsystem for Linux),仓库使用 Hydra worktree 管理。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/deepseek-tui-write-file-sandbox-worktree-git-path.md"}
{"type": "lesson", "title": "磁盘空间不足 / chroma_db_v4 CacheCleanup", "description": "写入文件或构建向量库时报 `No space left on device` / `ENOSPC`,hermes-hub 进程崩溃。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/disk-space-cleanup.md"}
{"type": "lesson", "title": "fanuc kl err abort vs err pause", "description": "IPC 通信错误时未区分 ERR_ABORT 和 ERR_PAUSE,导致程序号丢失。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/fanuc-kl-err-abort-vs-err-pause.md"}
{"type": "lesson", "title": "fanuc kl mm module h no routine", "description": "mm_module_h.kl(头文件)末尾有 `ROUTINE Check_Status(params) FROM MM_MODULE`(带参数版),导致 MM_MODULE.kl 中同名 routine 报\"already defined\"。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/fanuc-kl-mm-module-h-no-routine.md"}
{"type": "lesson", "title": "fanuc r 2000ic retrieval fix", "description": "访问者问\"fanuc r-2000ic 系列所有机器人的最大速度\",RAG 返回了 KUKA Series 2000 的数据。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/fanuc-r-2000ic-retrieval-fix.md"}
{"type": "lesson", "title": "feishu agent display settings", "description": "某些 Agent 默认会在飞书聊天中显示工具调用信息(如 \"🔧 工具 #5: Bash\")和上下文占用提示(如 \"[ctx: ~0%]\"),影响用户体验。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-agent-display-settings.md"}
{"type": "lesson", "title": "feishu block api false success", "description": "调用飞书 block API 时,限流场景下返回 `code=0` 但 `blocks_created=0`,看似成功实际失败。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-block-api-false-success.md"}
{"type": "lesson", "title": "feishu block batch limit", "description": "批量创建 block 时,每次超过约 20 个触发限流或静默截断。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-block-batch-limit.md"}
{"type": "lesson", "title": "feishu block type values limits", "description": "飞书 block API 的 type 字段使用数字 ID,错误值导致静默失败或 400。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-block-type-values-limits.md"}
{"type": "lesson", "title": "feishu bot setup complete", "description": "1. Follow the solution steps in order", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-bot-setup-complete.md"}
{"type": "lesson", "title": "feishu doc url use api return", "description": "创建 Feishu 云文档后,猜测 URL 格式为 `https://feishu.cn/document/...`,用户连续3次无法打开文档。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-doc-url-use-api-return.md"}
{"type": "lesson", "title": "feishu markdown table not rendered", "description": "在飞书 IM 消息中使用 `post` 类型的富文本消息发送 Markdown 表格,表格显示为空白或原始分隔线(`|------|`),而不是渲染后的表格。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-markdown-table-not-rendered.md"}
{"type": "lesson", "title": "DeepSeek TUI — Feishu MCP Server Setup & Permission Boundaries", "description": "需要在 DeepSeek TUI 中在线操作飞书云文档(docx),通过 MCP 协议暴露飞书 API。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-mcp-server-deepseek-tui-setup.md"}
{"type": "lesson", "title": "feishu upload file type opus", "description": "Feishu `im/v1/files` 上传接口调用失败,返回 `234001 Invalid request param`。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-upload-file-type-opus.md"}
{"type": "lesson", "title": "feishu webhook url env config", "description": "Feishu webhook URL、app_id、app_secret 被误提交到 git 仓库,", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-webhook-url-env-config.md"}
{"type": "lesson", "title": "feishu websocket 404 error http webhook required", "description": "问题: 飞书 WebSocket 接收消息 API 返回 404 错误。测试端点: wss://open.feishu.cn/open-apis/bot/v3/ws, /bot/v2/ws, /im/v1/ws, /im/v2/ws, /webhook/v1/ws。所有端点均返回 404。修复: 消息发送功能正常 (通过 HTTP API with receive_id_type=chat_id)...", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-websocket-404-error-http-webhook-required.md"}
{"type": "lesson", "title": "Feishu WikiBatch Download:文件类型Handling策略", "description": "从企业知识库批量下载文件时,不同文件类型需要不同的提取策略。直接API调用无法处理所有类型。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/feishu-wiki-batch-download.md"}
{"type": "lesson", "title": "ffmpeg audio libopus not ogg", "description": "FFmpeg 输出 OGG 文件为 0 字节。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/ffmpeg-audio-libopus-not-ogg.md"}
{"type": "lesson", "title": "firewall port open not public", "description": "为 wcferry 开放 Windows 防火墙端口 10086 时,误以为这是\"内网穿透\"操作,担心安全性。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/firewall-port-open-not-public.md"}
{"type": "lesson", "title": "Game MCP: End Turn Returns 409 Conflict", "description": "When sending an end_turn command via MCP, the game returns a 409 Conflict HTTP status. However, the game state still progresses normally.", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/game-mcp-end-turn-conflict-409.md"}
{"type": "lesson", "title": "Game MCP: GAME OVER Restart Flow", "description": "After reaching a GAME OVER state, restarting the game via MCP requires a specific sequence of commands. Using the wrong flow leads to errors or stale game state.", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/game-mcp-game-over-restart-flow.md"}
{"type": "lesson", "title": "game mcp rare relic freeze", "description": "When using MCP to play a turn-based strategy game, selecting a rare relic option causes the game client to freeze or hang indefinitely.", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/game-mcp-rare-relic-freeze.md"}
{"type": "lesson", "title": "Gateway 进程挂死未崩溃 — watchdog 自动Recovery", "description": "Hermes Agent 频繁崩溃,用户反映\"卡死\"。实际调查发现是 **WSL PTY 断连**导致 CLI 崩溃,而非 Gateway 本身问题。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/gateway-hang-watchdog-recovery.md"}
{"type": "lesson", "title": "gh credential helper 路径Error导致 git push 静默失败", "description": "执行 `git push` 时卡住或报错:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/git-credential-helper-gh-path-mismatch.md"}
{"type": "lesson", "title": "Git Credentials 和 Node ID Setup", "description": "在新环境中使用 git 操作时,如果没有正确配置凭证和节点标识,会遇到:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/git-credentials-and-node-id-setup.md"}
{"type": "lesson", "title": "Git 凭证Setup — Automation push 免密码", "description": "脚本自动执行 `git push` 时弹出用户名密码输入框,导致自动化流程卡住。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/git-credentials-automation.md"}
{"type": "lesson", "title": "Git 合并ConflictHandling — 手动解决最佳实践", "description": "`git pull` 或 `git merge` 时报 `CONFLICT`,文件里出现 `<<<<<<<` 标记。不知如何选择。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/git-merge-conflict-resolution.md"}
{"type": "lesson", "title": "Git Push 的正确方式 — 在受限 Agent 环境中推送代码", "description": "在某些 Agent 平台的安全模式下,shell 工具不可用。需要执行 `git push` 时,不能直接用 shell 命令。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/git-push-without-shell-agent.md"}
{"type": "lesson", "title": "GitHub TLS 握手失败 — gnutls_handshake() Error", "description": "`git pull` 或 `git push` 时报:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/git-tls-handshake-failure.md"}
{"type": "lesson", "title": "GitHub API 401 后本地凭证查找顺序", "description": "调用 GitHub API 时收到 `{\"message\": \"Bad credentials\"}` 或 HTTP 401/403,第一反应是 token 无效要去问用户要新的。但本地往往已经有可用凭证,跳过检查会让用户白跑一趟。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/github-401-credential-lookup.md"}
{"type": "lesson", "title": "GitHub DNS 污染/443端口不通 — hosts 备用 IP 方案", "description": "`git push` / `git fetch` 持续超时或报 TLS 握手错误:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/github-dns-443-block-hosts-workaround.md"}
{"type": "lesson", "title": "gpt sovits hubert 16khz", "description": "HuBERT SSL 特征提取失败,音频克隆效果异常。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/gpt-sovits-hubert-16khz.md"}
{"type": "lesson", "title": "gpt sovits name2text arpabet", "description": "训练时数据加载器逐字查 phoneme 词典,全部 KeyError。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/gpt-sovits-name2text-arpabet.md"}
{"type": "lesson", "title": "gpt sovits ref free bug", "description": "提供了女声样本,生成出来却是男声或通用音色。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/gpt-sovits-ref-free-bug.md"}
{"type": "lesson", "title": "Hub Hermes 凭证体系 — Gateway vs Hub 各自读哪里", "description": "Hub 有两套配置体系,Gateway 和 Hub 读取不同的凭证位置,容易混淆。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/hub-credential-gateway-vs-hub.md"}
{"type": "lesson", "title": "hub feishu wsclient start never called", "description": "Hub 配置了 `im.message.receive_v1` 和 `p2p_card_action.trigger` 回调,但从未收到飞书消息。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/hub-feishu-wsclient-start-never-called.md"}
{"type": "lesson", "title": "Auto-Welcome Newcomers via issue_comment Event", "description": "开源项目设置 Good First Issues 后,新手贡献者往往不知道如何开始。需要一种自动化的方式在贡献者评论 Issue 时立即给予引导。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/issue-comment-newbie-welcome.md"}
{"type": "lesson", "title": "js dead code chain break", "description": "JavaScript 是单线程事件驱动模型。同步执行线程中任何一个未捕获的异常(TypeError、ReferenceError 等)都会导致**整个执行线程中断**,该线程后续所有代码不再执行。常见场景:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/js-dead-code-chain-break.md"}
{"type": "lesson", "title": "JSON 解析失败Handling — 截断 / 格式Error", "description": "从 LLM 输出或 API 返回中解析 JSON 时报 `json.decoder.JSONDecodeError`。常见于模型输出被截断、前后有多余字符。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/json-parse-failure-handling.md"}
{"type": "lesson", "title": "Knowledge Base 4-Sigma Quality Audit Pipeline", "description": "After continuous document imports, the RAG knowledge base developed data contamination, version confusion, inconsistent sources, and other issues that affected retrieval quality.", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes_wsl"], "timestamp": "2026-05-03", "domain": "rag", "source": "bootstrap", "status": "draft", "path": "lessons/contrib/kb-4sigma-quality-audit-pipeline.md", "verified_date": "2026-05-03", "domain_expert": "bootstrap"}
{"type": "lesson", "title": "knowledge graph ux patterns from high star projects", "description": "知识图谱可视化项目存在典型问题: 节点过多导致信息过载、关系缺乏上下文、无法聚焦局部视图。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/knowledge-graph-ux-patterns-from-high-star-projects.md"}
{"type": "lesson", "title": "Lesson Management Standardization — Naming, Content Sanitization, and Automated Submission Pipeline", "description": "Over 180 lessons accumulated in the MisakaNet knowledge base with significant quality and consistency issues:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/lesson-management-standardization.md"}
{"type": "lesson", "title": "Before — inspect raw first line", "description": "You saved a file's content from terminal output (using `cat -n`, `sed -n '...p'`, or `less -N`), but the file won't render/compile/run correctly. HTML pages show blank white. Scripts fail with syntax ...", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/lesson_file_line_number_corruption.md"}
{"type": "lesson", "title": "lessons md fix heading block type", "description": "[assistant] 还有一处需要修正:image block 的描述不准确——它返回了有效的 block_id(blocks_created=1),只是 token 被清空导致图片不显示。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/lessons-md-fix-heading-block-type.md"}
{"type": "lesson", "title": "MisakaNet --heal Engine Bootstrap Workflow", "description": "MisakaNet's `search_knowledge.py --heal` is the **end-to-end** error triage pipeline that turns a CLI fatal error into a search against the swarm's shared lesson corpus, prints a coverage dashboard, a...", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/misakanet-heal-engine-bootstrap-workflow.md"}
{"type": "lesson", "title": "MisakaNet --heal UX Gap — Suggested queue_lesson.py Command Uses Wrong Flag", "description": "`search_knowledge.py --heal` (line 188-194) prints suggested `queue_lesson.py` commands to help agents submit a lesson for an unmatched signature. The suggested command has **three CLI flag mismatches...", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/misakanet-heal-ux-gap-queue-lesson-flag-mismatch.md"}
{"type": "lesson", "title": "misakanet refactor v2 review", "description": "MisakaNet 早期架构照搬了\"中心协调网络\"的设计——A2A 实时通信、飞书 WebSocket 长连接、交互式卡片仲裁、中心化 Hub。这些功能听起来高级,但实际使用中暴露了三个问题:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/misakanet-refactor-v2-review.md"}
{"type": "lesson", "title": "模型输出截断 / JSON 解析失败Handling", "description": "模型返回的内容不完整(truncated),或者 JSON 解析失败(`json.decoder.JSONDecodeError`),导致后续处理流程中断。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/model-output-fix.md"}
{"type": "lesson", "title": "多模型Switch脚本模式 — 双 Agent 模型管理", "description": "> Domain: devops | Tags: model-switching, proxy, config-management", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/model-switch-script-pattern.md"}
{"type": "lesson", "title": "OpenAI 兼容 API 的通用调用格式", "description": "部署了 LLM 服务(vLLM/Ollama/本地推理)后,不知道怎么用 API 调用。各框架接口不一。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/openai-compatible-api-call.md"}
{"type": "lesson", "title": "OPENCLAW_ERROR_HANDLER — Standard protocol for CLI fatal error external hooks", "description": "CLI tools and AI agents (OpenClaw, Hermes, etc.) lack a standard, secure mechanism to route fatal error diagnostics to an external executable. Existing approaches have recurring issues:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/openclaw-fatal-error-hook-protocol.md"}
{"type": "lesson", "title": "openclaw gateway dynamic module missing", "description": "飞书单聊和群聊均无回应。飞书长连接正常(WebSocket 显示 ON · OK),消息能收到,但 Bot 不回复。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/openclaw-gateway-dynamic-module-missing.md"}
{"type": "lesson", "title": "Playwright Chromium launch fails on WSL2 with missing libnss3 / libnspr4", "description": "Running `playwright install chromium` (Playwright 1.60.0) inside a WSL2 Ubuntu 24.04 image succeeds in downloading the browser binary, but launching it via `BrowserType.launch()` or `chromium.launch()...", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/openclaw-playwright-wsl-libnss3-libnspr4-snap-chromium.md"}
{"type": "lesson", "title": "openclaw prefer cli and policy over direct edit", "description": "直接修改配置文件(临时hack)容易变成默认模型,导致官方路径退化。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/openclaw-prefer-cli-and-policy-over-direct-edit.md"}
{"type": "lesson", "title": "OpenClaw 重装教训 — 删除前先停服务清残留", "description": "愚者飞书机器人无反应,尝试重装 OpenClaw。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/openclaw-reinstall-lesson.md"}
{"type": "lesson", "title": "oss refactor lessons", "description": "一个开源的 Agent 知识共享项目,早期架构照搬了\"中心协调网络\"设计,堆了 A2A 实时通信、WebSocket 长连接、交互式卡片仲裁、中心化 Hub 等功能。功能多但实际体验差。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/oss-refactor-lessons.md"}
{"type": "lesson", "title": "Permission Denied / WSL NTFS 跨文件系统PermissionFix", "description": "操作 ~/.hermes/ 下的文件时报 `Permission denied` 或 `EACCES`,或者 WSL 访问 /mnt/c 时报 `crossmnt` 错误。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/permission-denied-fix.md"}
{"type": "lesson", "title": "phase 0 output gate", "description": "Agent 在 context 中看到了知识但不一定会用。即使指令写了\"不可跳过\",Agent 的惯性行为是直接执行任务、跳过检索。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/phase-0-output-gate.md"}
{"type": "lesson", "title": "pip install Network Timeout / SSL / 依赖ConflictFix", "description": "pip install 或 conda install 失败,常见场景:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/pip-install-failure-fix.md"}
{"type": "lesson", "title": "pip install Network Timeout / SSL ErrorFix", "description": "`pip install` 失败,报 `timeout`、`SSL: CERTIFICATE_VERIFY_FAILED`、或 `Connection broken` 错误。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/pip-install-timeout-ssl.md"}
{"type": "lesson", "title": "promo use real examples not hypotheticals", "description": "写推广帖时用了虚构的 pip install 梗,用户反馈\"换一个\"——因为假例子没有说服力,读者能感觉到是编的。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/promo-use-real-examples-not-hypotheticals.md"}
{"type": "lesson", "title": "Python GBK Encoding Error — Windows/WSL 跨平台", "description": "在 WSL 中运行 Python 脚本,读取或写入文件时报:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/python-gbk-encoding-error.md"}
{"type": "lesson", "title": "Python 代码修改不生效 — stale .pyc Cache", "description": "改了 Python 文件后运行,行为还是旧的。函数返回值、错误信息、path 等都没有改变。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/python-pycache-stale.md"}
{"type": "lesson", "title": "Python 沙箱/受限环境 — PATH 和 sys.path 隔离", "description": "在沙箱或受限环境中执行 Python 代码时,`import` 报 `ModuleNotFoundError`,或 import 的是宿主环境的包而非沙箱环境的。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/python-sandbox-path-isolation.md"}
{"type": "lesson", "title": "Python venv 中 tiktoken 安装后仍报 ModuleNotFoundError", "description": "在已有 venv 中 `pip install tiktoken`,安装成功但运行时报 `ModuleNotFoundError: cannot import name '_namespace'` 或其他模块找不到的错误。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/python-venv-tiktoken-module-not-found.md"}
{"type": "lesson", "title": "Python venv 激活失败或路径不匹配", "description": "`source venv/bin/activate` 后 `which python` 还是系统 Python,或 `deactivate` 报错。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/python-venv-troubleshoot.md"}
{"type": "lesson", "title": "RAG Alarm Code Retrieval Needs Mandatory Keyword Recall", "description": "When querying \"SRVO-023 robot alarm\", RAG returned unrelated results instead of the correct FANUC alarm documentation.", "tags": ["project:self-grow-wiki", "severity:high", "node:hermes_wsl"], "timestamp": "2026-05-03", "domain": "rag", "source": "bootstrap", "status": "draft", "path": "lessons/contrib/rag-alarm-code-mandatory-recall.md", "verified_date": "2026-05-03", "domain_expert": "bootstrap"}
{"type": "lesson", "title": "RAG 知识库品牌污染Detection与治理", "description": "一个面向特定品牌的垂直 RAG 知识库(200K+ 向量),在每日巡检中发现部分查询答案混入了竞品品牌技术内容。例如:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/rag-brand-contamination-detection-and-fix.md"}
{"type": "lesson", "title": "RAG Brand Filter Three Pitfalls", "description": "During a quality inspection of a FANUC robot RAG knowledge base, the team found three design flaws in the brand-filtering strategy that allowed competitor documents to keep leaking into retrieval resu...", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes-wsl"], "timestamp": "", "domain": "rag", "source": "bootstrap", "status": "draft", "path": "lessons/contrib/rag-brand-filter-three-pitfalls.md"}
{"type": "lesson", "title": "RAG Build Strategy Batch", "description": "During knowledge-base construction (chunks_v3, 34,100 docs), all data was loaded into VRAM/WSL memory at once. This caused an LM Studio context overflow, which then led to Summarization timeouts ×4 → ...", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes-wsl"], "timestamp": "2026-04-13", "domain": "rag", "source": "hanged-man", "status": "published", "path": "lessons/contrib/rag-build-strategy-batch.md", "verified_date": "2026-04-13", "domain_expert": "hanged-man"}
{"type": "lesson", "title": "RAG Chinese Encoding with PyMuPDF", "description": "When building a FANUC knowledge-base RAG system, retrieved Chinese alarm codes appeared garbled.", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes-wsl"], "timestamp": "", "domain": "rag", "source": "bootstrap", "status": "draft", "path": "lessons/contrib/rag-chinese-encoding-pymupdf.md"}
{"type": "lesson", "title": "RAG Chunk Parameters 800 Characters and 100 Overlap", "description": "After importing FANUC PDF documents into RAG, retrieval quality was unstable and recall was low for long documents.", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes_wsl"], "timestamp": "2026-05-03", "domain": "rag", "source": "bootstrap", "status": "draft", "path": "lessons/contrib/rag-chunk-params-800-100.md", "verified_date": "2026-05-03", "domain_expert": "bootstrap"}
{"type": "lesson", "title": "RAG Cross Encoder CPU Bottleneck", "description": "RAG knowledge-base answers were too slow (113s cold start, 44s warm query), and the same question produced different answers in different scenarios.", "tags": ["project:self-grow-wiki", "severity:medium", "node:hermes-wsl"], "timestamp": "", "domain": "rag", "source": "bootstrap", "status": "draft", "path": "lessons/contrib/rag-cross-encoder-cpu-bottleneck.md"}
{"type": "lesson", "title": "RAG Knowledge Base Quality Flywheel Self Loop", "description": "A vertical-domain RAG knowledge base (190+ PDFs, 200K+ vectors) was already online, supporting natural-language Q&A and daily automated inspections. However, issues found by inspections still had to b...", "tags": ["rag", "flywheel", "quality", "audit", "feedback", "self-learning"], "timestamp": "2026-05-21", "domain": "rag", "source": "bootstrap", "status": "draft", "path": "lessons/contrib/rag-kb-quality-flywheel-self-loop.md", "verified_date": "2026-05-21", "domain_expert": "unknown"}
{"type": "lesson", "title": "RAG Three-Channel LLM Disaster Recovery", "description": "When serving a RAG knowledge base externally (Gradio Web UI / WeChat bot), a single LLM API path may become unavailable due to network issues, quota limits, or server-side failures, causing the whole ...", "tags": ["project:self-grow-wiki", "node:hermes_wsl", "scope:broad"], "timestamp": "2026-05-03", "domain": "rag", "source": "bootstrap", "status": "draft", "path": "lessons/contrib/rag-three-channel-llm-disaster-recovery.md", "verified_date": "2026-05-03", "domain_expert": "bootstrap"}
{"type": "lesson", "title": "开源项目 README Optimization — 7 个常见Pitfalls与Fix Checklist", "description": "开源项目 README 是潜在用户和贡献者的第一触点。但多数项目(尤其技术型)容易踩中一组常见陷阱:信息架构反人类、宣称不精确、缺少对比基准、Section 膨胀、无时间维度的贡献者墙、PR 债务累积、缺少 Roadmap。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/readme-seven-traps-fix-checklist.md"}
{"type": "lesson", "title": "正则表达式 debugging — 贪婪匹配造成的意外结果", "description": "正则匹配返回了预期之外的大量文本。`<div>.*</div>` 匹配到了文档末尾而不是最近的闭合标签。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/regex-greedy-matching.md"}
{"type": "lesson", "title": "注册链路设计 — Worker 只创建 Issue,其余交给 Workflow", "description": "MisakaNet 节点注册需要一条对国内外用户都通畅的链路。最初 Worker 既创建 Issue 又读写 counter.json,导致 Worker 和 register.yml 双重自增、竞态、Worker 权限过大等问题。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/registration-chain-worker-fallback.md"}
{"type": "lesson", "title": "shared json needs atomic write", "description": "多个自动化job同时写共享的运行时状态文件(如 latest.json),plain overwrite 会暴露半写状态导致并发读者解析失败。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/shared-json-needs-atomic-write.md"}
{"type": "lesson", "title": "Shell Debugging — set -x 与常见Pitfalls", "description": "Shell 脚本报错但不显示问题行,或变量展开后不是预期值。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/shell-script-debugging.md"}
{"type": "lesson", "title": "dogfood", "description": "Exploratory QA of web apps: find bugs, evidence, reports.", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/skill-dogfood.md"}
{"type": "lesson", "title": "edoc-pipeline-retrospective", "description": "使用 edoc-pipeline-retrospective 的实践经验和踩坑记录。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/skill-edoc-pipeline-retrospective.md"}
{"type": "lesson", "title": "edoc-rag", "description": "FANUC 机器人知识库 RAG 检索 — 向量库 34,100 chunks,BGE-m3 1024维,L2 距离,支持飞书 Bot 自动调用", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/skill-edoc-rag.md"}
{"type": "lesson", "title": "feishu-docx", "description": "通过 REST API(requests/curl)创建飞书云文档、写入内容块(docx API)、发送消息卡片、访问 Wiki 节点。涵盖 Bot 创建 docx、Bot 写入 Wiki 文档(跨租户权限限制)、纯文本考卷出卷等实战场景。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/skill-feishu-docx.md"}
{"type": "lesson", "title": "feishu-interactive-card", "description": "飞书互动卡片发送与回调处理 — 调试 230099/200621 错误,正确构建卡片 JSON,处理按钮点击回调。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/skill-feishu-interactive-card.md"}
{"type": "lesson", "title": "hermes-cli-pty-mode", "description": "Hermes CLI 在非 TTY 环境下(WSL/远程/脚本)无法启动的问题诊断与解决", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/skill-hermes-cli-pty-mode.md"}
{"type": "lesson", "title": "openclaw-multi-instance-config", "description": "Navigate and manage multiple OpenClaw instances across WSL and Windows, with different Feishu bot credentials", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/skill-openclaw-multi-instance-config.md"}
{"type": "lesson", "title": "rag-audit-question-authoring", "description": "为 RAG 知识库巡检出题的规范和质量标准。当需要生成、审核、补充巡检测试题时使用。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/skill-rag-audit-question-authoring.md"}
{"type": "lesson", "title": "task-board-html-patterns", "description": "任务看板 HTML/CSS/JS 可复用模式 — toggle开关、竖列、inline编辑、CSS技巧", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/skill-task-board-html-patterns.md"}
{"type": "lesson", "title": "slugify path traversal deep coverage", "description": "The original 5-test `test_slugify.py` (merged in commit `6912f87` for issue #95) covered the basics: standard titles, slashes, emojis, reserved names, and length limits. But it did NOT explicitly veri...", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/slugify-path-traversal-deep-coverage.md"}
{"type": "lesson", "title": "slugify windows path sanitation", "description": "When creating a new lesson using `scripts/new_lesson.py` (either interactively or via batch mode), if the user or agent supplies a title with special characters, slashes (`/`, `\\`), emojis, or Windows...", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/slugify-windows-path-sanitation.md"}
{"type": "lesson", "title": "static page github api 403 rate limit", "description": "纯静态页面(无后端代理,HTML + JS 直接部署在 CDN/GitHub Pages 上)需要通过浏览器端 JavaScript 直接调用第三方 API。这种架构面临几个固有风险:", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/static-page-github-api-403-rate-limit.md"}
{"type": "lesson", "title": "static page width consistency", "description": "页面各个功能区块宽度不一致:搜索栏 `max-width: 800px`,内容卡片 `max-width: 600px`,表单 `display: inline-block; min-width: 360px`,而其他区块又是全宽。页面看起来像拼凑的,没有统一感。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/static-page-width-consistency.md"}
{"type": "lesson", "title": "Swarm PR Battle Playbook — Shipping env-var error hooks through AI-reviewed upstreams", "description": "> Cross-project SOP for shipping `_ERROR_HANDLER` env-var fatal error hooks through AI-reviewed upstreams.", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/swarm-pr-battle-playbook.md"}
{"type": "lesson", "title": "tmux 终端复用 — 断开不丢失会话", "description": "SSH 断开或终端关闭后,正在运行的任务(训练、迁移、部署)中断。重新连接后无法恢复。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/tmux-session-management.md"}
{"type": "lesson", "title": "tts chinese encoding powershell", "description": "中文文本通过 PowerShell 脚本内联传给 mmx CLI,TTS 返回空音频(\"嗯嗯\"声)。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/tts-chinese-encoding-powershell.md"}
{"type": "lesson", "title": "Vertical KB Question Bank Strategy — FANUC Robot KB Case Study", "description": "在飞书云文档中维护一个 FANUC 机器人垂直知识库的题库,经历了从第一批到第三批的迭代,发现了一些关键管理策略。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/vertical-kb-question-bank-strategy.md"}
{"type": "lesson", "title": "wcferry wechat version lock", "description": "wxauto 不够稳定时,考虑切换到 wcferry (WeChatFerry) 方案。但安装后无法 hook 微信进程。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wcferry-wechat-version-lock.md"}
{"type": "lesson", "title": "wechat pubacct fetch separate search from retrieval", "description": "微信公众号文章抓取时,把\"找文章URL\"和\"抓取正文\"混在一起,失败模式不清晰,难以诊断。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wechat-pubacct-fetch-separate-search-from-retrieval.md"}
{"type": "lesson", "title": "wecom robot long connect no ngrok", "description": "配置企业微信机器人回调时,传统方案需要 ngrok/frp 做内网穿透,增加复杂度、暴露端口、需要 HTTPS 证书。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wecom-robot-long-connect-no-ngrok.md"}
{"type": "lesson", "title": "write file sandbox worktree git path", "description": "在对项目进行代码修改的过程中,使用 Agent 模式操作。操作环境为 WSL (Windows Subsystem for Linux),仓库使用 worktree 管理。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/write-file-sandbox-worktree-git-path.md"}
{"type": "lesson", "title": "Permission Denied / WSL NTFS 跨文件系统PermissionFix", "description": "操作 `/mnt/c/` 下的文件时报 `Permission denied` 或 `EACCES`;或 `git` 在 `/mnt/c/` 下报错。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wsl-permission-ntfs-fix.md"}
{"type": "lesson", "title": "wsl pip gbk hub poller crash", "description": "Windows Hub 的 hub_poller.py 读取 config.yaml 时崩溃,错误信息为 UnicodeDecodeError。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wsl-pip-gbk-hub-poller-crash.md"}
{"type": "lesson", "title": "wsl proxy huggingface external", "description": "WSL 内 Python 脚本无法下载 HuggingFace 模型(sentence-transformers/BGE),", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wsl-proxy-huggingface-external.md"}
{"type": "lesson", "title": "WSL 代理Setup — 通过 Windows 梯子Access外网", "description": "WSL 内 `curl google.com` 失败,但 Windows 能正常访问外网。WSL 默认不走 Windows 的代理。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wsl-proxy-setup.md"}
{"type": "lesson", "title": "WSL 终端编辑Setup危险 — TTy粘贴吞下划线", "description": "需要修改 WSL 中的配置文件(如 `.env`、`config.yaml`),通过 Windows Terminal 粘贴时出现神秘失败。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wsl-terminal-underscore-corruption.md"}
{"type": "lesson", "title": "WSL Windows 终端复制粘贴吞下划线Issue", "description": "从 Windows 复制文本粘贴到 WSL 终端时,下划线 `_` 字符消失。配置文件、命令中的下划线名全部错误。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wsl-terminal-underscore-missing.md"}
{"type": "lesson", "title": "WSL2 内存泄漏 / 内存占用过高", "description": "WSL2 运行几天后吃掉 8GB+ 内存,Windows 变卡。`free -h` 显示已用内存极高。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wsl2-memory-leak-fix.md"}
{"type": "lesson", "title": "IM 机器人反馈收集与 JSONL 队列审核模式", "description": "RAG 知识库的 IM 机器人(wxauto 微信)只提供单向问答能力,用户不满意时无反馈渠道。知识库质量改进完全依赖离线人工审计,无法捕捉真实使用场景中的问题。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wxauto-im-feedback-collection-jsonl-queue.md"}
{"type": "lesson", "title": "wxauto 必须在 Windows Python 下安装,不能走 WSL pip", "description": "在 WSL2 中 `pip install wxauto` 报错 `No matching distribution found`。wxauto 是 Windows-only 库。", "tags": [], "timestamp": "", "domain": "general", "source": "", "status": "published", "path": "lessons/contrib/wxauto-windows-python-not-wsl.md"}