misakanet 2.41.1 → 2.41.3

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "misakanet",
3
- "version": "2.41.1",
3
+ "version": "2.41.3",
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
@@ -6,400 +6,440 @@
6
6
 
7
7
  # MisakaNet
8
8
 
9
- > **AIコーディングエージェント向けGitバックアップ障害記憶。**
10
- >
11
- > 依存関係ゼロ。サーバー不要。データベース不要。
12
- > エラーを貼り付ける → レッスンを検索 → 修正パスを取得(件数は上部のLessonsバッジ)。
13
-
14
9
  mcp-name: io.github.Ikalus1988/misakanet
15
10
 
11
+ > **同じエラーを二度とデバッグしなくていい。** MisakaNet はインデックス済みの障害レッスンを検索するので、エージェントは
12
+ > 誰かがすでに代償を支払ったバグを、セッションごとに一つずつ再発見せずに済みます —— 上部の **Lessons**
13
+ > バッジが現在のコーパス規模です。
14
+ >
15
+ > エージェントネイティブなインターフェース: [MCP サーバー](https://misakanet.org/mcp)(7 ツール)、WebMCP(ブラウザの
16
+ > `navigator.modelContext`)、`llms.txt` / `llms-full.txt`、そして `.well-known/agent-card.json` 経由の A2A ディスカバリー。
17
+
16
18
  <p align="center">
17
19
  <img src="promotional/misaka-compare.jpg" width="720" alt="MisakaNet — Before: 30+ min manual debugging vs After: 0.02s with MCP"/>
18
20
  </p>
19
21
 
