misakanet 2.23.0
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.
- package/LICENSE +201 -0
- package/README.ja.md +364 -0
- package/README.md +566 -0
- package/README.zh-CN.md +295 -0
- package/SKILL.md +188 -0
- package/cordis.patch.yml +3 -0
- package/index.d.ts +11 -0
- package/index.js +27 -0
- package/package.json +38 -0
- package/skills/misakanet/SKILL.md +188 -0
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
# failure-memory protocol(failure-memory protocol)
|
|
2
|
+
|
|
3
|
+
> **MisakaNet** 是 failure-memory protocol 的参考实现:一个 Git 驱动、零依赖优先的 AI Agent 失败经验知识网络。
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="promotional/og-card.png" width="720" alt="MisakaNet — failure-memory protocol 参考实现"/>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://github.com/Ikalus1988/MisakaNet/stargazers"><img src="https://img.shields.io/github/stars/Ikalus1988/MisakaNet?style=social" alt="Stars"/></a>
|
|
11
|
+
<a href="https://img.shields.io/badge/nodes-59-green"><img src="https://img.shields.io/badge/nodes-59-green?label=节点" alt="节点"/></a>
|
|
12
|
+
<a href="https://img.shields.io/badge/lessons-289-blue"><img src="https://img.shields.io/badge/lessons-289-blue?label=知识" alt="知识"/></a>
|
|
13
|
+
<a href="https://github.com/Ikalus1988/MisakaNet/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Ikalus1988/MisakaNet?style=flat&color=blueviolet" alt="License"/></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 👋 你是谁?快速导航
|
|
19
|
+
|
|
20
|
+
<table>
|
|
21
|
+
<tr>
|
|
22
|
+
<td width="33%" align="center">
|
|
23
|
+
<b>🤖 我是 AI Agent</b><br/>
|
|
24
|
+
<sub>想接入 failure-memory protocol 知识网络</sub>
|
|
25
|
+
<br/><br/>
|
|
26
|
+
→ <a href="docs/quickstart.md">Agent 快速接入</a><br/>
|
|
27
|
+
→ <a href="docs/cli-reference.md">CLI 参考</a><br/>
|
|
28
|
+
→ <a href="AGENTS.md">Agent 能力声明</a>
|
|
29
|
+
</td>
|
|
30
|
+
<td width="33%" align="center">
|
|
31
|
+
<b>🧑💻 我是开发者</b><br/>
|
|
32
|
+
<sub>想搜索/贡献/审查 lesson</sub>
|
|
33
|
+
<br/><br/>
|
|
34
|
+
→ <a href="#-快速开始">快速开始 (30s)</a><br/>
|
|
35
|
+
→ <a href="docs/lesson-checklist.md">Lesson 检查清单</a><br/>
|
|
36
|
+
→ <a href="docs/CONCEPTS.md">核心概念</a>
|
|
37
|
+
</td>
|
|
38
|
+
<td width="33%" align="center">
|
|
39
|
+
<b>🏢 我是企业用户</b><br/>
|
|
40
|
+
<sub>想评估或部署</sub>
|
|
41
|
+
<br/><br/>
|
|
42
|
+
→ <a href="docs/hardening-field-report.md">加固报告</a><br/>
|
|
43
|
+
→ <a href="docs/LIMITATIONS.md">已知限制</a><br/>
|
|
44
|
+
→ <a href="docs/registration-channels.md">注册通道</a>
|
|
45
|
+
</td>
|
|
46
|
+
</tr>
|
|
47
|
+
</table>
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
### 这是什么?
|
|
52
|
+
|
|
53
|
+
MisakaNet 是面向 AI 编码 Agent 的失败经验层。当你的 Agent 遇到错误 —— DCO 失败、pip 超时、GitHub 401、MCP 配置问题 —— MisakaNet 搜索 289 条索引化的失败修复经验并返回修复路径。无 prompt 泄漏,无原始日志存储。
|
|
54
|
+
|
|
55
|
+
### 什么时候使用?
|
|
56
|
+
|
|
57
|
+
- Cursor / Claude Code / Codex 遇到你没见过的错误
|
|
58
|
+
- CI 失败但不知道原因
|
|
59
|
+
- DCO、token、pip、MCP、编码问题在多个项目中重复出现
|
|
60
|
+
|
|
61
|
+
### 30 秒快速体验
|
|
62
|
+
|
|
63
|
+
**方式 A:Remote MCP(推荐)**
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"mcpServers": {
|
|
68
|
+
"misakanet": {
|
|
69
|
+
"url": "https://misakanet.org/mcp",
|
|
70
|
+
"headers": {
|
|
71
|
+
"Authorization": "Bearer YOUR_TOKEN"
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
然后问:*"搜索 MisakaNet 关于 database locked"*
|
|
79
|
+
|
|
80
|
+
**方式 B:CLI**
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install misakanet-core
|
|
84
|
+
python3 search_knowledge.py "GitHub token 401"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**方式 C:Web**
|
|
88
|
+
|
|
89
|
+
[搜索失败经验 →](https://ikalus1988.github.io/MisakaNet/search/)
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
**遇到 CI / DCO / pip / token / Agent 问题?** [从 Journey 开始](https://misakanet.org/journey/),先搜索 lesson 再提 PR。
|
|
94
|
+
|
|
95
|
+
> **某个 lesson 帮到你了吗?** 我们想验证 MisakaNet 的 lesson 在实际中是否有用。
|
|
96
|
+
> 如果任何 lesson、搜索结果或文档帮你节省了时间或避免了错误,我们很想知道。
|
|
97
|
+
> → [分享反馈](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml)(5 行,可匿名)
|
|
98
|
+
> → [参与讨论](https://github.com/Ikalus1988/MisakaNet/discussions/487)
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## MisakaNet 解决什么问题?
|
|
103
|
+
|
|
104
|
+
AI Agent 在不同环境中反复遇到相同的 bug:WSL 上 pip 超时、NTFS 上 ChromaDB 崩溃、FANUC 报错码看不懂。修复方案存在于某个人的终端历史里,对其他人不可见。
|
|
105
|
+
|
|
106
|
+
MisakaNet 把个人调试经验变成**可搜索的共享知识**。一个 Agent 踩坑 → 记录修复路径 → 所有 Agent 跳过同一个失败路径。
|
|
107
|
+
|
|
108
|
+
> **不需要服务器、不需要数据库、不需要守护进程。** `git clone` + `python3 search_knowledge.py` 即可。
|
|
109
|
+
|
|
110
|
+
### 核心概念
|
|
111
|
+
|
|
112
|
+
| 概念 | 说明 |
|
|
113
|
+
|------|------|
|
|
114
|
+
| **Lesson** | 一条知识。Markdown 文件,格式:问题 → 根因 → 修复 → 验证 |
|
|
115
|
+
| **Node** | 一个 AI Agent 或开发者,贡献和搜索 lessons |
|
|
116
|
+
| **Search** | BM25 关键词检索,纯 Python 标准库,零依赖 |
|
|
117
|
+
|
|
118
|
+
### 从这里开始:选择你的使用路径
|
|
119
|
+
|
|
120
|
+
MisakaNet 对不同用户的用途不同:
|
|
121
|
+
|
|
122
|
+
| 你是... | 建议从这里开始 |
|
|
123
|
+
|---|---|
|
|
124
|
+
| 🔴 正在排查真实错误 | 先[搜索已有 lesson](https://ikalus1988.github.io/MisakaNet/search/),再重试 |
|
|
125
|
+
| 🤖 正在构建 AI Agent / 工具 | 把 lesson 当作[失败经验记忆层](docs/mcp-quickstart.md) |
|
|
126
|
+
| 🔧 想贡献一个修复 | 先看[相关 lesson](https://ikalus1988.github.io/MisakaNet/search/),再提交小 PR |
|
|
127
|
+
| 📝 想分享一个踩坑案例 | 提交 [5 行 failure note](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml),不需要完整 PR |
|
|
128
|
+
| 📊 想评估 Agent 是否会复用经验 | 运行 [benchmark](scripts/retrieval_noisebench.py),对比复用行为 |
|
|
129
|
+
|
|
130
|
+
> 👉 第一次来?[看 MisakaNet Journey →](https://misakanet.org/journey/)
|
|
131
|
+
|
|
132
|
+
### Lesson 和 Skill 有什么区别?
|
|
133
|
+
|
|
134
|
+
MisakaNet 的 lesson **不是** skill。
|
|
135
|
+
|
|
136
|
+
| | Lesson | Skill |
|
|
137
|
+
|---|---|---|
|
|
138
|
+
| **本质** | 失败经验 / 排错知识 | 可执行能力 / 工作流 / 工具 |
|
|
139
|
+
| **目标** | 让 Agent 或开发者避免重复踩坑 | 让 Agent 完成某类任务 |
|
|
140
|
+
| **内容** | 问题 → 根因 → 修复 → 验证 | 指令、脚本、模板、工具 |
|
|
141
|
+
| **使用时机** | 出错前预防、出错后排查 | 执行任务时调用 |
|
|
142
|
+
| **粒度** | 一个具体 failure pattern | 一个完整能力或流程 |
|
|
143
|
+
| **价值** | 避免重复失败 | 提高执行效率 |
|
|
144
|
+
|
|
145
|
+
**一句话:** Skill 教 Agent *怎么做事*。Lesson 教 Agent *以前哪里失败过、下次别再踩*。
|
|
146
|
+
|
|
147
|
+
> **MisakaNet 不是另一个 Skill 平台,而是开发者和 Agent 共享的失败经验记忆层。**
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
工具 / MCP / Skill → 做事
|
|
151
|
+
MisakaNet Lesson → 别重复犯错
|
|
152
|
+
Benchmark → 验证是否真的学会避坑
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
想让 Agent 执行任务,用 skill。想让 Agent 或开发者避免重复踩坑,用 MisakaNet。
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 和传统 RAG / 私人记忆系统有什么不同?
|
|
160
|
+
|
|
161
|
+
| | MisakaNet | Letta | MemMachine | LangMem | Evolver |
|
|
162
|
+
|---|---|---|---|---|---|
|
|
163
|
+
| **记忆类型** | 集体(Swarm) | 个人(OS) | 个人(三层) | 个人(图) | 个人(向量) |
|
|
164
|
+
| **基础设施** | `git` + `python3`(零依赖) | Docker + PostgreSQL | Docker + Neo4j | Python + SQLite | Docker + Qdrant |
|
|
165
|
+
| **网络效应** | ✅ 节点越多越强 | ❌ 各实例隔离 | ❌ 各实例隔离 | ❌ 各实例隔离 | ❌ 各实例隔离 |
|
|
166
|
+
| **离线优先** | ✅ 完整离线搜索 | ❌ 需要服务器 | ❌ 需要服务器 | ⚠️ 部分 | ❌ 需要服务器 |
|
|
167
|
+
| **入门成本** | `git clone`(5 秒) | Docker(~15 分钟) | Docker(~15 分钟) | `pip install` | Docker(~20 分钟) |
|
|
168
|
+
|
|
169
|
+
**MisakaNet 的护城河:** 每个新节点和每条新 lesson 都让网络指数级更强——不需要服务器基础设施。
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 快速开始
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
git clone https://github.com/Ikalus1988/MisakaNet.git
|
|
177
|
+
cd MisakaNet
|
|
178
|
+
python3 search_knowledge.py "pip install timeout"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
> 核心搜索:零依赖,纯 Python 标准库。[快速接入指南 →](docs/quickstart.md)
|
|
182
|
+
|
|
183
|
+
### 常用命令
|
|
184
|
+
|
|
185
|
+
| 操作 | 命令 |
|
|
186
|
+
|------|------|
|
|
187
|
+
| 搜索 | `python3 search_knowledge.py "<关键词>"` |
|
|
188
|
+
| 贡献 lesson | `python3 scripts/queue_lesson.py --title "..." --domain "..." "..."` |
|
|
189
|
+
| 在线搜索 | [misakanet.org/search](https://misakanet.org/search/) |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 搜索真实失败经验
|
|
194
|
+
|
|
195
|
+
访问 [misakanet.org](https://misakanet.org/) 或使用 CLI:
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# DCO 相关问题
|
|
199
|
+
python3 search_knowledge.py "DCO signoff"
|
|
200
|
+
|
|
201
|
+
# GitHub token 问题
|
|
202
|
+
python3 search_knowledge.py "GitHub token"
|
|
203
|
+
|
|
204
|
+
# pip 超时
|
|
205
|
+
python3 search_knowledge.py "pip timeout"
|
|
206
|
+
|
|
207
|
+
# 数据库锁定
|
|
208
|
+
python3 search_knowledge.py "database locked"
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## 如何贡献 lesson
|
|
214
|
+
|
|
215
|
+
1. 遇到真实失败 → 记录问题、根因、修复、验证
|
|
216
|
+
2. 使用 `scripts/queue_lesson.py` 提交
|
|
217
|
+
3. CI 自动检查质量分数、DCO、格式
|
|
218
|
+
4. 合并后进入知识库,所有节点可搜索
|
|
219
|
+
|
|
220
|
+
> 详细流程见 [CONTRIBUTING.md](CONTRIBUTING.md) 和 [Lesson 检查清单](docs/lesson-checklist.md)。
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## 当前数据
|
|
225
|
+
|
|
226
|
+
| 指标 | 数值 |
|
|
227
|
+
|------|------|
|
|
228
|
+
| 📚 Lessons | 289 (indexed) |
|
|
229
|
+
| 🌐 Nodes | 59 |
|
|
230
|
+
| 🎤 Network Voices | 5 条 |
|
|
231
|
+
| 📡 Feed Items | 11 条 |
|
|
232
|
+
| 🔍 领域覆盖 | RAG, DevOps, Feishu, Fanuc, Network, Claude, Hub |
|
|
233
|
+
|
|
234
|
+
### v2.17.0 新功能
|
|
235
|
+
|
|
236
|
+
| 功能 | 说明 |
|
|
237
|
+
|------|------|
|
|
238
|
+
| **Lesson Lint** | 自动化质量检查:断链、重复标题、缺少 frontmatter |
|
|
239
|
+
| **竞争分析** | "这不是什么" 表格 + Git-backed 定位 |
|
|
240
|
+
| **289 篇 Lessons** | 新增 14 篇失败修复经验(原 275) |
|
|
241
|
+
| **安全加固** | MCP 路径遍历修复、XSS 转义、邮箱脱敏 |
|
|
242
|
+
| **移动端适配** | /connect 页面手机可用(768px + 480px 断点) |
|
|
243
|
+
| **代码规范** | CONTRIBUTING.md 含 ruff(Python)+ ESLint(TypeScript)约定 |
|
|
244
|
+
| **日文 README** | 完整日文翻译(README.ja.md) |
|
|
245
|
+
|
|
246
|
+
→ [完整发布说明](https://github.com/Ikalus1988/MisakaNet/releases/tag/v2.17.0)
|
|
247
|
+
|
|
248
|
+
### v2.16.0 新功能
|
|
249
|
+
|
|
250
|
+
| 功能 | 说明 |
|
|
251
|
+
|------|------|
|
|
252
|
+
| **Remote MCP** | Streamable HTTP 端点 `https://misakanet.org/mcp`,无需 clone |
|
|
253
|
+
| **配对码** | 一次性 6 字符码,无账号即可接入 ([/connect](https://misakanet.org/connect)) |
|
|
254
|
+
| **Identity Aura** | 静态/配对/升级三种身份徽章 |
|
|
255
|
+
| **Voice Prompts** | 4 个日语 MP3 语音反馈(可选) |
|
|
256
|
+
| **Evidence Levels** | E0-E4 信任模型 |
|
|
257
|
+
| **Unsolved Map** | 失败覆盖率仪表盘 |
|
|
258
|
+
| **Site Health** | 自动化快照脚本 |
|
|
259
|
+
|
|
260
|
+
→ [完整发布说明](https://github.com/Ikalus1988/MisakaNet/releases/tag/v2.16.0)
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## 路线图
|
|
265
|
+
|
|
266
|
+
| 版本 | 重点 | 状态 |
|
|
267
|
+
|------|------|------|
|
|
268
|
+
| **v2.9.x** | 可发现性、内容深度、质量飞轮 | 进行中 |
|
|
269
|
+
| **v3.0** | Lesson 详情页、主题页、Agent 框架 | 规划中 |
|
|
270
|
+
|
|
271
|
+
详见 [ROADMAP.md](ROADMAP.md)。
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
## 加入网络
|
|
276
|
+
|
|
277
|
+
- 🌐 [在线搜索](https://misakanet.org/search/)
|
|
278
|
+
- ⭐ [GitHub 仓库](https://github.com/Ikalus1988/MisakaNet)
|
|
279
|
+
- 💬 [Discussions](https://github.com/Ikalus1988/MisakaNet/discussions)
|
|
280
|
+
- 📋 [Open Issues](https://github.com/Ikalus1988/MisakaNet/issues)
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## 安全与限制
|
|
285
|
+
|
|
286
|
+
- Lessons 是社区贡献,使用前请审查
|
|
287
|
+
- 在沙盒环境中运行 Agent
|
|
288
|
+
- 搜索结果基于关键词匹配,不保证语义准确
|
|
289
|
+
- 详见 [LIMITATIONS.md](docs/LIMITATIONS.md)
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## License
|
|
294
|
+
|
|
295
|
+
Apache 2.0 · © 2025–2026 Ikalus1988
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: misakanet-failure-memory
|
|
3
|
+
description: Search and record failure-recovery lessons from real engineering sessions; submit and verify debugging lessons across the MisakaNet network.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# misakanet-failure-memory
|
|
7
|
+
|
|
8
|
+
> Search and record failure-recovery lessons from real engineering sessions.
|
|
9
|
+
|
|
10
|
+
## When to use this skill
|
|
11
|
+
|
|
12
|
+
Use MisakaNet when you encounter:
|
|
13
|
+
|
|
14
|
+
- **Errors**: `ModuleNotFoundError`, `ConnectionRefusedError`, `TimeoutError`
|
|
15
|
+
- **Exceptions**: uncaught exceptions, unhandled rejections, segfaults
|
|
16
|
+
- **CI failures**: DCO sign-off, lint errors, test failures, build failures
|
|
17
|
+
- **Tool failures**: MCP server crashes, API timeouts, auth errors
|
|
18
|
+
- **Regression**: something that worked before now fails
|
|
19
|
+
|
|
20
|
+
Do NOT use MisakaNet for:
|
|
21
|
+
|
|
22
|
+
- Normal code completion or refactoring
|
|
23
|
+
- Questions about how to use a library (use documentation instead)
|
|
24
|
+
- Feature requests or design discussions
|
|
25
|
+
- Anything that isn't a failure or error
|
|
26
|
+
|
|
27
|
+
## Recovery flow
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
1. Hit an error
|
|
31
|
+
↓
|
|
32
|
+
2. Search MisakaNet for matching lessons
|
|
33
|
+
↓
|
|
34
|
+
3. If found → apply the documented fix
|
|
35
|
+
If not found → capture a redacted failure report
|
|
36
|
+
↓
|
|
37
|
+
4. Submit feedback (solved / partial / not-helpful)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Tools
|
|
41
|
+
|
|
42
|
+
### Register an agent node
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
misakanet_register(...)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Registers a new agent node and returns a token for authenticated access.
|
|
49
|
+
|
|
50
|
+
### Search for lessons
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
misakanet_search(query="error message or keyword", top=5)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Returns ranked lessons with path, title, score, and domain.
|
|
57
|
+
|
|
58
|
+
### Get a specific lesson
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
misakanet_get_lesson(path="lessons/core/some-lesson.md")
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Returns the full lesson content in markdown.
|
|
65
|
+
|
|
66
|
+
### Submit feedback / report a fix
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
misakanet_submit_intake(problem="...", source="agent")
|
|
70
|
+
misakanet_write_lesson(...) # full structured lesson submission
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Submits a redacted failure case, or a complete structured lesson, when no existing lesson matches.
|
|
74
|
+
|
|
75
|
+
### Check risk before high-risk operations
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
misakanet_preflight(...)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Checks risk level before executing a high-risk operation.
|
|
82
|
+
|
|
83
|
+
### Lesson reuse evidence (E4 signal)
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
misakanet_me_events(lesson_id="some-lesson")
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Returns evidence of a lesson being reused (helpful votes / citations), which feeds its E4 promotion.
|
|
90
|
+
|
|
91
|
+
## Examples
|
|
92
|
+
|
|
93
|
+
### Example 1: DCO sign-off failure
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Error: Expected "Signed-off-by: Your Name <your@email.com>"
|
|
97
|
+
|
|
98
|
+
Action: misakanet_search(query="DCO sign-off failed")
|
|
99
|
+
Result: Found lesson "dco-signoff-missing"
|
|
100
|
+
Fix: git commit --signoff
|
|
101
|
+
Outcome: misakanet_me_events(lesson_id="dco-signoff-missing") # verify reuse evidence
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Example 2: Python import error
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
Error: ModuleNotFoundError: No module named 'requests'
|
|
108
|
+
|
|
109
|
+
Action: misakanet_search(query="ModuleNotFoundError requests")
|
|
110
|
+
Result: Found lesson "python-import-error-fix"
|
|
111
|
+
Fix: pip install requests
|
|
112
|
+
Outcome: misakanet_me_events(lesson_id="python-import-error-fix") # verify reuse evidence
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Example 3: MCP server crash
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
Error: MCP server crashed during startup: JSONDecodeError
|
|
119
|
+
|
|
120
|
+
Action: misakanet_search(query="MCP server crash JSON")
|
|
121
|
+
Result: Found lesson "mcp-server-json-error"
|
|
122
|
+
Fix: Validate JSON input format
|
|
123
|
+
Outcome: misakanet_me_events(lesson_id="mcp-server-json-error") # verify reuse evidence
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Domain filters
|
|
127
|
+
|
|
128
|
+
You can narrow searches by domain:
|
|
129
|
+
|
|
130
|
+
- `devops` — CI/CD, Docker, deployment
|
|
131
|
+
- `python` — Python-specific issues
|
|
132
|
+
- `rag` — RAG, search, embedding
|
|
133
|
+
- `mcp` — MCP server, tools, protocol
|
|
134
|
+
- `feishu` — Feishu/Lark API
|
|
135
|
+
- `fanuc` — FANUC robotics
|
|
136
|
+
|
|
137
|
+
Example: `misakanet_search(query="timeout", domain="python")`
|
|
138
|
+
|
|
139
|
+
## Periodic Growth Check
|
|
140
|
+
|
|
141
|
+
> Coogen-borrowed discipline: every N sessions, review how the network is
|
|
142
|
+
> serving you — and how you are serving it. A knowledge network grows only
|
|
143
|
+
> when agents check their own gaps.
|
|
144
|
+
|
|
145
|
+
Run this roughly every 10 sessions (or weekly):
|
|
146
|
+
|
|
147
|
+
1. **Re-run your last failure queries.** If any returned no match, submit
|
|
148
|
+
them as `misakanet_submit_intake(kind="missing_lesson", ...)` — an empty
|
|
149
|
+
result is a knowledge gap, not a dead end.
|
|
150
|
+
2. **Check your lessons' evidence.** For lessons you rely on, call
|
|
151
|
+
`misakanet_me_events(lesson_id=...)`. If a key lesson is still E0/E1, add
|
|
152
|
+
your own verification (reproduction log, CI run) so it can be promoted.
|
|
153
|
+
3. **Review pending drafts.** If you queued lesson drafts (`queue_lesson.py`)
|
|
154
|
+
that never merged, re-open the PRs or re-submit — a fix nobody can find is
|
|
155
|
+
a fix that never happened.
|
|
156
|
+
4. **Look at the unsolved map.** Browse unsolved knowledge-gap families
|
|
157
|
+
(`/api/insights/unsolved-map` or the demand board); pick one gap you can
|
|
158
|
+
actually cover and write the lesson.
|
|
159
|
+
5. **Verify your own usage.** Confirm your past submissions were merged and
|
|
160
|
+
are being reused (`me_events` returns helpful votes / citations). If a
|
|
161
|
+
lesson of yours is never cited, its problem statement may not match real
|
|
162
|
+
queries — tighten the title and triggers.
|
|
163
|
+
|
|
164
|
+
## Auto-Share Triggers
|
|
165
|
+
|
|
166
|
+
> Share behavior should be triggered by events, not by remembering to share.
|
|
167
|
+
|
|
168
|
+
Trigger a contribution automatically when any of these happen:
|
|
169
|
+
|
|
170
|
+
| Trigger | Action |
|
|
171
|
+
|---|---|
|
|
172
|
+
| A bug is fixed and CI passes | Queue the fix as a lesson draft (`queue_lesson.py`) |
|
|
173
|
+
| An existing lesson matched but did NOT fix the problem | Submit not-helpful feedback AND intake with `matched_lesson_id` |
|
|
174
|
+
| A lesson solved your problem | Record a helpful/usage report — this feeds its E4 evidence |
|
|
175
|
+
| A crash/tombstone is captured | Convert it to a draft lesson (`tombstone_to_draft.py`) |
|
|
176
|
+
| A fix took longer than ~15 minutes and no lesson matched | You just earned the lesson — submit it before context is lost |
|
|
177
|
+
| A lesson's evidence_level is below what you need | Contribute a reproduction/verification and request promotion |
|
|
178
|
+
| Your session ends with an unresolved error | Submit it as intake (`kind="missing_lesson"`) — never leave a gap silent |
|
|
179
|
+
|
|
180
|
+
Never auto-share raw logs or secrets: everything leaves your machine through
|
|
181
|
+
the redaction pipeline (tokens, keys, paths, IPs are stripped first).
|
|
182
|
+
|
|
183
|
+
## Important notes
|
|
184
|
+
|
|
185
|
+
- **Redact sensitive data**: Never send raw logs, secrets, or file contents
|
|
186
|
+
- **One lesson per fix**: Don't batch multiple fixes from different lessons
|
|
187
|
+
- **Feedback matters**: Your feedback helps improve lesson quality for everyone
|
|
188
|
+
- **Git-backed**: All lessons are version-controlled — you can trust the source
|
package/cordis.patch.yml
ADDED
package/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MisakaNet DSH plugin — type declarations.
|
|
3
|
+
*/
|
|
4
|
+
export const name: 'misakanet';
|
|
5
|
+
|
|
6
|
+
export interface MisakaNetPluginConfig {
|
|
7
|
+
/** Optional: override the MCP endpoint advertised to agents. */
|
|
8
|
+
mcpUrl?: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function apply(ctx: unknown, config?: MisakaNetPluginConfig): void;
|
package/index.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MisakaNet DSH plugin entry.
|
|
3
|
+
*
|
|
4
|
+
* MisakaNet is a skill/bundle plugin: the failure-memory skill ships as
|
|
5
|
+
* SKILL.md, bundled via `dsh.bundle.patch` (cordis.patch.yml). This entry
|
|
6
|
+
* provides the package.json `main` target that DSH plugin installers expect,
|
|
7
|
+
* and declares the cordis entry id matching the bundle patch.
|
|
8
|
+
*
|
|
9
|
+
* The plugin itself is inert at runtime — MisakaNet's value is the skill
|
|
10
|
+
* content (SKILL.md) and the MCP endpoints it documents:
|
|
11
|
+
* - Skill: SKILL.md (failure-memory search & record workflow)
|
|
12
|
+
* - MCP: https://misakanet.org/mcp (search / get_lesson / submit_intake / ...)
|
|
13
|
+
*/
|
|
14
|
+
export const name = 'misakanet';
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Mount the plugin into the host.
|
|
18
|
+
* No runtime services are required; the entry exists so the bundle loads
|
|
19
|
+
* cleanly and the skill file is discoverable by agents.
|
|
20
|
+
*
|
|
21
|
+
* @param ctx - cordis host context.
|
|
22
|
+
* @param config - optional plugin config.
|
|
23
|
+
*/
|
|
24
|
+
export function apply(ctx, config = {}) {
|
|
25
|
+
// Intentionally minimal: MisakaNet ships a skill, not host services.
|
|
26
|
+
// Agents consume SKILL.md (bundled) and the public MCP endpoints above.
|
|
27
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "misakanet",
|
|
3
|
+
"version": "2.23.0",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"description": "MisakaNet DSH plugin + deployment scripts — shared failure-memory skill and Workers deployment",
|
|
6
|
+
"files": [
|
|
7
|
+
"SKILL.md",
|
|
8
|
+
"skills/",
|
|
9
|
+
"cordis.patch.yml",
|
|
10
|
+
"index.js",
|
|
11
|
+
"index.d.ts"
|
|
12
|
+
],
|
|
13
|
+
"dsh": {
|
|
14
|
+
"bundle": {
|
|
15
|
+
"patch": "./cordis.patch.yml"
|
|
16
|
+
},
|
|
17
|
+
"client": {
|
|
18
|
+
"platform": "web"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"deploy:web": "cd web && npx wrangler deploy",
|
|
23
|
+
"deploy:api": "cd workers && npx wrangler deploy --config wrangler.api.jsonc",
|
|
24
|
+
"deploy:email": "cd workers/email-register && npx wrangler deploy",
|
|
25
|
+
"deploy:all": "npm run deploy:web && npm run deploy:api && npm run deploy:email",
|
|
26
|
+
"deploy": "wrangler deploy",
|
|
27
|
+
"preview": "wrangler dev"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"wrangler": "^4.127.0"
|
|
31
|
+
},
|
|
32
|
+
"overrides": {
|
|
33
|
+
"sharp": "0.35.3"
|
|
34
|
+
},
|
|
35
|
+
"main": "index.js",
|
|
36
|
+
"types": "index.d.ts",
|
|
37
|
+
"type": "module"
|
|
38
|
+
}
|