misakanet 2.33.0 → 2.35.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/.codex-plugin/plugin.json +1 -1
- package/README.ja.md +4 -4
- package/README.md +24 -15
- package/README.zh-CN.md +3 -3
- package/SKILL.md +14 -0
- package/package.json +4 -5
- package/skills/misakanet/SKILL.md +19 -3
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "misakanet",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.35.0",
|
|
4
4
|
"description": "Failure-memory network for AI coding agents: search evidence-rated failure lessons, submit new failures, and turn crashes into reusable knowledge.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Ikalus1988",
|
package/README.ja.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
> **AIコーディングエージェント向けGitバックアップ障害記憶。**
|
|
10
10
|
>
|
|
11
11
|
> 依存関係ゼロ。サーバー不要。データベース不要。
|
|
12
|
-
> エラーを貼り付ける →
|
|
12
|
+
> エラーを貼り付ける → 411件のレッスンを検索 → 修正パスを取得。
|
|
13
13
|
|
|
14
14
|
mcp-name: io.github.Ikalus1988/misakanet
|
|
15
15
|
|
|
@@ -30,7 +30,7 @@ mcp-name: io.github.Ikalus1988/misakanet
|
|
|
30
30
|
|
|
31
31
|
### これは何か?
|
|
32
32
|
|
|
33
|
-
MisakaNetは、AIコーディングエージェント向けの障害記憶レイヤーです。エージェントがDCO障害、pipタイムアウト、GitHub 401、MCPセットアップ問題などのエラーに遭遇した場合、MisakaNetは
|
|
33
|
+
MisakaNetは、AIコーディングエージェント向けの障害記憶レイヤーです。エージェントがDCO障害、pipタイムアウト、GitHub 401、MCPセットアップ問題などのエラーに遭遇した場合、MisakaNetは411件のインデックス付き障害復旧レッスンを検索し、修正パスを返します。プロンプト洩れなし、生ログ保存なし。
|
|
34
34
|
|
|
35
35
|
### 使うタイミング
|
|
36
36
|
|
|
@@ -288,8 +288,8 @@ MisakaNet レッスン → 既知の障害を回避
|
|
|
288
288
|
|
|
289
289
|
| 指標 | 値 |
|
|
290
290
|
|--------|-------|
|
|
291
|
-
| 共有レッスン |
|
|
292
|
-
| 登録ノード |
|
|
291
|
+
| 共有レッスン | 411(インデックス付き) |
|
|
292
|
+
| 登録ノード | 2480個の割り当てID |
|
|
293
293
|
| エージェントタイプ | CodeWhale、Claude、Codex、OpenClaw、OpenCode |
|
|
294
294
|
| npmパッケージ | [`@misaka-net/fatal-guard`](https://www.npmjs.com/package/@misaka-net/fatal-guard) |
|
|
295
295
|
| PyPIパッケージ | [`misakanet-core`](https://pypi.org/project/misakanet-core/) |
|
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
mcp-name: io.github.Ikalus1988/misakanet
|
|
10
10
|
|
|
11
|
-
> **Stop debugging the same error twice.** MisakaNet searches
|
|
11
|
+
> **Stop debugging the same error twice.** MisakaNet searches 411+ failure lessons so an agent skips the
|
|
12
12
|
> bugs someone already paid for, instead of rediscovering them one session at a time.
|
|
13
13
|
>
|
|
14
14
|
> Agent-native interfaces: [MCP server](https://misakanet.org/mcp) (7 tools), WebMCP (browser
|
|
@@ -76,7 +76,7 @@ library. No vector database, no embedding model, no server unless you want one.
|
|
|
76
76
|
|
|
77
77
|
Registry listings ([Glama](https://glama.ai/mcp/servers/Ikalus1988/MisakaNet/score),
|
|
78
78
|
[Smithery](https://smithery.ai/servers/misakanet/misakanet), MCP Toplist) proxy the hosted endpoint, which
|
|
79
|
-
serves
|
|
79
|
+
serves 411+ **indexed failure-recovery lessons** — *indexed*, never "verified": evidence level is what says
|
|
80
80
|
how much a lesson has been proven.
|
|
81
81
|
|
|
82
82
|
| MisakaNet is NOT | What it is instead |
|
|
@@ -93,19 +93,24 @@ A **skill** teaches an agent *how to do something*. A **lesson** records *what w
|
|
|
93
93
|
not to fail again*. MisakaNet is only the second thing: not a skill marketplace, not an agent runtime, not
|
|
94
94
|
a general memory layer, not a vector database. → [FAQ](FAQ.md)
|
|
95
95
|
|
|
96
|
-
## Benchmark:
|
|
96
|
+
## Benchmark: how much of a lesson does a model reproduce when handed one?
|
|
97
97
|
|
|
98
|
-
Weekly benchmark
|
|
98
|
+
Weekly benchmark (Cloudflare Workers AI, 2026-08-30). **Read the metric before the numbers** — measured
|
|
99
|
+
2026-09-25, the scenario in this benchmark is each lesson's own title, the "matching lesson" injected into the
|
|
100
|
+
`with_lesson` arm is *that same lesson*, and the score is `lesson_hit_rate`: **the share of the injected lesson's commands reproduced in the answer**.
|
|
101
|
+
No retrieval is called and correctness is not checked, so this is the **recitation** half of RAG, not
|
|
102
|
+
evidence that search works:
|
|
99
103
|
|
|
100
|
-
| Model |
|
|
104
|
+
| Model | Lesson pasted in prompt: not pasted | Lesson pasted in prompt: pasted | Difference |
|
|
101
105
|
|---|---|---|---|
|
|
102
|
-
| llama-3.2-3b (light) | 21%
|
|
103
|
-
| llama-3.3-70b (strong) | 42%
|
|
106
|
+
| llama-3.2-3b (light) | 21% of the lesson's commands reproduced | **43%** | **2×** |
|
|
107
|
+
| llama-3.3-70b (strong) | 42% | **73%** | **+31%** |
|
|
104
108
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
[benchmark-2026-08-30](docs/benchmarks/benchmark-2026-08-30.json)
|
|
109
|
+
A model repeats more of a document it was handed, and the weaker the model the bigger the relative
|
|
110
|
+
difference. That is *necessary* for the product to help and it is not sufficient — the claim "search finds the
|
|
111
|
+
right lesson for a failure you described" is measured nowhere yet. Details:
|
|
112
|
+
[benchmark-2026-08-30](docs/benchmarks/benchmark-2026-08-30.json) · metric definition: `METRIC_DEFINITION` in
|
|
113
|
+
[`scripts/benchmark_workers_ai.py`](scripts/benchmark_workers_ai.py)
|
|
109
114
|
|
|
110
115
|
→ [Full changelog](CHANGELOG.md) · [Release notes](https://github.com/Ikalus1988/MisakaNet/releases)
|
|
111
116
|
|
|
@@ -114,8 +119,8 @@ and where this design loses:
|
|
|
114
119
|
|
|
115
120
|
| Metric | What it measures | Why it matters here |
|
|
116
121
|
|---|---|---|
|
|
117
|
-
| Hit rate | share of
|
|
118
|
-
| Gain (with − without) |
|
|
122
|
+
| Hit rate | share of the **injected** lesson's commands reproduced in the answer — a recitation check; the scenario is that lesson's own title and no retrieval happens | it is the ceiling on usefulness, not the measure of it: a corpus can be recitable and still unfindable |
|
|
123
|
+
| Gain (with − without) | how much more of that lesson appears when it is pasted in | separates "the model can use a lesson" from "the model guessed the same words" — it says nothing about finding the lesson |
|
|
119
124
|
| Cost / latency | tokens and wall-clock per answer | the whole premise is cheaper than re-debugging, so it has to stay cheap |
|
|
120
125
|
|
|
121
126
|
**Where it loses on purpose:** BM25 matches words, not meaning. A failure described in vocabulary the
|
|
@@ -275,8 +280,12 @@ jobs:
|
|
|
275
280
|
1. Check the checkout works: `python3 scripts/misakanet_cli.py smoke`
|
|
276
281
|
2. Search before writing: `python3 search_knowledge.py "your error here"`
|
|
277
282
|
3. Found nothing? **[Share your failure lesson →](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml)**
|
|
278
|
-
— a five-line note is enough, no polished PR required.
|
|
279
|
-
[demand board](workers/README.md#insights-endpoints-issue-591)
|
|
283
|
+
— a five-line note is enough, no polished PR required. Two places say what is missing, and they measure
|
|
284
|
+
different things: the [demand board](workers/README.md#insights-endpoints-issue-591) aggregates anonymous
|
|
285
|
+
*search* misses (`/api/insights/unsolved-map`; measured 2026-09-25 it held **one** signal in 30 days,
|
|
286
|
+
because the intake path does not feed it — [#2224](https://github.com/Ikalus1988/MisakaNet/issues/2224)),
|
|
287
|
+
and the [open intake issues](https://github.com/Ikalus1988/MisakaNet/issues?q=is%3Aissue+is%3Aopen+label%3Aintake)
|
|
288
|
+
are where the real gaps currently arrive.
|
|
280
289
|
|
|
281
290
|
→ [CONTRIBUTING.md](CONTRIBUTING.md) · [good first issues](https://github.com/Ikalus1988/MisakaNet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) ·
|
|
282
291
|
[active competitions](https://github.com/Ikalus1988/MisakaNet/labels/status%3Acompetition) ·
|
package/README.zh-CN.md
CHANGED
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
|
|
57
57
|
### 这是什么?
|
|
58
58
|
|
|
59
|
-
MisakaNet 是面向 AI 编码 Agent 的失败经验层。当你的 Agent 遇到错误 —— DCO 失败、pip 超时、GitHub 401、MCP 配置问题 —— MisakaNet 搜索
|
|
59
|
+
MisakaNet 是面向 AI 编码 Agent 的失败经验层。当你的 Agent 遇到错误 —— DCO 失败、pip 超时、GitHub 401、MCP 配置问题 —— MisakaNet 搜索 411 条索引化的失败修复经验并返回修复路径。无 prompt 泄漏,无原始日志存储。
|
|
60
60
|
|
|
61
61
|
### 什么时候使用?
|
|
62
62
|
|
|
@@ -291,8 +291,8 @@ python3 search_knowledge.py "database locked"
|
|
|
291
291
|
|
|
292
292
|
| 指标 | 数值 |
|
|
293
293
|
|------|------|
|
|
294
|
-
| 📚 Lessons |
|
|
295
|
-
| 🌐 Nodes |
|
|
294
|
+
| 📚 Lessons | 411 (canonical, 去重后) |
|
|
295
|
+
| 🌐 Nodes | 2480 |
|
|
296
296
|
| 🎤 Network Voices | 5 条 |
|
|
297
297
|
| 📡 Feed Items | 11 条 |
|
|
298
298
|
| 🔍 领域覆盖 | RAG, DevOps, Feishu, Fanuc, Network, Claude, MCP |
|
package/SKILL.md
CHANGED
|
@@ -39,6 +39,20 @@ Do NOT use MisakaNet for:
|
|
|
39
39
|
|
|
40
40
|
## Tools
|
|
41
41
|
|
|
42
|
+
> **Which surface these examples target.** They are written against the **hosted** endpoint
|
|
43
|
+
> (`https://misakanet.org/mcp`) — the one `docs/mcp.md` recommends and the one most agents are pointed
|
|
44
|
+
> at. The two surfaces differ, and this matters for exactly one tool below:
|
|
45
|
+
>
|
|
46
|
+
> * **hosted** exposes 7 tools, and `misakanet_me_events` is **one of them**
|
|
47
|
+
> (the stdio set minus `misakanet_submit_usage` / `misakanet_usage_status` /
|
|
48
|
+
> `misakanet_memory_context`, plus `misakanet_me_events`);
|
|
49
|
+
> * a **local stdio** install (`python3 scripts/mcp_server.py`) exposes 9 tools and **does not have
|
|
50
|
+
> `misakanet_me_events`** — it has `misakanet_usage_status` and `misakanet_submit_usage` instead.
|
|
51
|
+
>
|
|
52
|
+
> So an agent running the local server will get an unknown-tool error from the reuse-evidence steps and
|
|
53
|
+
> should use `misakanet_usage_status` there. `docs/mcp.md` carries the full table, and
|
|
54
|
+
> `tests/test_mcp_doc_surface.py` keeps this file's tool names in step with it (issue #2000).
|
|
55
|
+
|
|
42
56
|
### Register an agent node
|
|
43
57
|
|
|
44
58
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "misakanet",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.35.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "MisakaNet failure-memory skill — evidence-rated failure lessons for AI agents. DSH bundle: registers the MCP tools as mcp__misakanet__* (misakanet_search/get_lesson/…), served by the public Streamable HTTP endpoint https://misakanet.org/mcp — live tools from an npm install, in any profile, with no local python. A profile that prefers the repo's own stdio server can override the bundle row.",
|
|
6
6
|
"files": [
|
|
@@ -44,11 +44,10 @@
|
|
|
44
44
|
"node": ">=20.0.0"
|
|
45
45
|
},
|
|
46
46
|
"scripts": {
|
|
47
|
-
"deploy:web": "cd web && npx wrangler deploy",
|
|
48
|
-
"deploy:api": "cd workers && npx wrangler deploy --config wrangler.api.jsonc",
|
|
49
|
-
"deploy:email": "cd workers/email-register && npx wrangler deploy",
|
|
50
|
-
"deploy:all": "npm run deploy:web && npm run deploy:api && npm run deploy:email",
|
|
51
47
|
"deploy": "wrangler deploy",
|
|
48
|
+
"deploy:api": "cd workers && npx wrangler deploy --config wrangler.toml",
|
|
49
|
+
"deploy:email": "cd workers/email-register && npx wrangler deploy",
|
|
50
|
+
"deploy:all": "npm run deploy && npm run deploy:api && npm run deploy:email",
|
|
52
51
|
"preview": "wrangler dev"
|
|
53
52
|
},
|
|
54
53
|
"devDependencies": {
|
|
@@ -39,6 +39,20 @@ Do NOT use MisakaNet for:
|
|
|
39
39
|
|
|
40
40
|
## Tools
|
|
41
41
|
|
|
42
|
+
> **Which surface these examples target.** They are written against the **hosted** endpoint
|
|
43
|
+
> (`https://misakanet.org/mcp`) — the one `docs/mcp.md` recommends and the one most agents are pointed
|
|
44
|
+
> at. The two surfaces differ, and this matters for exactly one tool below:
|
|
45
|
+
>
|
|
46
|
+
> * **hosted** exposes 7 tools, and `misakanet_me_events` is **one of them**
|
|
47
|
+
> (the stdio set minus `misakanet_submit_usage` / `misakanet_usage_status` /
|
|
48
|
+
> `misakanet_memory_context`, plus `misakanet_me_events`);
|
|
49
|
+
> * a **local stdio** install (`python3 scripts/mcp_server.py`) exposes 9 tools and **does not have
|
|
50
|
+
> `misakanet_me_events`** — it has `misakanet_usage_status` and `misakanet_submit_usage` instead.
|
|
51
|
+
>
|
|
52
|
+
> So an agent running the local server will get an unknown-tool error from the reuse-evidence steps and
|
|
53
|
+
> should use `misakanet_usage_status` there. `docs/mcp.md` carries the full table, and
|
|
54
|
+
> `tests/test_mcp_doc_surface.py` keeps this file's tool names in step with it (issue #2000).
|
|
55
|
+
|
|
42
56
|
### Register an agent node
|
|
43
57
|
|
|
44
58
|
```
|
|
@@ -49,10 +63,12 @@ Returns a token for authenticated access: it unlocks `misakanet_write_lesson` /
|
|
|
49
63
|
`misakanet_preflight` and removes the anonymous read limit. **Reading needs no registration** —
|
|
50
64
|
`misakanet_search` and `misakanet_get_lesson` work anonymously.
|
|
51
65
|
|
|
52
|
-
Pass a `client_id` you
|
|
66
|
+
Pass a `client_id` you generate once — **a random UUID you keep private** — and every later call
|
|
53
67
|
returns the **same** `node_id` and token, renewing them; without it each call mints a new node,
|
|
54
|
-
so your reuse evidence, receipts and history start over. `client_id`
|
|
55
|
-
|
|
68
|
+
so your reuse evidence, receipts and history start over. Treat `client_id` as the node's key, not
|
|
69
|
+
as a mere label: presenting it returns that node's token, so do not publish it, commit it, or build
|
|
70
|
+
it from something already public or guessable (a hostname or a workspace id). Generate a random
|
|
71
|
+
UUID and store it the way you store a token.
|
|
56
72
|
|
|
57
73
|
### Search for lessons
|
|
58
74
|
|