20
- [![CI](https://github.com/Ikalus1988/MisakaNet/actions/workflows/pr-quality-gate.yml/badge.svg)](https://github.com/Ikalus1988/MisakaNet/actions/workflows/pr-quality-gate.yml)
21
- [![Lessons](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Ikalus1988/MisakaNet/data/badges/lessons.json)](https://github.com/Ikalus1988/MisakaNet/tree/main/lessons)
22
- [![PyPI](https://img.shields.io/pypi/v/misakanet-core)](https://pypi.org/project/misakanet-core/)
23
- [![Python](https://img.shields.io/badge/python-3.10+-blue)](https://www.python.org/downloads/)
24
- [![License](https://img.shields.io/github/license/Ikalus1988/MisakaNet?style=flat&color=blueviolet)](https://github.com/Ikalus1988/MisakaNet/blob/main/LICENSE)
25
- [![GitHub Marketplace](https://img.shields.io/badge/Marketplace-MisakaNet%20Intake%20Bot-blue?logo=github)](https://github.com/marketplace/actions/misakanet-intake-bot)
26
- [![Glama score](https://glama.ai/mcp/servers/Ikalus1988/MisakaNet/badges/score.svg)](https://glama.ai/mcp/servers/Ikalus1988/MisakaNet/score)
27
- [![MCP Quickstart](https://img.shields.io/badge/MCP-quickstart-green)](docs/mcp-quickstart.md)
28
- [![Stars](https://img.shields.io/github/stars/Ikalus1988/MisakaNet?style=social)](https://github.com/Ikalus1988/MisakaNet/stargazers)
29
- [![MCP Toplist](https://mcptoplist.com/badge/io.github.Ikalus1988%2Fmisakanet.svg)](https://mcptoplist.com/server/io.github.Ikalus1988%2Fmisakanet)
22
+ <p align="center">
23
+ <em>Core</em>
24
+ &nbsp;&nbsp;
25
+ <a href="https://github.com/Ikalus1988/MisakaNet/actions/workflows/pr-quality-gate.yml"><img src="https://github.com/Ikalus1988/MisakaNet/actions/workflows/pr-quality-gate.yml/badge.svg" alt="CI"></a>
26
+ <a href="https://github.com/Ikalus1988/MisakaNet/tree/main/lessons"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Ikalus1988/MisakaNet/data/badges/lessons.json" alt="Lessons"></a>
27
+ <a href="https://github.com/Ikalus1988/MisakaNet/blob/main/scripts/mcp_server.py"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Ikalus1988/MisakaNet/data/badges/tools.json" alt="MCP Tools"></a>
28
+ <a href="https://misakanet.org/api/search-index"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Ikalus1988/MisakaNet/data/badges/retrieval.json" alt="Retrieval backend (today)"></a>
29
+ <a href="https://github.com/Ikalus1988/MisakaNet/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Ikalus1988/MisakaNet?color=blueviolet" alt="License"></a>
30
+ <a href="https://github.com/Ikalus1988/MisakaNet/stargazers"><img src="https://img.shields.io/github/stars/Ikalus1988/MisakaNet?style=social" alt="Stars"></a>
31
+ </p>
32
+
33
+ <p align="center">
34
+ <em>Install</em>
35
+ &nbsp;&nbsp;
36
+ <a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.10+-blue" alt="Python"></a>
37
+ <a href="https://pypi.org/project/misakanet/"><img src="https://img.shields.io/pypi/v/misakanet" alt="PyPI"></a>
38
+ <a href="https://www.npmjs.com/package/misakanet"><img src="https://img.shields.io/npm/v/misakanet" alt="npm"></a>
39
+ <a href="https://github.com/marketplace/actions/misakanet-intake-bot"><img src="https://img.shields.io/badge/Marketplace-MisakaNet%20Intake%20Bot-blue?logo=github" alt="GitHub Marketplace"></a>
40
+ <a href="https://dsh-plugin.org/plugins/ikalus1988/misakanet"><img src="https://dsh-plugin.org/badges/listed.svg" alt="Listed on dsh-plugin.org"></a>
41
+ <a href="https://dsh.directory/plugins/ikalus1988/misakanet"><img src="https://dsh.directory/badges/listed.svg" alt="Listed on DSH Directory"></a>
42
+ <a href="https://www.dsh.so/artifact/misakanet/"><img src="https://www.dsh.so/badge/install/misakanet.svg" alt="dsh.so install"></a>
43
+ </p>
44
+
45
+ <p align="center">
46
+ <em>Ecosystem</em>
47
+ &nbsp;&nbsp;
48
+ <a href="https://glama.ai/mcp/servers/Ikalus1988/MisakaNet/score"><img src="https://glama.ai/mcp/servers/Ikalus1988/MisakaNet/badges/score.svg" alt="Glama score"></a>
49
+ <a href="https://glama.ai/mcp/connectors/org.misakanet/misaka-net"><img src="https://glama.ai/mcp/connectors/org.misakanet/misaka-net/badges/score.svg" alt="MisakaNet MCP connector – tool definition quality and endpoint health on Glama"></a>
50
+ <a href="https://mcptoplist.com/server/io.github.Ikalus1988%2Fmisakanet"><img src="https://mcptoplist.com/badge/io.github.Ikalus1988%2Fmisakanet.svg" alt="MCP Toplist"></a>
51
+ <!-- Smithery バッジは shields.io の 'endpoint' バッジを使い、Kin スコアを
52
+ data/badges/smithery.json から動的に読み取ります。update-smithery-badge
53
+ ワークフローが毎日更新するので、手動 PR なしでも同期が保たれます。 -->
54
+ <a href="https://smithery.ai/servers/misakanet/misakanet"><img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Ikalus1988/MisakaNet/refs/heads/data/badges/smithery.json" alt="Smithery"></a>
55
+ <!-- HOL バッジ: リンクは hol.org を指し続けます(その掲載判定は README 内のバッジを
56
+ 探しており、信頼度 +2% に相当)。ただし画像は静的なフラットシールドで、
57
+ 稼働中の hol.org/api/... エンドポイントは shields.io 経由で遅く不安定で、
58
+ "inaccessible" 表示になる、または for-the-badge とは違う見た目で描画されます。 -->
59
+ <a href="https://hol.org/registry/plugins/Ikalus1988%2FMisakaNet"><img src="https://img.shields.io/badge/HOL%20Registry-listed-5599FE?style=flat" alt="MisakaNet on HOL Registry"></a>
60
+ <a href="https://github.com/Ikalus1988/MisakaNet/tree/main/docs/benchmarks"><img src="https://img.shields.io/badge/Benchmark-Weekly%20Workers%20AI-blue" alt="Benchmark"></a>
61
+ </p>
30
62
 
31
63
  ---
32
64
 
33
- ### これは何か?
65
+ ## インストール(30秒)
34
66
 
35
- MisakaNetは、AIコーディングエージェント向けの障害記憶レイヤーです。エージェントがDCO障害、pipタイムアウト、GitHub 401、MCPセットアップ問題などのエラーに遭遇した場合、MisakaNetはインデックス付き障害復旧レッスンを検索し、修正パスを返します。プロンプト洩れなし、生ログ保存なし。
67
+ | ご利用の環境 | コマンド |
68
+ |---|---|
69
+ | **DeepSeek Harness** | `dsh plugin --profile web add misakanet` — あるいはホストの **Add plugin** ダイアログで `misakanet` と入力 |
70
+ | **Claude Code** | `/plugin marketplace add Ikalus1988/MisakaNet` ののち `/plugin install misakanet@misakanet` |
71
+ | **Codex、Cursor、Gemini CLI、Copilot CLI、OpenCode など** | `npx @misaka-net/misakanet-setup` — 各ホスト自身の設定に MCP の行を書き込む |
72
+ | **その他の MCP クライアント** | `https://misakanet.org/mcp` を指定する — エンドポイントは公開されており、読み取りは匿名 |
73
+ | **自前のコード** | `pip install misakanet-core`(ライブラリ) · `pip install misakanet`(stdio サーバー) |
36
74
 
37
- ### 使うタイミング
75
+ <p align="center">
76
+ <img src="docs/assets/dsh-plugin-add.png" width="760" alt="DeepSeek Harness のプラグインページ: (1) サイドバーのプラグインアイコン、(2) 添加插件 (Add plugin) ボタン、(3) パッケージ名 misakanet を入力した Add-plugin ダイアログ"/>
77
+ </p>
38
78
 
39
- - Cursor / Claude Code / Codexが見たことのないエラーに遭遇した時
40
- - CIが失敗して原因がわからない時
41
- - DCO、トークン、pip、MCP、エンコーディング問題がプロジェクト間で繰り返される時
79
+ <p align="center"><em>DeepSeek Harness: サイドバーの <b>插件</b> (1) → <b>添加插件</b> (2) → <code>misakanet</code> を入力 (3) → <b>安装</b>。<br/>ダイアログは上の CLI コマンドと同じパッケージ名を受け付けます(ダイアログ自身のヒント: パッケージ名、GitHub の URL、またはローカルパス)。</em></p>
42
80
 
43
- ### 30秒で試す
81
+ 更新: `dsh plugin --profile web update misakanet@latest`。
82
+ インストーラー自体の更新: `npx @misaka-net/misakanet-setup@latest`(独自のコマンド、独自のフラグ)。
44
83
 
45
- **リモートMCP(推奨):**
84
+ プラグイン経路ではアカウント不要、トークン不要、Python も不要です: npm バンドルがホストされたエンドポイントをマウントします。
85
+ 宣言されているホストと実際に測定した内容: [compatibility](docs/compatibility.md)。各チャネル、前提条件、そして人から
86
+ インストールを代償させる「2つのパッケージの罠」: [使い方](#使い方)。
46
87
 
47
- 1. https://misakanet.org/connect を開く → コードを生成
48
- 2. MCP設定に追加:
88
+ ## DeepSeek Harness プラグインが追加するもの
49
89
 
50
- ```json
51
- {
52
- "mcpServers": {
53
- "misakanet": {
54
- "url": "https://misakanet.org/mcp",
55
- "headers": { "Authorization": "Bearer YOUR_TOKEN" }
56
- }
57
- }
58
- }
59
- ```
90
+ バージョン 2.40.0 がブラウザ側を出荷し、2.41.0 がその残りを加えます。以下の面がすべて同じリリースで届いたわけでは
91
+ ないので、このセクションでは、それぞれの面を担っているバージョンごとに列挙します。ダイアログを足すのではありません。
92
+ MisakaNet を、すでにセッションが存在する場所に据えます。
60
93
 
61
- 3. 「MisakaNetでデータベースロックを検索」と依頼
94
+ **2.40.0 で公開済み。** 以下の 6 つの席が、いま `npm view misakanet version` で得られるものです。
62
95
 
63
- → [フルクイックスタート(ローカルMCP、CLI、Docker)](docs/quickstart.md) · [トラブルシューティング](docs/troubleshooting.md)
96
+ | 場所 | 得られるもの |
97
+ | --- | --- |
98
+ | **左カラム** | `Plugins` の直下に常設する `MisakaNet` エントリ。パネルへのショートカットであり、クリックするとメインカラムに全画面が開きます。ルートスコープなので、セッションによって出たり消えたりはしません。 |
99
+ | **会話タブ** | Chat と Trajectory のとなりに `MisakaNet` タブが付きます。このセッションが何を問い合わせ、何が返り、何を記録したかを、会話自身の行から組み立て直して表示します。 |
100
+ | **右カラム** | 同じパネルをペインとして配置するので、ファイルツリー・ターミナル・ドキュメントのとなりに置けます。 |
101
+ | **ツール呼び出しの行** | `misakanet_search` と `misakanet_submit_intake` の呼び出しごとに、ツールカード上に専用の行ができます。送信されたクエリそのもの、レッスンが返ったかどうか、そして先頭にあるレッスンはどれか。生の結果はひとつ開けば見えます。この行は報告するだけで投稿しません。投票は下の回答側のアクション行に付きます。 |
102
+ | **アシスタントのアクション行** | レッスンを使った回答に 👍 / 👎。このページが送信するのはこの二つだけです。カウンタはサーバーではなくブラウザに置かれます。 |
103
+ | **音声** | 既定ではオフのスイッチで、二つの仕組みを説明します。サーバーが次回の検索で名指しする合図と、ページからは読めないローカルのフック。 |
64
104
 
65
- ### GitHub Action として使う
105
+ <p align="center">
106
+ <img src="docs/assets/dsh-client-left-column.png" width="820" alt="DeepSeek Harness: 左カラムの Plugins の下に常設する MisakaNet エントリと、それが開く全画面"/>
107
+ </p>
66
108
 
67
- CI が失敗したときに自動でレッスンを探す:ワークフローが失敗すると、action がコーパスを検索し、
68
- 最も近いレッスンを PR にコメントします(任意で新しいエラーを報告し、誰かがレッスン化します)。
69
- [GitHub Marketplace](https://github.com/marketplace/actions/misakanet-intake-bot) に掲載中。
109
+ <p align="center">
110
+ <img src="docs/assets/dsh-client-right-panel.png" width="820" alt="DeepSeek Harness のセッションの右カラムにある MisakaNet ペイン"/>
111
+ </p>
70
112
 
71
- ```yaml
72
- on:
73
- workflow_run:
74
- workflows: ["CI"] # 自分の CI ワークフロー名に置き換える
75
- types: [completed]
76
- permissions:
77
- actions: read # 失敗した job のログを読む(必須)
78
- pull-requests: write # コメントを投稿
79
- issues: write # コメント API は issues.createComment
80
- jobs:
81
- intake:
82
- if: ${{ github.event.workflow_run.conclusion == 'failure' }}
83
- runs-on: ubuntu-latest
84
- steps:
85
- - uses: Ikalus1988/MisakaNet@v1
86
- with:
87
- mode: suggest-only # suggest-and-intake なら新規エラーも報告
88
- source: ${{ github.repository }}
89
- ```
113
+ **2.41.0 で追加 — [リリース PR #2591](https://github.com/Ikalus1988/MisakaNet/pull/2591)。** 以下の 6 つの面は
114
+ `main` に入っており 2.41.0 で出荷されます。2.40.0 を入れた環境にはまだありません。
90
115
 
91
- > `actions: read` は省略できません。`permissions:` を書いた時点で、記載のない scope は
92
- > `none` になり、ログが読めないまま「緑だが何も投稿しない」状態になります。この権限を
93
- > 与えられない場合は `error:` でエラーテキストを明示的に渡してください。
116
+ | 場所 | 得られるもの |
117
+ | --- | --- |
118
+ | **コンポーザーの `/misakanet`** | `/misakanet pip install timeout` と入力して Enter を押すだけ。レッスンがコンポーザー内のカードとして返り、エージェントは介在しません。送信されるのはクエリだけです。 |
119
+ | **フレーム全体のトースト** | `/misakanet` の検索がレッスンを返すと、先頭ヒットを載せたカードが全カラムを覆って表示され、閉じるかレッスンまでクリックで進めます。 |
120
+ | **サイドバーの下部** | Settings の隣に 1 つのアクション。このセッションの MisakaNet 活動を、Issue や PR 本文向けに要約としてコピーします。 |
121
+ | **中文 / English** | すべての MisakaNet 面がホストの言語に従います。パネル、`/misakanet` カード、設定行、そしてプラグインページ自身のタイトルと説明。 |
122
+ | **Settings → General** | MisakaNet の設定行。このブラウザで音声合図を鳴らすかどうかと、面を表示する細かさ(コンパクト / フル)。どちらもブラウザ内に留まります。 |
123
+ | **プラグインページ** | MCP の行が実際に使う設定、エンドポイント・トランスポート・タイムアウトを、読み取り専用で表示します。設定の編集場所(プロファイルの `cordis.patch.yml`)のそばに置いてあります。 |
94
124
 
95
- → [入力と出力の一覧](docs/agents/external-usage.md)
125
+ どちらの側がどの席を持ち、なぜ `root` か `session` スコープなのかを、ホスト自身の契約文の引用付きで:
126
+ [compatibility](docs/compatibility.md)。自分のホストを動かしていて、プロファイルに触れない確認がほしい場合:
127
+ `python3 scripts/install_smoke.py dsh-client --serve`。
96
128
 
97
- ### 8秒で見る
129
+ ## MisakaNet とは?
98
130
 
99
- ![Search lesson demo](promotional/search%20lesson.gif)
131
+ **Git に支えられた、AI コーディングエージェント向けの障害記憶。** エラーが出る → エージェントがレッスンを検索 →
132
+ 誰かがすでに検証した修正を適用 → どれも合致しなければ、intake がその行き止まりを次のエージェント向けのレッスンに変える。
133
+ すべてのレッスンはこのリポジトリの Markdown ファイルです。コードと同じようにレビューされ(各コミットは DCO 署名)、
134
+ エビデンスレベルで格付けされ、Python 標準ライブラリだけで BM25 による検索が走ります。ベクトルデータベースも、
135
+ 埋め込みモデルも、サーバーも不要です(ほしい場合だけ用意してください)。
136
+
137
+ | | |
138
+ |---|---|
139
+ | **Lessons** | 障害復旧の知識ベース。`lessons/` の下で公開され、監査できます |
140
+ | **Domains** | rag · devops · fanuc · docker · feishu · mcp · network · ci · wsl · windows … |
141
+ | **Evidence levels** | E0 intake → E1 CI → E2 マージ済み PR → E3 メンテナー → E4 本番での再利用 |
100
142
 
101
- ### これではないもの
143
+ レジストリの掲載先([Glama](https://glama.ai/mcp/servers/Ikalus1988/MisakaNet/score)、
144
+ [Smithery](https://smithery.ai/servers/misakanet/misakanet)、MCP Toplist)はホストされたエンドポイントを中継するだけで、
145
+ そのエンドポイントは **インデックス済みの障害復旧レッスン** を配信します。*インデックス済み* であり「検証済み」では
146
+ ありません。レッスンがどれだけ立証されているかを示すのがエビデンスレベルです。
102
147
 
103
- | MisakaNetは ❌ これではない | 代わりに ✅ これである |
148
+ | MisakaNet は ❌ ではない | 代わりに ✅ こちらです |
104
149
  |------------------|-------------------|
105
150
  | ❌ 汎用メモリシステム | ✅ 障害復旧知識レイヤー |
106
- | ❌ エージェントランタイムまたはフレームワーク | ✅ 検索可能なレッスンデータベース |
107
- | ❌ ベクトルデータベースまたはRAGシステム | ✅ BM25キーワード検索(依存関係ゼロ) |
151
+ | ❌ エージェントのランタイムやフレームワーク | ✅ 検索可能なレッスンデータベース |
152
+ | ❌ ベクトルデータベースや RAG システム | ✅ BM25 キーワード検索 — **標準ライブラリのみ**、サードパーティパッケージなし。ただし **Python 3.10 以降のインタプリタ自体は必要です** |
108
153
  | ❌ サインアップが必要なクラウドサービス | ✅ `git clone` → ローカルで検索 |
109
- | ❌ スキルマーケットプレイス | ✅ 実際のセッションからのデバッグ知識 |
110
-
111
- > **MisakaNetは1つのこと専用に構築されています:** エージェントが既知の障害を繰り返すのを防ぐこと。
112
- > これは汎用メモリレイヤーでもランタイムでもベクトルデータベースでもありません。
154
+ | ❌ スキルマーケットプレイス | ✅ 実セッションから得たデバッグ知識 |
113
155
 
114
156
  ### 答えてくれること、答えてくれないこと
115
157
 
116
158
  ![4コマ漫画:マスコットは「すべてのAIエラーを防げる」と約束するが、猫がピザと石油缶を尋ねるとしょげてしまい、別の猫が npm ERESOLVE を見せると目を輝かせる。MisakaNet が知っているのは収録済みの障害であり、一般知識ではない。](promotional/misakanet-scope-comic.webp)
117
159
 
118
- 答えてくれるのは**収録済みの障害**であり、一般知識ではありません。見つからない場合は `no_match` と、
119
- そのまま呼び出せる `intake` の案内が返ります —— 未ヒットはギャップが記録される経路そのものなので、
120
- これもまた答えです。
121
-
122
- ### v2.16.0の新機能
123
-
124
- | 機能 | 説明 |
125
- |---------|-------------|
126
- | **リモートMCP** | `https://misakanet.org/mcp`のStreamable HTTPエンドポイント — クローン不要 |
127
- | **ペアリングコード** | トークンレスオンボーディング用の1回限り6文字コード([/connect](https://misakanet.org/connect)) |
128
- | **アイデンティティオーラ** | 静的/ペアリング/アップグレードトークンの視覚的バッジ |
129
- | **音声プロンプト** | 日本語MP3音声フィードバック(オプトイン) |
130
- | **エビデンスレベル** | レッスン品質のE0-E4信頼モデル |
131
- | **未解決マップ** | 障害カバレッジギャップを示すダッシュボード |
132
- | **サイトヘルス** | 監視用の自動スナップショットスクリプト |
160
+ 答えてくれるのは **MisakaNet がインデックス済みの障害** であり、一般知識ではありません。何も見つからないクエリは
161
+ `no_match` と、そのまま呼び出せる intake を返します。未ヒットはギャップが記録される経路そのものなので、
162
+ 未ヒットもまた答えです。
133
163
 
134
- → [フルリリースノート](https://github.com/Ikalus1988/MisakaNet/releases/tag/v2.16.0)
135
-
136
- ### 仕組み
137
-
138
- ```
139
- 1. エージェントがエラーに遭遇(DCO、pip、トークン、MCP、エンコーディング、CI)
140
- ↓
141
- 2. MisakaNetで一致する障害復旧レッスンを検索
142
- ↓
143
- 3. 一致するレッスンを読み込む
144
- ↓
145
- 4. 記載された修正を適用
146
- ↓
147
- 5. 一致するレッスンがない場合、オプトインで削除済み障害レポートをキャプチャ
148
- ↓
149
- 6. メンテナーが受け入れられた寄稿を確認し、ドラフトレッスンに変換
150
- ```
164
+ ### レッスン vs スキル
151
165
 
152
- **障害に困っていますか?** PRを開く前にレッスンを検索:
166
+ **スキル** はエージェントに *何かをする方法* を教える。**レッスン** は *前に何が壊れたか、そして二度と失敗しないためには
167
+ どうするか* を記録する。MisakaNet が担当するのは後者だけです。スキルマーケットプレイスでも、エージェントランタイムでも、
168
+ 汎用メモリレイヤーでも、ベクトルデータベースでもありません。→ [FAQ](FAQ.md)
153
169
 
154
- | 問題 | レッスン |
155
- |---|---|
156
- | 🔴 WindowsでDCO署名が失敗する | [→ dco-auto-fix-workflow](lessons/core/dco-auto-fix-workflow.md) |
157
- | 🔴 pip installタイムアウト/SSLエラー | [→ pip-install-timeout-ssl](lessons/contrib/pip-install-timeout-ssl.md) |
158
- | 🔴 シークスキャン/コミット内のトークン | [→ codeql-alert-dismissal-false-positive](lessons/contrib/codeql-alert-dismissal-false-positive.md) |
159
- | 🔴 GitHub API 401/トークン期限切れ | [→ github-401-credential-lookup](lessons/contrib/github-401-credential-lookup.md) |
170
+ ## ベンチマーク:レッスンを渡したとき、モデルはどれだけを再現するのか
160
171
 
161
- [🔍 すべてのレッスンを検索 →](https://ikalus1988.github.io/MisakaNet/search/)
172
+ 週次ベンチマーク(Cloudflare Workers AI)。**数字の前に、指標の定義を読んでください。** このベンチマークのシナリオは各レッスン自身のタイトルです。
173
+ `with_lesson` アームに注入される「合致したレッスン」は *その同じレッスン* で、スコアは `lesson_hit_rate`、
174
+ つまり **注入されたレッスンのコマンドが、答えの中で再現された割合** です。
175
+ 検索は一切呼ばれず、正当性も検証されません。よってこれは RAG の **暗唱** 側の話であり、検索が機能している証拠ではありません。
162
176
 
163
- 修正が見つかりませんか? [📮 失敗レッスンを共有 →](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml) — 未解決の失敗ファミリーはパブリック[デマンドボード](workers/README.md#insights-endpoints-issue-591)に表示され、寄稿者が次に何を書くべきかを把握できます。
177
+ 最新の集計データ: [`docs/benchmarks/latest.json`](docs/benchmarks/latest.json)(2026-09-22、各 ≈500 シナリオの独立した 2 回の実行):
164
178
 
165
- ---
179
+ | 条件 | 実行 1 のヒット率 | 実行 2 のヒット率 | 平均 | n(1 回あたり) | 実行可能率 |
180
+ |---|---|---|---|---|---|
181
+ | plain(レッスンなし) | 0.239 | 0.233 | **23.3%** | ≈510 | 82–83% |
182
+ | with_lesson(貼り付け) | 0.464 | 0.461 | **46.1%** | ≈512 | 76–77% |
166
183
 
167
- ## スワンKnowledgeプロトコルとは?
184
+ **再現性。** 同一の構成で 2 回実行すると、ヒット率どうしの差は 0.3% 以内に収まります
185
+ (`with_lesson` は 0.464 対 0.461、`plain` は 0.239 対 0.233)。この指標が安定していることの確認になります。
168
186
 
169
- AIエージェント用の**共有経験基盤**。1つのエージェントが障害でスタック → 回避策を文書化 → すべてのエージェントが*同じ障害パスをスキップ*。サーバー不要。データベース不要。デーモン不要。`git clone` + `python3 search_knowledge.py`だけ。
187
+ **集計。** 各実行はコーパス内のすべてのレッスンをシナリオとして評価します。`with_lesson` アームは
188
+ 合致したレッスンをプロンプトに貼り付け、`plain` はレッスンを使いません。`actionable` はシナリオごとの真偽値で、
189
+ モデルが使える答えを出せるかどうかを示します。実行可能率は実行の間で安定しています(レッスンありで 76–77%、plain で 82–83%)。
170
190
 
171
- > 実際には、MisakaNetは個別の読書体験としてではなく、*タスク実行中*のリカバリーレイヤーとして最も価値があります。主な直接ユーザーは通常、人間ではなく**エージェント**です。エージェントは既知の修正を再利用し、将来のタスクが以前解決された障害でスタックするのを軽減します。人間のユーザーは間接的に利益を得る:スタックしたタスクの削減、繰り返されるリカバリーステップの削減、手動介入の削減。
191
+ **推移**(週次スナップショット):
172
192
 
173
- - **レッスン** — 知識の一部。問題 → 根本原因 → 修正 → 検証のMarkdownファイル。
174
- - **ノード** — レッスンに寄稿して検索するAIエージェントまたは開発者。
175
- - **検索** — すべてのレッスンに対するBM25キーワード取得。依存関係ゼロ。Python stdlibのみ。
193
+ | 日付 | with_lesson ヒット率 | plain ヒット率 | n |
194
+ |---|---|---|---|
195
+ | 2026-08-30 | 46.4% | 23.9% | 358 |
196
+ | 2026-08-31 | 49.1% | 25.1% | 398 |
197
+ | 2026-09-06 | 48.3% | 24.1% | 455 |
198
+ | 2026-09-14 | 46.6% | 23.4% | 494 |
199
+ | 2026-09-21 | 46.1% | 23.3% | 512 |
176
200
 
177
201
  ```
178
- ┌──────────┐ ┌──────────────┐ ┌─────────────┐ ┌─────────────────────────┐ ┌─────────┐
179
- │ ノード │ │ ローカル │ │ Git │ │ CI監査パイプライン │ │ メイン │
180
- │ がバグ │────▶│ を検証し │────▶│ にコミット │────▶│ DCO → 品質スコア │────▶│ ブランチ│
181
- │ を捕捉 │ │ フォーマット│ │ してプッシュ│ │ 依存関係 → テスト → 監査│ │ マージ │
182
- └──────────┘ └──────────────┘ └─────────────┘ │ 自動マージ(すべて✅) │ └─────────┘
183
- └─────────────────────────┘
184
- │ │
185
- ▼ ▼
186
- ┌──────────────────┐ ┌──────────────────┐
187
- │ 別のノード │ │ インデックス付き│
188
- │ がBM25 + RRF │◀──────────────────────────────────────│ レッスンが │
189
- │ で検索 │ │ GitHub Pagesに │
190
- └──────────────────┘ │ 公開される │
191
- └──────────────────┘
202
+ with_lesson hit rate (weekly)
203
+ 49.1% │ ▄
204
+ 48.3% │ █ ▄
205
+ 46.6% │ █ █ ▄
206
+ 46.4% │ ▄ █ █ █ ▄
207
+ 46.1% │ █ █ █ █ █
208
+ └──────────────────
209
+ 08 08 09 09 09
210
+ 30 31 06 14 21
192
211
  ```
193
212
 
194
- ### なぜ?
195
-
196
- AIエージェントは異なる環境で同じバグに遭遇します。それぞれがWSLでのpip、NTFSでのChromaDB、FANUCエラーコードを独立してデバッグします。修正は誰かのターミナル履歴に存在し、他の人には見えません。MisakaNetは個々のデバッグセッションを共有で検索可能な知識に変えます。
197
-
198
- ### ここから始める:ジャーニーを選択
199
-
200
- MisakaNetは、試みていることによって異なる方法で有用です:
201
-
202
- | 私は... | ここから始める |
203
- |---|---|
204
- | 🔴 実際の障害をデバッグ中 | リトライ前に[既存レッスンを検索](https://ikalus1988.github.io/MisakaNet/search/) |
205
- | 🤖 AIエージェント/ツールを構築中 | ワークフロー用の[障害記憶](docs/mcp-quickstart.md)としてレッスンを使用 |
206
- | 🔧 修正を寄稿中 | [CONTRIBUTING.md](CONTRIBUTING.md)でコードスタイル+PRチェックリストを確認、[関連レッスン](https://ikalus1988.github.io/MisakaNet/search/)を確認してから小PRを開く |
207
- | 📝 失敗ケースを共有中 | [5行の失敗ノート](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml)を送信 — ポリッシュされたPRは不要 |
208
- | 📊 エージェント学習を評価中 | [ベンチマーク](scripts/retrieval_noisebench.py)を実行し、再利用行動を比較 |
209
- | 💬 摩擦を報告中 | [メールインテイク](docs/email-intake.md)または[ジャーニーレポート#510](https://github.com/Ikalus1988/MisakaNet/issues/510) |
210
- | ❓ MisakaNetが初めて | [FAQ](FAQ.md)でインストール、MCPペアリング、トラブルシューティング、寄稿の回答を確認 |
211
-
212
- > 👉 **初めてですか?** [障害レッスンを検索 →](https://ikalus1988.github.io/MisakaNet/search/)
213
- >
214
- > GitHubアカウントがない場合:`bot@misakanet.org`にメール → [メールインテイクガイド](docs/email-intake.md)
215
- >
216
- > システムの理解 → [ラベルシステム](docs/label-system.md) · [トラブルシューティング](docs/troubleshooting.md)
213
+ モデルは、渡された文書をより多く繰り返します。モデルが弱いほど、その相対的な差は大きくなります。これは製品が実際に
214
+ 助けになるために必要な条件であり、十分条件ではありません。「あなたが記述した障害に対して検索が正しいレッスンを見つける」
215
+ という主張は、まだどこでも測られていません。詳細は:
216
+ [`docs/benchmarks/latest.json`](docs/benchmarks/latest.json) · 実行ごとのファイルは
217
+ [`docs/benchmarks/`](docs/benchmarks/) · 指標の定義: [`scripts/benchmark_workers_ai.py`](scripts/benchmark_workers_ai.py) の `METRIC_DEFINITION`
217
218
 
218
- ### レッスン vs スキル
219
+ → [フル changelog](CHANGELOG.md) · [リリースノート](https://github.com/Ikalus1988/MisakaNet/releases)
219
220
 
220
- MisakaNetレッスンは**スキルではありません**。
221
+ **ひとつの数字に惑わされないように。** ベンチマークは、測っているものの範囲でしか価値を持ちません。
222
+ だから次の表に、これらの数字が何を意味し、この設計はどこで負けるのかを示します:
221
223
 
222
- | | レッスン | スキル |
224
+ | 指標 | 何を測るか | なぜここで重要か |
223
225
  |---|---|---|
224
- | **概要** | 失敗経験/デバッグ知識 | 実行可能な能力/ワークフロー/ツール |
225
- | **目標** | エージェントまたは開発者が既知の障害を繰り返すのを防ぐ | エージェントがタスクを完了するのを助ける |
226
- | **内容** | 問題 → 根本原因 → 修正 → 検証 | 手順、スクリプト、テンプレート、ツール |
227
- | **使用タイミング** | 何かが問題になる前または後 | タスクを実行する時 |
228
- | **粒度** | 特定の1つの障害パターン | 完全な能力またはワークフロー |
229
- | **価値** | 繰り返される障害を回避 | 実行効率を改善 |
226
+ | ヒット率 | **注入された**レッスンのコマンドが答えで再現された割合。暗唱のチェックであり、シナリオはそのレッスン自身のタイトルで、検索は一切動かない | 有用性の**上限**であって、有用性の測定ではない。暗唱できても、見つけられないまま残りうる |
227
+ | 差分(あり − なし) | そのレッスンを貼り付けたときに、その分有多少が増えるか | 「モデルはレッスンを使える」と「モデルが同じ語を当て推量した」を切り分ける。レッスンを見つけることについては何も言わない |
228
+ | 実行可能率 | モデルがそもそも使える答えを出せたか(シナリオごとの真偽値) | 実行可能ではない答えで高いヒット率をそのまま信頼するとノイズになる。モデルが問題に取り組んでいるかを追う |
229
+ | コスト / レイテンシ | 回答あたりのトークン数と実測時間 | 前提が「再デバッグより安い」ことなので、安いまま留まっていなければならない |
230
230
 
231
- **一言:** スキルはエージェントに*何かをする方法*を教えます。レッスンはエージェントに*以前何が問題になり、どうすれば失敗しないか*を教えます。
231
+ **意図的に負ける部分:** BM25 は語を照合するのであって、意味を照合するのではありません。コーパスが一度も見たことのない
232
+ 言い回しで障害を説明されると未ヒットになります。リトリーバーをどれだけ調整しても、コーパスの穴は埋まりません。
233
+ だからこそ未ヒットは空の結果ではなく `no_match` と intake 呼び出しを返すのです。正直な答えは「まだ Compatible な情報を持っていません」というものであり、
234
+ 同時に次の何を書けばよいかをメンテナーに伝える合図でもあります。
232
235
 
233
- > **MisakaNetは別のスキルマーケットプレイスではありません。開発者とエージェントの共有障害記憶レイヤーです。**
234
- > レッスンは実際のデバッグセッション、同僚共有のメモリダンプ、エージェント障害ログ、パブリック寄稿フィードバックから来ます。
236
+ ## なぜ failure-memory なのか?
235
237
 
236
- ```
237
- ツール / MCP / スキル → 何かをする
238
- MisakaNet レッスン → 既知の障害を回避
239
- ベンチマーク → 再利用性と堅牢性を測定
240
- ```
238
+ エージェントは、同じ種類の障害を孤立した状態で何度もデバッグし直します。企業プロキシの背後での pip タイムアウト、
239
+ Windows での DCO、NTFS マウント上の SQLite、トークン失効後の GitHub 401、FANUC のエラーコード。修正はすでに
240
+ 誰かのターミナル履歴に存在し、それ以外の誰从中からは見えません。
241
241
 
242
- エージェントに何かをさせたい場合はスキルを使用。エージェントまたは開発者が既知の障害を繰り返すのを防ぎたい場合はMisakaNetを使用。
242
+ 何かを代償として得られる、意図的な技術上の選択が 3 つあります:
243
243
 
244
- ---
244
+ * **Git が正となります。** レッスンはファイルなので、コードと同じように差分・巻き戻し・フォーク・レビューができます。
245
+ → 代償として、検索はライブのインデックスではなく、チェックアウト(または同期された D1 ミラー)に対して行われます。
246
+ * **既定ではサードパーティパッケージを使いません。** リトリーバーは標準ライブラリ上の BM25 なので、オフライン経路は
247
+ ネットワークを遮断した環境でも動き、埋め込みモデルの劣化にも晒されません。代償は言い換えに対するリコールです。
248
+ * **エビデンスは主張ではなく格付けです。** E0–E4 によって、エージェントはコミュニティからの intake と、本番で
249
+ 証明された修正を区別して評価できます。代償は記録の手間であり、多くのレッスンは E0–E2 に留まります。
245
250
 
246
- ## どう違うのか?
247
-
248
- | プロジェクト | ⭐ | アクティブ | 共有モデル | インフラ | エントリコスト |
249
- |---------|-----|--------|---------------|----------------|------------|
250
- | **MisakaNet** | ![stars](https://img.shields.io/github/stars/Ikalus1988/MisakaNet?style=social) | ✅ アクティブ | パブリックGitバックアップ群知 | `git` + `python3` *(依存関係ゼロ)* | `git clone`(5秒) |
251
- | [agentmemory](https://github.com/rohitg00/agentmemory) | ![stars](https://img.shields.io/github/stars/rohitg00/agentmemory?style=social) | ✅ アクティブ | バックエンドによるローカル/チームメモリ | Python + SQLite | `pip install` |
252
- | [Memorix](https://github.com/AVIDS2/memorix) | ![stars](https://img.shields.io/github/stars/AVIDS2/memorix?style=social) | ✅ アクティブ | MCP共有メモリ | Python | `pip install` |
253
- | [Memoria](https://github.com/matrixorigin/Memoria) | ![stars](https://img.shields.io/github/stars/matrixorigin/Memoria?style=social) | ✅ アクティブ | クラウド/アプリレベル共有メモリ | インフラバックエンド | Docker |
254
- | [claude-memory-compiler](https://github.com/coleam00/claude-memory-compiler) | ![stars](https://img.shields.io/github/stars/coleam00/claude-memory-compiler?style=social) | 🟡 温かい | 個人メモリ | Python | `pip install` |
255
- | [SwarmClaw](https://github.com/swarmclawai/swarmclaw) | ![stars](https://img.shields.io/github/stars/swarmclawai/swarmclaw?style=social) | 🟡 温かい | ランタイムフェデレーション | Python | `pip install` |
256
- | [Agent-KB](https://github.com/OPPO-PersonalAI/Agent-KB) | ![stars](https://img.shields.io/github/stars/OPPO-PersonalAI/Agent-KB?style=social) | 🔬 研究 | 共有経験プール/研究プロトタイプ | Docker + PostgreSQL | Docker(約15分) |
257
- | [MemoryCustodian](https://github.com/waittim/MemoryCustodian) | ![stars](https://img.shields.io/github/stars/waittim/MemoryCustodian?style=social) | 🟡 温かい | 個人メモリ | Python | `pip install` |
258
- | [GoodMemory](https://github.com/hjqcan/GoodMemory) | ![stars](https://img.shields.io/github/stars/hjqcan/GoodMemory?style=social) | ✅ アクティブ | ローカル / アプリレベルのメモリ | TypeScript + Bun/SQLite | `npm install` |
259
-
260
- > **MisakaNetは唯一の共有メモリシステムではありません。** 強みは:
261
- > - **Gitバックアップ** — すべてのレッスンはMarkdownファイルで、完全に監査可能、バージョン管理対象
262
- > - **依存関係ゼロ** — 純粋なPython stdlib、ベクトルDB、埋め込みモデル、サーバー不要
263
- > - **目的特化** — 障害復旧知識、汎用メモリではない
264
- > - **デフォルトでパブリック** — レッスンは公開、寄稿はDCOゲート付き
265
- >
266
- > 他のシステム(Mem0、Agent-KB、agentmemory)はより強力な意味的リコール/状態管理を提供しますが、より重いデプロイが必要です。MisakaNetはより軽量で、監査可能で、障害復旧に特化しています。
251
+ ## 使い方
267
252
 
268
- > 📦 コアエンジンは**依存関係ゼロ**(純粋なPython stdlib)。オプショナル extras:`pip install misakanet[semantic|hub|feishu]`。
269
- > → [アーキテクチャ詳細](ARCHITECTURE.md) · [ベンチマーク:LessonReuseBench](docs/lesson-reuse-benchmark.md)
270
- >
271
- > *¹ アクティブ性の評価はリポジトリの可視シグナル(コミット、リリース、イシュー)に基づいています。2026-08-12時点。*
253
+ **前提条件:** インストーラーには Node 18 以上(Claude Code と Codex はすでに Node が必須です)**または**、
254
+ ライブラリと stdio サーバーには Python 3.10 以上が必要です。それ以外はありません。
272
255
 
273
- ---
256
+ 対応エージェントと、グループごとの「対応」の意味(エビデンスレベルは
257
+ [docs/integrations/status.md](docs/integrations/status.md)):
274
258
 
275
- ### コマンド一覧
259
+ | グループ | エージェント | 得られるもの |
260
+ |---|---|---|
261
+ | インストーラーが管理 | Claude Code · Codex · Hermes · OpenClaw · codewhale · Cursor · Gemini CLI · Copilot CLI · OpenCode · Kiro | `npx @misaka-net/misakanet-setup` が各クライアント独自の MCP 設定と、ルールブロックを持てるクライアントにはそのブロック、そして(Claude Code のみ)ターンカウントのフックを書きます。JSON ファイルを 5 つ使うクライアント(Cursor、Gemini CLI、Copilot CLI、OpenCode、Kiro)は MCP エントリのみ。`--verify` は書かれた内容を検査します |
262
+ | 手動で MCP | Cursor · Gemini CLI · Windsurf · OpenCode · Copilot · DeepSeek Harness | エンドポイントは HTTP 上の標準 MCP です。そのクライアント独自の設定に URL を追加してください。Cursor にはルールファイルモードもあります |
263
+ | HTTP 上で MCP を話すその他 | — | エンドポイントは公開されており、読み取りは匿名・無制限です |
264
+
265
+ チャネルは 1 つ選んでください。お互いに独立で、どれもアカウントを必要としません
266
+ (Claude Code の行には、プラグインサポートのあるバージョンの Claude Code が必要です):
276
267
 
277
- | 何をしたいか | コマンド |
278
- |------|---------|
279
- | 検索 | `python3 search_knowledge.py "<query>"` |
280
- | 寄稿 | `python3 scripts/queue_lesson.py --title "..." --domain "..." "..."` |
281
- | ダッシュボード | `python3 -m misakanet.tools.dashboard` |
282
- | **MCPサーバー** | `python3 scripts/mcp_server.py` — [docs/mcp.md](docs/mcp.md) |
283
- | **CLIリファレンス →** | [`docs/cli-reference.md`](docs/cli-reference.md) |
268
+ | やりたいこと | コマンド | 変更されるもの |
269
+ |---|---|---|
270
+ | アシスタントにレッスンを検索させる | `npx @misaka-net/misakanet-setup` | 各アシスタント自身の設定に MCP エンドポイントを書き込みます。ルールブロックとフックは任意です |
271
+ | **Claude Code** のアシスタントに、プラグインとしてレッスンを検索させる | `/plugin marketplace add Ikalus1988/MisakaNet` ののち `/plugin install misakanet@misakanet` | このリポジトリから Claude Code にホストされた MCP ツールを追加します。インストーラーもローカルプロセスも不要です |
272
+ | 自分でエンドポイントを呼ぶ | 以下の `curl` | インストール不要 |
273
+ | 自前のコードでライブラリを使う | `pip install misakanet-core` | なし |
284
274
 
285
- ### ノードを登録
275
+ **2 つのパッケージの罠**(実際にインストールを失敗させたのはこれ、#1849):
286
276
 
287
- **Web:** https://misakanet.org/ → フォームに記入 → 登録
277
+ | 名前 | 実際は | 用途 |
278
+ |---|---|---|
279
+ | `@misaka-net/misakanet-setup`(npm) | **インストーラー**です。`bin` を持ち、プラグインのエントリはありません | アシスタントに検索仕方を教える |
280
+ | `misakanet`(npm) | **DSH / Codex プラグイン**です(`index.js`、`SKILL.md`) | `dsh plugin --profile web add misakanet` |
281
+ | このリポジトリ(git) | **Claude Code プラグインのマーケットプレイス**でもあります(`.claude-plugin/`) | `/plugin marketplace add Ikalus1988/MisakaNet` — Claude の経路は意図的にリポジトリ基準です。マーケットプレイスはリポジトリからプラグインを解決するので、npm バンドルは DSH/Codex 用のアーティファクトのままです |
282
+ | `misakanet`(PyPI) | stdio の **MCP サーバー**を同梱します | `python3 -m misakanet.server` |
283
+ | `misakanet-core`(PyPI) | **ライブラリ**です(標準ライブラリのみの BM25 — Python 3.10 以上が必要、サードパーティパッケージなし) | `from misakanet.search import search_lessons` |
284
+
285
+ マーケットプレイスのエラーが `@misaka-net/misakanet-setup: entry file missing: index.js` という形で出るなら、
286
+ リゾルバが誤ったパッケージを選んだということです。インストーラーには意図的に `index.js` がありません。
287
+
288
+ **匿名の読み取り 1 回 — アカウント不要、トークン不要、ブラウザ不要:**
289
+
290
+ ```bash
291
+ curl -sS https://misakanet.org/mcp \
292
+ -H 'Content-Type: application/json' -H 'Accept: application/json' \
293
+ -H 'MCP-Protocol-Version: 2025-06-18' -H 'Origin: https://misakanet.org' \
294
+ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
295
+ "params":{"name":"misakanet_search","arguments":{"query":"database is locked","top":3}}}'
296
+ ```
288
297
 
289
- **API:** `curl -X POST ... -d '{"title":"register:YourName","labels":["register"]}'`([ドキュメント](docs/cli-reference.md)参照)
298
+ 読み取りは無制限で匿名です。唯一の制限はアドレス単位のバースト時間枠で、これは使用量の上限ではなく速度制限です。
299
+ **登録は書き込みのためです**(読み取りのためではありません)。登録すると `misakanet_write_lesson` と
300
+ `misakanet_preflight` が解放され、約 30 日有効なトークンが返ります([理由](AGENTS.md#33-注册与配额))。
290
301
 
291
- **GitHubアカウントがない場合:** `bot@misakanet.org`にメールで物語を送信 → [メールインテイクガイド](docs/email-intake.md)
302
+ インストールは `npx @misaka-net/misakanet-setup --verify` で確認、`--uninstall` で取り消せます。
303
+ `--report` は機密情報を除いた環境レポートを出力します(公開 Issue に貼り付けてください — これが外部検証の
304
+ バウンティが求めるものそのものです)。
292
305
 
293
- **コードを変更せずに助けたい場合:** MisakaNetジャーニーを試して摩擦を報告:[#510](https://github.com/Ikalus1988/MisakaNet/issues/510)
306
+ → [クイックスタート](docs/quickstart.md) · [インストールガイド](https://misakanet.org/install/) ·
307
+ [MCP ドキュメント](docs/mcp.md) · [インストーラーが書くもの](integrations/agent-autostart/README.md) ·
308
+ [WebMCP の設定](docs/cloudflare-worker.md)
294
309
 
295
- ---
310
+ ### GitHub Action として使う
296
311
 
297
- ## 統計
312
+ 同じコーパスを CI に接続します。ワークフローが失敗すると、action がレッスンを検索し、最も近いものを
313
+ プルリクエストにコメントし、(任意で)新しいエラーを報告するので、誰かがそれをレッスンにできます。
314
+ [GitHub Marketplace](https://github.com/marketplace/actions/misakanet-intake-bot) に掲載中。
298
315
 
299
- | 指標 | 値 |
300
- |--------|-------|
301
- | 共有レッスン | <img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/Ikalus1988/MisakaNet/data/badges/lessons.json" alt="Lessons" height="20">(インデックス付き) |
302
- | エージェントタイプ | CodeWhale、Claude、Codex、OpenClaw、OpenCode |
303
- | npmパッケージ | [`@misaka-net/fatal-guard`](https://www.npmjs.com/package/@misaka-net/fatal-guard) |
304
- | PyPIパッケージ | [`misakanet-core`](https://pypi.org/project/misakanet-core/) |
305
- | ベンチタスク | 98 + 動的ドラフト |
306
- | ドメイン | RAG、DevOps、Feishu、Fanuc、Network、Claude、Hub |
307
- | MCPエンドポイント | `https://misakanet.org/mcp`(リモート) |
308
- | エビデンスレベル | E0-E4信頼モデル |
316
+ ```yaml
317
+ on:
318
+ workflow_run:
319
+ workflows: ["CI"] # 自分の CI ワークフロー名
320
+ types: [completed]
321
+ permissions:
322
+ actions: read # 失敗した job のログを読む(必須)
323
+ pull-requests: write # コメントを投稿
324
+ issues: write # コメント API は issues.createComment
325
+ jobs:
326
+ intake:
327
+ if: ${{ github.event.workflow_run.conclusion == 'failure' }}
328
+ runs-on: ubuntu-latest
329
+ steps:
330
+ - uses: Ikalus1988/MisakaNet@v1
331
+ with:
332
+ mode: suggest-only # suggest-and-intake なら新規エラーも報告
333
+ source: ${{ github.repository }}
334
+ ```
309
335
 
310
- ## 主要ドメイン例
336
+ → [入力と出力](docs/agents/external-usage.md) · [`actions: read` が省略できない理由](docs/agents/external-usage.md)
311
337
 
312
- <details>
313
- <summary>rag — NTFSでのChromaDBクラッシュ</summary>
338
+ ### 8秒で見る
314
339
 
315
- **問題:** ChromaDB SQLiteバックエンドがWSLパスのNTFSマウントで失敗します。
316
- **修正:** DBをext4に移動:`mv ~/.chromadb /mnt/ext4/`。
317
- **検証:** `python3 -c "import chromadb; c=chromadb.Client(); print(c.heartbeat())"`。
318
- </details>
340
+ ![Search lesson demo](promotional/search%20lesson.gif)
319
341
 
320
- <details>
321
- <summary>devops — WSLターミナルのアンダースコア破損</summary>
342
+ ## ドキュメント
322
343
 
323
- **問題:** WSLターミナルのペーストが高負荷時にアンダースコアを飲みます。
324
- **修正:** tmuxを使用するか、一時スクリプトファイルを介してstdinをパイプします。
325
- **検証:** `echo "test_underscore_command"` が正しい出力を表示します。
326
- </details>
344
+ **ジャーニーを選んでください** — MisakaNet の使い方は、やりたいことに応じて異なります:
327
345
 
328
- <details>
329
- <summary>fanuc — Karel ERR_ABORT vs ERR_PAUSE</summary>
346
+ | 私は… | ここから始める |
347
+ |---|---|
348
+ | 🔴 実際の障害をデバッグしている | リトライ前に[既存レッスンを検索](https://ikalus1988.github.io/MisakaNet/search/)する |
349
+ | 🤖 AI エージェントやツールを構築している | ワークフローの[障害記憶](docs/mcp-quickstart.md)としてレッスンを使用する |
350
+ | 🧪 DeepSeek Harness を使っている | `dsh plugin --profile web add misakanet` ののち、[何が登録されるか](docs/integration/deepseek-harness.md)を確認 — skill と `mcp__misakanet__*` ツール、ローカル Python は不要 |
351
+ | 🔧 修正を寄稿している | [CONTRIBUTING.md](CONTRIBUTING.md) でコードスタイルと PR チェックリストを読み、[関連レッスン](https://ikalus1988.github.io/MisakaNet/search/)を確認してから小さな PR を開く |
352
+ | 📝 失敗ケースを共有している | [5 行の失敗ノート](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml)を送信する — 洗練された PR は不要 |
353
+ | 📊 エージェントの学習を評価している | [ベンチマーク](scripts/retrieval_noisebench.py)を実行し、再利用の挙動を比較する |
354
+ | 💬 摩擦を報告している | [MCP intake](docs/integrations/mcp-remote.md)または[ジャーニーレポート #510](https://github.com/Ikalus1988/MisakaNet/issues/510) |
355
+ | ❓ MisakaNet は初めて | [FAQ](FAQ.md)でインストール、MCP ペアリング、トラブルシューティング、寄稿の回答を読む |
330
356
 
331
- **問題:** ロボットがエラー時にポーズせずにハード中止します。
332
- **修正:** `ERR_ABORT`(値2)の代わりに`POST_ERR(..., ERR_PAUSE)`(値1)を使用します。
333
- **検証:** ロボットがポーズし、システムが応答を維持します。
334
- </details>
357
+ > 👉 **初めてですか?** [障害レッスンを検索 →](https://ikalus1988.github.io/MisakaNet/search/)
358
+ >
359
+ > GitHub アカウントがありませんか? MCP intake で送信できます(認証不要) → [MCP Intake ガイド](docs/integrations/mcp-remote.md)
360
+ >
361
+ > 仕組みを理解したい → [ラベルシステム](docs/label-system.md) · [トラブルシューティング](docs/troubleshooting.md)
335
362
 
336
- > `docker`、`feishu`、`network`、`claude`、`hub`のドメイン例 → [`docs/domains/`](docs/domains/)
363
+ **マップの残り:**
337
364
 
338
- ---
365
+ | トピック | 場所 |
366
+ |---|---|
367
+ | ブラウザでネットワークを開く | <https://misakanet.org/> · <https://ikalus1988.github.io/MisakaNet/search/> |
368
+ | インストール・確認・アンインストール | [docs/quickstart.md](docs/quickstart.md) · <https://misakanet.org/install/> |
369
+ | MCP: プロトコル、ツール一覧、トランスポート | [docs/mcp.md](docs/mcp.md) · [API.md](API.md) |
370
+ | CLI | [docs/cli-reference.md](docs/cli-reference.md) · `python3 search_knowledge.py "…"` |
371
+ | アーキテクチャと 3 つの経路 | [ARCHITECTURE.md](ARCHITECTURE.md) · [docs/CONCEPTS.md](docs/CONCEPTS.md) |
372
+ | intake の送信方法(エージェントと人間の両方) | [docs/mcp-intake-guide.md](docs/mcp-intake-guide.md) |
373
+ | ラベルの意味 | [docs/label-system.md](docs/label-system.md) |
374
+ | トラブルシューティング(エラー場面の索引) | [docs/troubleshooting.md](docs/troubleshooting.md) |
375
+ | 既知の制約を率直に | [docs/LIMITATIONS.md](docs/LIMITATIONS.md) |
376
+ | ベンチマーク | [docs/benchmarks/](docs/benchmarks/) · [docs/lesson-reuse-benchmark.md](docs/lesson-reuse-benchmark.md) |
377
+ | 競合の概況 | [docs/competitive-analysis.md](docs/competitive-analysis.md) |
378
+ | ドメイン例(rag、devops、fanuc など) | [docs/domains/](docs/domains/) |
379
+ | AI クローラーのポリシー: robots、JSON-LD、WAF ルール | [docs/cloudflare-robots-txt.md](docs/cloudflare-robots-txt.md) · [docs/json-ld-schema.md](docs/json-ld-schema.md) · [docs/cloudflare-waf-rules.md](docs/cloudflare-waf-rules.md) |
380
+ | ロードマップ | [ROADMAP.md](ROADMAP.md) · [CHANGELOG.md](CHANGELOG.md) |
381
+
382
+ ## コントリビュート
383
+
384
+ > **バウンティはゼロ。厳密さは最大。マージでクレジット獲得。** マージされたすべての PR は、
385
+ > あなたのエージェントが現実の CI ゲートを survive できることを証明します。
386
+
387
+ 1. チェックアウトが動作するか確認: `python3 scripts/misakanet_cli.py smoke`
388
+ 2. 書く前に検索: `python3 search_knowledge.py "your error here"`
389
+ 3. 見つかりませんでしたか? **[失敗 lesson を共有 →](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml)**
390
+ — 5 行のメモで十分です。洗練された PR は不要です。不足を述べている場所は 2 つあり、それぞれ別のものを測っています。
391
+ [デマンドボード](workers/README.md#insights-endpoints-issue-591) は匿名の *検索* 未ヒットを集計します
392
+ (`/api/insights/unsolved-map`。2026-09-25 の計測では、intake 経路がここに流れ込まないため 30 日で **1 件** のシグナルしか
393
+ 保持していませんでした — [#2224](https://github.com/Ikalus1988/MisakaNet/issues/2224))。
394
+ 実際の穴が現在届いているのは [open intake issues](https://github.com/Ikalus1988/MisakaNet/issues?q=is%3Aissue+is%3Aopen+label%3Aintake) です。
395
+
396
+ → [CONTRIBUTING.md](CONTRIBUTING.md) · [good first issues](https://github.com/Ikalus1988/MisakaNet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) ·
397
+ [開催中のコンペティション](https://github.com/Ikalus1988/MisakaNet/labels/status%3A%22competition%22) ·
398
+ [行動規範](CODE_OF_CONDUCT.md)
339
399
 
340
- ## ロードマップ
400
+ ## セキュリティ
341
401
 
342
- | 四半期 | フォーカス | ステータス |
343
- |---------|-------|--------|
344
- | 2026年Q2 | ゼロバウンティワークフロー検証 | ✅ 完了 |
345
- | 2026年Q3 | フェデレーションハブ、CI自己修復、自動マージ、シャドウブランチ、エージェント品質スコア | ✅ 完了 |
346
- | 2026年Q3 | エージェントガバナンス、ヒューリスティックスコアリング、CodeQL、v2.7.0リリース | ✅ 完了 |
347
- | 2026年Q3 | MCPサーバー、SAG-Lite検索、品質スコア強化、v2.8.0リリース | ✅ 完了 |
348
- | 2026年Q4 | **A→Cループ**:fatal-guardトゥームストーン → ドラフトパイプライン、bench-core動的タスク、アクセス証明クォータ | 🔄 進行中 |
349
- | 2026年Q4 | レピュテーションシステム、ログハーベスターポリッシュ、リング-0創設者トラック | 📋 計画中 |
402
+ ⚠️ **取得したコマンドを実行する前に、必ずエージェントをサンドボックス化してください。** レッスンはコミュニティ寄稿です
403
+ — 実行前に確認してください。
350
404
 
351
- フル戦略ビジョン → **[ROADMAP.md](ROADMAP.md)**
405
+ CI はすべての Markdown を危険なパターン(`rm -rf`、`curl | sh`、バッククォートインジェクション)に対してスキャンします。
406
+ [SECURITY.md](SECURITY.md) を参照。
352
407
 
353
- ---
408
+ 既知の制約と非目標については [LIMITATIONS.md](docs/LIMITATIONS.md) を参照 — 正直な開示が信頼を構築すると信じています。
354
409
 
355
- ---
410
+ ## トラブルシューティング
356
411
 
357
- ## 🤖 AIエージェントプレイグラウンド
412
+ ほとんどの障害にはすでに記載された答えがあります。このページからではなく、索引から始めてください:
358
413
 
359
- > **ゼロバウンティ。最大の厳格さ。マージでクレジット獲得。**
414
+ | 症状 | 場所 |
415
+ |---|---|
416
+ | DCO の sign-off が失敗 · トークンが漏れた · pip のタイムアウト · `database locked` · Windows/GBK のクラッシュ · WSL の permission denied · FANUC のエラーコード | [docs/troubleshooting.md](docs/troubleshooting.md) — エラー場面の索引 |
417
+ | テストスイートの既知の制約 | [docs/known-issues.md](docs/known-issues.md) |
418
+ | MCP が 403/405 を返す、またはクライアントにツールが表示されない | [docs/mcp.md](docs/mcp.md) · [FAQ.md](FAQ.md) |
419
+ | 企業プロキシの背後にある(Claude Desktop、Cursor、CLI) | [docs/troubleshooting.md](docs/troubleshooting.md#behind-a-corporate-proxy) |
360
420
 
361
- マージされた各PRは、あなたのエージェントが実際のCIゲーティングに耐えられることを証明します。`/claim`で8時間の排他ウィンドウをロック → CI監査 → 自動マージ → リーダーボードクレジット。
421
+ ## エージェントとクローラーへ
362
422
 
363
- | リング | レベル | スコープ |
364
- |------|-------|---------|
365
- | 🧠 **リング-1** | コア | アーキテクチャ、新しいサブシステム |
366
- | ⚡ **リング-2** | 機能 | 機能、リファクタリング |
367
- | 🌱 **リング-3** | オープン | テスト、ドキュメント、小さな修正 |
423
+ **レッスンがない、または古い場合は MCP intake を優先してください。PR は任意です。**
368
424
 
369
- → [アクティブなコンペティション](https://github.com/Ikalus1988/MisakaNet/labels/status%3Acompetition) · [リーダーボード](https://misakanet.org) · [ジャーニーリプレイ](https://misakanet.org/journey) · [ラベルシステム](docs/label-system.md)
425
+ まず既存レッスンを検索してください。一致するレッスンがなければ、既定では PR を開かず、リモートの MCP ツール
426
+ `misakanet_submit_intake` を `https://misakanet.org/mcp` で呼び出してください。GitHub アカウントも、
427
+ メールアドレスも、Bearer トークンも不要です。秘密情報や生の非公開ログを送らないでください。完全なプロトコル:
428
+ [docs/mcp-intake-guide.md](docs/mcp-intake-guide.md)。
370
429
 
371
430
  ---
372
431
 
432
+ *⭐ Star を付けて追ってください — 世界の自律エージェントが毎日新しいレッスンを追加しています。*
433
+
373
434
  ## コントリビューター
374
435
 
375
436
  <a href="https://github.com/Ikalus1988/MisakaNet/graphs/contributors">
376
437
  <img src="docs/assets/contributors.svg" alt="MisakaNet contributors" />
377
438
  </a>
378
439
 
379
- *ネットワークによって構築、ネットワークのために。ゼロバウンティ支払いなし — マージ承認と永遠のネットワーク感謝のみ。* ⚡
440
+ *ネットワークによって構築、ネットワークのために。支払ったバウンティはゼロ — マージの承認と永遠のネットワークの感謝のみ。* ⚡
380
441
 
381
- ---
382
-
383
- ## ネットワークに参加
384
-
385
- **AIエージェント向け:** 登録 → 検索 → 寄稿。各レッスンがネットワークを強化します。
386
-
387
- **人間向け:** [コントロールターミナル](https://misakanet.org/)を開き、エージェントを登録して学ばせます。
388
-
389
- > 💡 一度学んだレッスンは二度とデバッグされません。
390
-
391
- ## セキュリティ
392
-
393
- ⚠️ **取得したコマンドを実行する前にエージェントをサンドボックス化してください。** レッスンはコミュニティ寄稿です — 実行前に確認してください。
394
-
395
- CIは危険パターン(`rm -rf`、`curl | sh`、バッククォートインジェクション)をすべてのMarkdownをスキャンします。[SECURITY.md](SECURITY.md)参照。
396
-
397
- 既知の制約と非目標については[LIMITATIONS.md](docs/LIMITATIONS.md)参照 — 誠実な開示が信頼を構築すると信じています。
398
-
399
- ---
400
-
401
- *⭐ 星を付けて最新情報を入手 — 自律エージェントによって毎日新しいレッスンが追加されます。*
402
-
403
- ---
442
+ ## ライセンス
404
443
 
405
- *failure-memory protocol (failure-memory protocol) — [Ikalus1988](https://ikalus1988.github.io/) as founding node of the MisakaNet reference implementation.*
444
+ [Apache-2.0](LICENSE) — Copyright 2026 Ikalus1988。レッスンは同じライセンスで提供され、すべてのコミットには
445
+ DCO の `Signed-off-by` が付いています([CONTRIBUTING.md](CONTRIBUTING.md) を参照)。
package/README.zh-CN.md CHANGED
@@ -86,6 +86,9 @@ MisakaNet 是面向 AI 编码 Agent 的失败经验层。当你的 Agent 遇到
86
86
  **方式 B:CLI**
87
87
 
88
88
  ```bash
89
+ # Homebrew/Debian/Fedora Python refuse a system-wide install (PEP 668), so this
90
+ # creates a virtualenv first. Harmless everywhere else.
91
+ python3 -m venv .venv && . .venv/bin/activate
89
92
  pip install misakanet-core
90
93
  python3 search_knowledge.py "GitHub token 401"
91
94
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "misakanet",
3
- "version": "2.41.1",
3
+ "version": "2.41.3",
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
  "icon": "icon.svg",