misakanet 2.44.2 → 2.45.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/README.ja.md CHANGED
@@ -8,12 +8,18 @@
8
8
 
9
9
  mcp-name: io.github.Ikalus1988/misakanet
10
10
 
11
- > **同じエラーを二度とデバッグしなくていい。** MisakaNet はインデックス済みの障害レッスンを検索するので、エージェントは
12
- > 誰かがすでに代償を支払ったバグを、セッションごとに一つずつ再発見せずに済みます —— 上部の **Lessons**
13
- > バッジが現在のコーパス規模です。
11
+ > **同じ失敗に、二度払う。**
14
12
  >
15
- > エージェントネイティブなインターフェース: [MCP サーバー](https://misakanet.org/mcp)(8 ツール)、WebMCP(ブラウザの
16
- > `navigator.modelContext`)、`llms.txt` / `llms-full.txt`、そして `.well-known/agent-card.json` 経由の A2A ディスカバリー。
13
+ > 企業プロキシの内側で `pip install` がタイムアウトする。あるエージェントが証明書チェーンを読み、
14
+ > フラグを見つけて直す。数日後、同じタイムアウトが別のマシン・別のモデルで現れ、最初から調べ直される。
15
+ > 直し方は存在していた——次のエージェントが見る場所に、書かれていなかっただけだ。
16
+ >
17
+ > MisakaNet はその場所です:git で管理された**失敗の記憶**。すべてのレッスンはこのリポジトリの
18
+ > Markdown ファイルで、証拠で格付けされ、コードのようにレビューされ、推測ではなく検索で取り出されます。
19
+ > **一度失敗すれば、次のエージェントは失敗しません。**
20
+
21
+ エージェント向けインターフェース:[MCP サーバー](https://misakanet.org/mcp)(8 ツール)、WebMCP、
22
+ `llms.txt`、A2A(`.well-known/agent-card.json`)。
17
23
 
18
24
  <p align="center">
19
25
  <img src="promotional/misaka-compare.jpg" width="720" alt="MisakaNet — Before: 30+ min manual debugging vs After: 0.02s with MCP"/>
@@ -22,7 +28,7 @@ mcp-name: io.github.Ikalus1988/misakanet
22
28
  <p align="center">
23
29
  <em>Core</em>
24
30
  &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>
31
+ <a href="https://github.com/Ikalus1988/MisakaNet/actions/workflows/pr-checks.yml"><img src="https://github.com/Ikalus1988/MisakaNet/actions/workflows/pr-checks.yml/badge.svg" alt="CI"></a>
26
32
  <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
33
  <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
34
  <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>
@@ -37,291 +43,202 @@ mcp-name: io.github.Ikalus1988/misakanet
37
43
  <a href="https://pypi.org/project/misakanet/"><img src="https://img.shields.io/pypi/v/misakanet" alt="PyPI"></a>
38
44
  <a href="https://www.npmjs.com/package/misakanet"><img src="https://img.shields.io/npm/v/misakanet" alt="npm"></a>
39
45
  <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
46
  </p>
44
47
 
45
48
  <p align="center">
46
49
  <em>Ecosystem</em>
47
50
  &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>
51
+ <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 on Glama"></a>
52
+ <a href="https://mcptoplist.com/server/io.github.Ikalus1988%2Fmisakanet"><img src="https://img.shields.io/badge/MCP-Toplist-blue" alt="MCP Toplist"></a>
61
53
  </p>
62
54
 
63
55
  ---
64
56
 
65
- ## インストール(30秒)
66
-
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 サーバー) |
74
-
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>
78
-
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>
57
+ ## インストール(30 秒)
80
58
 
81
- 更新: `dsh plugin --profile web update misakanet@latest`。
82
- インストーラー自体の更新: `npx @misaka-net/misakanet-setup@latest`(独自のコマンド、独自のフラグ)。
59
+ ゴールは「入れること」ではなく**最初の検索が成功すること**です。どれもアカウントもトークンも不要です。
83
60
 
84
- プラグイン経路ではアカウント不要、トークン不要、Python も不要です: npm バンドルがホストされたエンドポイントをマウントします。
85
- 宣言されているホストと実際に測定した内容: [compatibility](docs/compatibility.md)。各チャネル、前提条件、そして人から
86
- インストールを代償させる「2つのパッケージの罠」: [使い方](#使い方)。
87
-
88
- ## DeepSeek Harness プラグインが追加するもの
61
+ | ホスト | コマンド |
62
+ |---|---|
63
+ | **DeepSeek Harness** | `dsh plugin --profile web add misakanet`、または **Add plugin** で `misakanet` |
64
+ | **Claude Code** | `/plugin marketplace add Ikalus1988/MisakaNet` のあと `/plugin install misakanet@misakanet` |
65
+ | **Codex、Cursor、Gemini CLI、Copilot CLI、OpenCode …** | `npx @misaka-net/misakanet-setup`(各ホストの設定に MCP 行を書き込みます) |
66
+ | **その他の MCP クライアント** | `https://misakanet.org/mcp` を指定——公開エンドポイント、匿名で読めます |
67
+ | **自分のコードから** | `pip install misakanet-core`(ライブラリ)· `pip install misakanet`(stdio サーバー) |
89
68
 
90
- バージョン 2.40.0 がブラウザ側を出荷し、2.41.0 がその残りを加えます。以下の面がすべて同じリリースで届いたわけでは
91
- ないので、このセクションでは、それぞれの面を担っているバージョンごとに列挙します。ダイアログを足すのではありません。
92
- MisakaNet を、すでにセッションが存在する場所に据えます。
69
+ 更新:`dsh plugin --profile web update misakanet@latest` · `npx @misaka-net/misakanet-setup@latest`。
70
+ 前提条件と「2 つのパッケージ」の罠:[使い方](#使い方)。
93
71
 
94
- **2.40.0 で公開済み。** 以下の 6 つの席が、いま `npm view misakanet version` で得られるものです。
72
+ ## 最初の 5 分
95
73
 
96
- | 場所 | 得られるもの |
97
- | --- | --- |
98
- | **左カラム** | `Plugins` の直下に常設する `MisakaNet` エントリ。パネルへのショートカットであり、クリックするとメインカラムに全画面が開きます。ルートスコープなので、セッションによって出たり消えたりはしません。 |
99
- | **会話タブ** | Chat と Trajectory のとなりに `MisakaNet` タブが付きます。このセッションが何を問い合わせ、何が返り、何を記録したかを、会話自身の行から組み立て直して表示します。 |
100
- | **右カラム** | 同じパネルをペインとして配置するので、ファイルツリー・ターミナル・ドキュメントのとなりに置けます。 |
101
- | **ツール呼び出しの行** | `misakanet_search` と `misakanet_submit_intake` の呼び出しごとに、ツールカード上に専用の行ができます。送信されたクエリそのもの、レッスンが返ったかどうか、そして先頭にあるレッスンはどれか。生の結果はひとつ開けば見えます。この行は報告するだけで投稿しません。投票は下の回答側のアクション行に付きます。 |
102
- | **アシスタントのアクション行** | レッスンを使った回答に 👍 / 👎。このページが送信するのはこの二つだけです。カウンタはサーバーではなくブラウザに置かれます。 |
103
- | **音声** | 既定ではオフのスイッチで、二つの仕組みを説明します。サーバーが次回の検索で名指しする合図と、ページからは読めないローカルのフック。 |
74
+ **1. 実際に壊れたことを聞いてみる。** クライアントが無くても、この `curl` がインターフェース全部です:
104
75
 
105
- <p align="center">
106
- <img src="docs/assets/dsh-client-left-column.png" width="820" alt="DeepSeek Harness: 左カラムの Plugins の下に常設する MisakaNet エントリと、それが開く全画面"/>
107
- </p>
108
-
109
- <p align="center">
110
- <img src="docs/assets/dsh-client-right-panel.png" width="820" alt="DeepSeek Harness のセッションの右カラムにある MisakaNet ペイン"/>
111
- </p>
76
+ ```bash
77
+ curl -sS https://misakanet.org/mcp \
78
+ -H 'Content-Type: application/json' -H 'Accept: application/json' \
79
+ -H 'MCP-Protocol-Version: 2025-06-18' -H 'Origin: https://misakanet.org' \
80
+ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
81
+ "params":{"name":"misakanet_search","arguments":{"query":"database is locked","top":3}}}'
82
+ ```
112
83
 
113
- **2.41.0 で追加 — [リリース PR #2591](https://github.com/Ikalus1988/MisakaNet/pull/2591)。** 以下の 6 つの面は
114
- `main` に入っており 2.41.0 で出荷されます。2.40.0 を入れた環境にはまだありません。
84
+ **2. 返ってきたものを読む。** ヒットするとレッスン・`evidence_level`・パスが返ります。まずファイルを
85
+ 開いて読み、中のコマンドを実行するかは自分で決めてください。ミスは `no_match` と、そのまま呼べる
86
+ intake を返します——「この失敗はまだ知らない」というコーパスの表明です。
115
87
 
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`)のそばに置いてあります。 |
88
+ **3. 口調ではなく信頼シグナルを見る。** `E0`–`E3` は検証の到達度、`E4` は自分で書くことも投票で
89
+ 取ることもできない唯一の段です。
124
90
 
125
- どちらの側がどの席を持ち、なぜ `root` か `session` スコープなのかを、ホスト自身の契約文の引用付きで:
126
- [compatibility](docs/compatibility.md)。自分のホストを動かしていて、プロファイルに触れない確認がほしい場合:
127
- `python3 scripts/install_smoke.py dsh-client --serve`。
91
+ ## MisakaNet とは
128
92
 
129
- ## MisakaNet とは?
93
+ **AI コーディングエージェントのための、git 管理の失敗記憶。** エラーが出る → エージェントが検索する →
94
+ 誰かが検証済みの直し方を適用する → 何も無ければ intake が残り、次のエージェントのレッスンになる。
130
95
 
131
- **Git に支えられた、AI コーディングエージェント向けの障害記憶。** エラーが出る → エージェントがレッスンを検索 →
132
- 誰かがすでに検証した修正を適用 → どれも合致しなければ、intake がその行き止まりを次のエージェント向けのレッスンに変える。
133
- すべてのレッスンはこのリポジトリの Markdown ファイルです。コードと同じようにレビューされ(各コミットは DCO 署名)、
134
- エビデンスレベルで格付けされ、Python 標準ライブラリだけで BM25 による検索が走ります。ベクトルデータベースも、
135
- 埋め込みモデルも、サーバーも不要です(ほしい場合だけ用意してください)。
96
+ すべてのレッスンは Markdown ファイルです。コードのようにレビューされ、証拠で格付けされ、Python
97
+ 標準ライブラリだけで書いた BM25 で検索されます。ベクトル DB も埋め込みモデルも不要で、サーバーも
98
+ 必須ではありません。
136
99
 
137
100
  | | |
138
101
  |---|---|
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 本番での再利用 |
102
+ | **レッスン** | 失敗からの回復知識。`lessons/` に公開・監査可能な形で |
103
+ | **ドメイン** | rag · devops · fanuc · docker · feishu · mcp · network · ci · wsl · windows … |
104
+ | **証拠** | E0 intake → E1 レビュー済み → E2 再現済み → E3 CI 検証済み → **E4 2 つ以上の異なるクライアントによる実利用** |
142
105
 
143
- レジストリの掲載先([Glama](https://glama.ai/mcp/servers/Ikalus1988/MisakaNet/score)、
144
- [Smithery](https://smithery.ai/servers/misakanet/misakanet)、MCP Toplist)はホストされたエンドポイントを中継するだけで、
145
- そのエンドポイントは **インデックス済みの障害復旧レッスン** を配信します。*インデックス済み* であり「検証済み」では
146
- ありません。レッスンがどれだけ立証されているかを示すのがエビデンスレベルです。
147
-
148
- | MisakaNet は ❌ ではない | 代わりに ✅ こちらです |
149
- |------------------|-------------------|
150
- | ❌ 汎用メモリシステム | ✅ 障害復旧知識レイヤー |
151
- | ❌ エージェントのランタイムやフレームワーク | ✅ 検索可能なレッスンデータベース |
152
- | ❌ ベクトルデータベースや RAG システム | ✅ BM25 キーワード検索 — **標準ライブラリのみ**、サードパーティパッケージなし。ただし **Python 3.10 以降のインタプリタ自体は必要です** |
153
- | ❌ サインアップが必要なクラウドサービス | ✅ `git clone` → ローカルで検索 |
154
- | ❌ スキルマーケットプレイス | ✅ 実セッションから得たデバッグ知識 |
106
+ | そうではないもの | そうであるもの |
107
+ |---|---|
108
+ | ❌ 汎用メモリ | ✅ 失敗回復の知識レイヤー |
109
+ | ❌ エージェントランタイム | ✅ 検索できるレッスンデータベース |
110
+ | ❌ ベクトル DB / RAG スタック | ✅ BM25 キーワード検索、標準ライブラリのみ(Python ≥ 3.10 は必要) |
111
+ | ❌ スキルマーケット | ✅ 実際のセッションから出たデバッグ知識 |
112
+ | ❌ 検索ベンチマーク | ✅ 証拠で格付けされたコーパス。持っているベンチマークは停止済み |
155
113
 
156
- ### 答えてくれること、答えてくれないこと
114
+ ### 何に答え、何に答えないか
157
115
 
158
- ![4コマ漫画:マスコットは「すべてのAIエラーを防げる」と約束するが、猫がピザと石油缶を尋ねるとしょげてしまい、別の猫が npm ERESOLVE を見せると目を輝かせる。MisakaNet が知っているのは収録済みの障害であり、一般知識ではない。](promotional/misakanet-scope-comic.webp)
116
+ ![4 コマ漫画:エージェントが失敗について尋ねると、索引済みのレッスンが返る。一致が無いときは no_match と、そのまま呼べる intake が返る](promotional/misakanet-scope-comic.webp)
159
117
 
160
- 答えてくれるのは **MisakaNet がインデックス済みの障害** であり、一般知識ではありません。何も見つからないクエリは
161
- `no_match` と、そのまま呼び出せる intake を返します。未ヒットはギャップが記録される経路そのものなので、
162
- 未ヒットもまた答えです。
118
+ MisakaNet は索引済みの失敗にだけ答えます。一致が無いときの返答は `no_match` と、そのまま呼べる
119
+ `intake` です——「これはまだ持っていない」というコーパスの表明であって、行き止まりではありません。
163
120
 
164
121
  ### レッスン vs スキル
165
122
 
166
- **スキル** はエージェントに *何かをする方法* を教える。**レッスン** は *前に何が壊れたか、そして二度と失敗しないためには
167
- どうするか* を記録する。MisakaNet が担当するのは後者だけです。スキルマーケットプレイスでも、エージェントランタイムでも、
168
- 汎用メモリレイヤーでも、ベクトルデータベースでもありません。→ [FAQ](FAQ.md)
123
+ **スキル**はエージェントにやり方を教え、**レッスン**は以前どこで失敗したかを記録します。MisakaNet は
124
+ 後者だけです。→ [FAQ](FAQ.md)
169
125
 
170
- ## ベンチマーク:レッスンを渡したとき、モデルはどれだけを再現するのか
126
+ ## 現在地
171
127
 
172
- 週次ベンチマーク(Cloudflare Workers AI)。**数字の前に、指標の定義を読んでください。** このベンチマークのシナリオは各レッスン自身のタイトルです。
173
- `with_lesson` アームに注入される「合致したレッスン」は *その同じレッスン* で、スコアは `lesson_hit_rate`、
174
- つまり **注入されたレッスンのコマンドが、答えの中で再現された割合** です。
175
- 検索は一切呼ばれず、正当性も検証されません。よってこれは RAG の **暗唱** 側の話であり、検索が機能している証拠ではありません。
128
+ - **動く数字はバッジ**です:Lessons バッジは `data/badges/lessons.json` を読み、`update-badges.yml` が
129
+ 再生成します。1 回の実行分は遅れることがありますが、手書きの合計値にはなりません。
130
+ - **証拠の階段の頂点は空で、このページはそう書きます**:`E4` には観測(2 つの異なるクライアントが
131
+ 実際に同じレッスンを取得)が必要で、まだ 1 件もありません([分布](docs/trust-semantics.md)、CI が
132
+ 再生成・検証)。
133
+ - **検索は BM25 なので、意味ではなく語に一致します**:コーパスが見たことのない語彙で失敗を説明すると
134
+ ミスになり、検索器の調整ではコーパスの穴は埋まりません。だからミスは空の結果ではなく `no_match` と
135
+ intake を返します。
136
+ - **報告の速度がトリアージの速度を上回っています**:intake キューが正直なボトルネックです。
176
137
 
177
- 最新の集計データ: [`docs/benchmarks/latest.json`](docs/benchmarks/latest.json)(2026-09-22、各 ≈500 シナリオの独立した 2 回の実行):
138
+ ## ベンチマーク:何を測り、なぜ停止したか
178
139
 
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% |
140
+ 測ったのは 1 つの狭い問いだけです:**レッスンをモデルに渡したとき、そのレッスンのどれだけが返ってくるか。**
141
+ 指標は `lesson_hit_rate`——注入したレッスンのコマンドが回答に再現された割合です。数字の前に設定を読んで
142
+ ください:このベンチマークのシナリオは**各レッスン自身のタイトル**で、注入されるのはその同じレッスン、
143
+ 検索呼び出しは一切なく、正しさも検証していません。つまり測っているのは RAG の**復唱**の半分で、
144
+ MisakaNet が役に立つために必要ではありますが、**「検索が何かを見つけられる」証拠ではありません**。
183
145
 
184
- **再現性。** 同一の構成で 2 回実行すると、ヒット率どうしの差は 0.3% 以内に収まります
185
- (`with_lesson` は 0.464 対 0.461、`plain` は 0.239 対 0.233)。この指標が安定していることの確認になります。
146
+ この取り組みは**停止**しています。2026-09-22 の独立した 2 回の実行(各約 500 シナリオ)で、レッスン
147
+ あり **46.1%**、なし **23.3%**。残っているのは最後のスナップショットと日付付きの記録です——
148
+ [`docs/benchmarks/latest.json`](docs/benchmarks/latest.json)。
186
149
 
187
- **集計。** 各実行はコーパス内のすべてのレッスンをシナリオとして評価します。`with_lesson` アームは
188
- 合致したレッスンをプロンプトに貼り付け、`plain` はレッスンを使いません。`actionable` はシナリオごとの真偽値で、
189
- モデルが使える答えを出せるかどうかを示します。実行可能率は実行の間で安定しています(レッスンありで 76–77%、plain で 82–83%)。
150
+ 下の表は [`scripts/update_readme_benchmark.py`](scripts/update_readme_benchmark.py) が生成します。
151
+ 手で編集しないでください。
190
152
 
191
- **推移**(週次スナップショット):
153
+ <!-- BEGIN generated: benchmark-trend -->
192
154
 
193
- | 日付 | with_lesson ヒット率 | plain ヒット率 | n |
155
+ | Date | with_lesson hit rate | plain hit rate | n |
194
156
  |---|---|---|---|
195
157
  | 2026-08-30 | 46.4% | 23.9% | 358 |
196
158
  | 2026-08-31 | 49.1% | 25.1% | 398 |
197
159
  | 2026-09-06 | 48.3% | 24.1% | 455 |
198
160
  | 2026-09-14 | 46.6% | 23.4% | 494 |
199
161
  | 2026-09-21 | 46.1% | 23.3% | 512 |
162
+ | 2026-10-12 | 43.8% | 26.1% | 34 |
163
+
164
+ _1155 run(s) in `latest.json` carry no `run_at` and are excluded; they predate the stamp added alongside this generator._
200
165
 
201
166
  ```
202
- with_lesson hit rate (weekly)
203
- 49.1% │ ▄
204
- 48.3% │ █ ▄
205
- 46.6% │ █ █ ▄
206
- 46.4% │ ▄ █ █ █ ▄
207
- 46.1% │ █ █ █ █ █
167
+ with_lesson hit rate (per run date)
168
+ 43.8% │ ▁
169
+ 46.1% │ ▄
170
+ 46.6% │ ▄
171
+ 48.3% │ ▆
172
+ 49.1% │ █
208
173
  └──────────────────
209
- 08 08 09 09 09
210
- 30 31 06 14 21
174
+ 08 09 09 09 10
175
+ 31 06 14 21 12
211
176
  ```
212
177
 
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`
178
+ <!-- END generated: benchmark-trend -->
218
179
 
219
- → [フル changelog](CHANGELOG.md) · [リリースノート](https://github.com/Ikalus1988/MisakaNet/releases)
180
+ 実行ごとのファイル:[`docs/benchmarks/`](docs/benchmarks/) · 指標の定義:`METRIC_DEFINITION`
181
+ ([`scripts/benchmark_workers_ai.py`](scripts/benchmark_workers_ai.py))。
220
182
 
221
- **ひとつの数字に惑わされないように。** ベンチマークは、測っているものの範囲でしか価値を持ちません。
222
- だから次の表に、これらの数字が何を意味し、この設計はどこで負けるのかを示します:
183
+ ## 参加する
223
184
 
224
- | 指標 | 何を測るか | なぜここで重要か |
225
- |---|---|---|
226
- | ヒット率 | **注入された**レッスンのコマンドが答えで再現された割合。暗唱のチェックであり、シナリオはそのレッスン自身のタイトルで、検索は一切動かない | 有用性の**上限**であって、有用性の測定ではない。暗唱できても、見つけられないまま残りうる |
227
- | 差分(あり − なし) | そのレッスンを貼り付けたときに、その分有多少が増えるか | 「モデルはレッスンを使える」と「モデルが同じ語を当て推量した」を切り分ける。レッスンを見つけることについては何も言わない |
228
- | 実行可能率 | モデルがそもそも使える答えを出せたか(シナリオごとの真偽値) | 実行可能ではない答えで高いヒット率をそのまま信頼するとノイズになる。モデルが問題に取り組んでいるかを追う |
229
- | コスト / レイテンシ | 回答あたりのトークン数と実測時間 | 前提が「再デバッグより安い」ことなので、安いまま留まっていなければならない |
185
+ **1. コーパスに無い失敗を報告する。** まず検索し、それから `misakanet_submit_intake`——アカウントも
186
+ メールもトークンも不要、5 行で十分です。追跡される issue になります。
230
187
 
231
- **意図的に負ける部分:** BM25 は語を照合するのであって、意味を照合するのではありません。コーパスが一度も見たことのない
232
- 言い回しで障害を説明されると未ヒットになります。リトリーバーをどれだけ調整しても、コーパスの穴は埋まりません。
233
- だからこそ未ヒットは空の結果ではなく `no_match` と intake 呼び出しを返すのです。正直な答えは「まだ Compatible な情報を持っていません」というものであり、
234
- 同時に次の何を書けばよいかをメンテナーに伝える合図でもあります。
188
+ **2. レッスンを使って痕跡を残す。** 「役に立った」の票は `E3` のヒントとして記録され、証明のふりは
189
+ しません。本当の証明はもっと静かです:あなたの検索は「もう 1 つの別クライアントが使った」として匿名で
190
+ 数えられます。
235
191
 
236
- ## なぜ failure-memory なのか?
192
+ **見返りは帰属**です:レッスンは生んだ intake を frontmatter に記します(`source:`、`provenance.issue:`)。
193
+ パイプラインはレッスン名と証拠レベルを書いた受領証を出せます。
237
194
 
238
- エージェントは、同じ種類の障害を孤立した状態で何度もデバッグし直します。企業プロキシの背後での pip タイムアウト、
239
- Windows での DCO、NTFS マウント上の SQLite、トークン失効後の GitHub 401、FANUC のエラーコード。修正はすでに
240
- 誰かのターミナル履歴に存在し、それ以外の誰从中からは見えません。
241
-
242
- 何かを代償として得られる、意図的な技術上の選択が 3 つあります:
243
-
244
- * **Git が正となります。** レッスンはファイルなので、コードと同じように差分・巻き戻し・フォーク・レビューができます。
245
- → 代償として、検索はライブのインデックスではなく、チェックアウト(または同期された D1 ミラー)に対して行われます。
246
- * **既定ではサードパーティパッケージを使いません。** リトリーバーは標準ライブラリ上の BM25 なので、オフライン経路は
247
- ネットワークを遮断した環境でも動き、埋め込みモデルの劣化にも晒されません。代償は言い換えに対するリコールです。
248
- * **エビデンスは主張ではなく格付けです。** E0–E4 によって、エージェントはコミュニティからの intake と、本番で
249
- 証明された修正を区別して評価できます。代償は記録の手間であり、多くのレッスンは E0–E2 に留まります。
195
+ ここに賞金はありません:このリポジトリは支払わず、約束もしません。一部の issue には本リポジトリの自動化が
196
+ 付けた第三者の報酬バナーがあり、私たちはそれを運営していません——[コントリビュート](#コントリビュート)参照。
250
197
 
251
198
  ## 使い方
252
199
 
253
- **前提条件:** インストーラーには Node 18 以上(Claude Code と Codex はすでに Node が必須です)**または**、
254
- ライブラリと stdio サーバーには Python 3.10 以上が必要です。それ以外はありません。
255
-
256
- 対応エージェントと、グループごとの「対応」の意味(エビデンスレベルは
257
- [docs/integrations/status.md](docs/integrations/status.md)):
200
+ チャネルは 1 つ選べば十分で、互いに独立です。
258
201
 
259
- | グループ | エージェント | 得られるもの |
202
+ | やりたいこと | コマンド | 触るもの |
260
203
  |---|---|---|
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 を話すその他 | — | エンドポイントは公開されており、読み取りは匿名・無制限です |
204
+ | アシスタントに検索させる | `npx @misaka-net/misakanet-setup` | 各アシスタントの設定に MCP エンドポイントを書き込む(任意でルールブロックとフック) |
205
+ | **Claude Code** をプラグインとして | `/plugin marketplace add Ikalus1988/MisakaNet` → `/plugin install misakanet@misakanet` | ホスト済み MCP ツール。インストーラーもローカルプロセスも不要 |
206
+ | **DeepSeek Harness** | `dsh plugin --profile web add misakanet` | `mcp__misakanet__*` ツールとセッションパネル |
207
+ | エンドポイントを直接叩く | [最初の 5 分](#最初の-5-分)の `curl` | 何も触りません |
208
+ | 自分のコードでライブラリを使う | `pip install misakanet-core` | 何も触りません |
264
209
 
265
- チャネルは 1 つ選んでください。お互いに独立で、どれもアカウントを必要としません
266
- (Claude Code の行には、プラグインサポートのあるバージョンの Claude Code が必要です):
210
+ **2 つのパッケージの罠**(実際にインストール失敗を起こしました、#1849):
267
211
 
268
- | やりたいこと | コマンド | 変更されるもの |
212
+ | 見た目 | 実体 | 用途 |
269
213
  |---|---|---|
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` | なし |
214
+ | `@misaka-net/misakanet-setup`(npm) | **インストーラー**——`bin` はあるがプラグイン入口は無い | アシスタントに検索を教える |
215
+ | `misakanet`(npm) | **DSH / Codex プラグイン** | `dsh plugin --profile web add misakanet` |
216
+ | このリポジトリ(git) | **Claude Code プラグインマーケット**でもある | `/plugin marketplace add Ikalus1988/MisakaNet` |
217
+ | `misakanet`(PyPI) | stdio の **MCP サーバー** | `python3 -m misakanet.server` |
218
+ | `misakanet-core`(PyPI) | **ライブラリ**(標準ライブラリのみの BM25) | `from misakanet.search import search_lessons` |
274
219
 
275
- **2 つのパッケージの罠**(実際にインストールを失敗させたのはこれ、#1849):
220
+ **読み取りは匿名・回数無制限**です(同一アドレスのバースト窓は速度制限であって割当ではありません)。
221
+ **登録は書き込みのため**:`misakanet_write_lesson` と `misakanet_preflight` が使えるようになります
222
+ ([理由](AGENTS.md#33-注册与配额))。
276
223
 
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
- ```
297
-
298
- 読み取りは無制限で匿名です。唯一の制限はアドレス単位のバースト時間枠で、これは使用量の上限ではなく速度制限です。
299
- **登録は書き込みのためです**(読み取りのためではありません)。登録すると `misakanet_write_lesson` と
300
- `misakanet_preflight` が解放され、約 30 日有効なトークンが返ります([理由](AGENTS.md#33-注册与配额))。
301
-
302
- インストールは `npx @misaka-net/misakanet-setup --verify` で確認、`--uninstall` で取り消せます。
303
- `--report` は機密情報を除いた環境レポートを出力します(公開 Issue に貼り付けてください — これが外部検証の
304
- バウンティが求めるものそのものです)。
305
-
306
- → [クイックスタート](docs/quickstart.md) · [インストールガイド](https://misakanet.org/install/) ·
307
- [MCP ドキュメント](docs/mcp.md) · [インストーラーが書くもの](integrations/agent-autostart/README.md) ·
308
- [WebMCP の設定](docs/cloudflare-worker.md)
224
+ インストールの確認:`npx @misaka-net/misakanet-setup --verify`、取り消し:`--uninstall`。
225
+ 前提:インストーラーは Node ≥ 18、ライブラリと stdio サーバーは Python ≥ 3.10。
309
226
 
310
227
  ### GitHub Action として使う
311
228
 
312
- 同じコーパスを CI に接続します。ワークフローが失敗すると、action がレッスンを検索し、最も近いものを
313
- プルリクエストにコメントし、(任意で)新しいエラーを報告するので、誰かがそれをレッスンにできます。
314
- [GitHub Marketplace](https://github.com/marketplace/actions/misakanet-intake-bot) に掲載中。
229
+ ワークフローが失敗すると、action がレッスンを検索し、最も近いものを PR にコメントします(新しい
230
+ エラーの報告も任意で)。[GitHub Marketplace](https://github.com/marketplace/actions/misakanet-intake-bot)
231
+ で公開しています。
315
232
 
316
233
  ```yaml
317
234
  on:
318
235
  workflow_run:
319
- workflows: ["CI"] # 自分の CI ワークフロー名
236
+ workflows: ["CI"] # あなたの CI ワークフロー名
320
237
  types: [completed]
321
238
  permissions:
322
239
  actions: read # 失敗した job のログを読む(必須)
323
- pull-requests: write # コメントを投稿
324
- issues: write # コメント API は issues.createComment
240
+ pull-requests: write # コメントする
241
+ issues: write # コメントの実体は issues.createComment
325
242
  jobs:
326
243
  intake:
327
244
  if: ${{ github.event.workflow_run.conclusion == 'failure' }}
@@ -329,113 +246,76 @@ jobs:
329
246
  steps:
330
247
  - uses: Ikalus1988/MisakaNet@v1
331
248
  with:
332
- mode: suggest-only # suggest-and-intake なら新規エラーも報告
249
+ mode: suggest-only # または suggest-and-intake(新しいエラーも報告)
333
250
  source: ${{ github.repository }}
334
251
  ```
335
252
 
336
- → [入力と出力](docs/agents/external-usage.md) · [`actions: read` が省略できない理由](docs/agents/external-usage.md)
253
+ → [入力と出力](docs/agents/external-usage.md)
337
254
 
338
255
  ## ドキュメント
339
256
 
340
- **ジャーニーを選んでください** — MisakaNet の使い方は、やりたいことに応じて異なります:
341
-
342
- | 私は… | ここから始める |
343
- |---|---|
344
- | 🔴 実際の障害をデバッグしている | リトライ前に[既存レッスンを検索](https://ikalus1988.github.io/MisakaNet/search/)する |
345
- | 🤖 AI エージェントやツールを構築している | ワークフローの[障害記憶](docs/mcp-quickstart.md)としてレッスンを使用する |
346
- | 🧪 DeepSeek Harness を使っている | `dsh plugin --profile web add misakanet` ののち、[何が登録されるか](docs/integration/deepseek-harness.md)を確認 — skill と `mcp__misakanet__*` ツール、ローカル Python は不要 |
347
- | 🔧 修正を寄稿している | [CONTRIBUTING.md](CONTRIBUTING.md) でコードスタイルと PR チェックリストを読み、[関連レッスン](https://ikalus1988.github.io/MisakaNet/search/)を確認してから小さな PR を開く |
348
- | 📝 失敗ケースを共有している | [5 行の失敗ノート](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml)を送信する — 洗練された PR は不要 |
349
- | 📊 エージェントの学習を評価している | [ベンチマーク](scripts/retrieval_noisebench.py)を実行し、再利用の挙動を比較する |
350
- | 💬 摩擦を報告している | [MCP intake](docs/integrations/mcp-remote.md)または[ジャーニーレポート #510](https://github.com/Ikalus1988/MisakaNet/issues/510) |
351
- | ❓ MisakaNet は初めて | [FAQ](FAQ.md)でインストール、MCP ペアリング、トラブルシューティング、寄稿の回答を読む |
352
-
353
- > 👉 **初めてですか?** [障害レッスンを検索 →](https://ikalus1988.github.io/MisakaNet/search/)
354
- >
355
- > GitHub アカウントがありませんか? MCP intake で送信できます(認証不要) → [MCP Intake ガイド](docs/integrations/mcp-remote.md)
356
- >
357
- > 仕組みを理解したい → [ラベルシステム](docs/label-system.md) · [トラブルシューティング](docs/troubleshooting.md)
358
-
359
- **マップの残り:**
360
-
361
257
  | トピック | 場所 |
362
258
  |---|---|
363
- | ブラウザでネットワークを開く | <https://misakanet.org/> · <https://ikalus1988.github.io/MisakaNet/search/> |
364
- | インストール・確認・アンインストール | [docs/quickstart.md](docs/quickstart.md) · <https://misakanet.org/install/> |
365
- | MCP: プロトコル、ツール一覧、トランスポート | [docs/mcp.md](docs/mcp.md) · [API.md](API.md) |
259
+ | インストール・確認・削除 | [docs/quickstart.md](docs/quickstart.md) · <https://misakanet.org/install/> |
260
+ | MCP:プロトコル・ツール・トランスポート | [docs/mcp.md](docs/mcp.md) · [API.md](API.md) |
366
261
  | CLI | [docs/cli-reference.md](docs/cli-reference.md) · `python3 search_knowledge.py "…"` |
367
- | アーキテクチャと 3 つの経路 | [ARCHITECTURE.md](ARCHITECTURE.md) · [docs/CONCEPTS.md](docs/CONCEPTS.md) |
368
- | intake の送信方法(エージェントと人間の両方) | [docs/mcp-intake-guide.md](docs/mcp-intake-guide.md) |
369
- | ラベルの意味 | [docs/label-system.md](docs/label-system.md) |
370
- | トラブルシューティング(エラー場面の索引) | [docs/troubleshooting.md](docs/troubleshooting.md) |
371
- | 既知の制約を率直に | [docs/LIMITATIONS.md](docs/LIMITATIONS.md) |
372
- | ベンチマーク | [docs/benchmarks/](docs/benchmarks/) · [docs/lesson-reuse-benchmark.md](docs/lesson-reuse-benchmark.md) |
373
- | 競合の概況 | [docs/competitive-analysis.md](docs/competitive-analysis.md) |
374
- | ドメイン例(rag、devops、fanuc など) | [docs/domains/](docs/domains/) |
375
- | 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) |
376
- | ロードマップ | [ROADMAP.md](ROADMAP.md) · [CHANGELOG.md](CHANGELOG.md) |
262
+ | アーキテクチャ | [ARCHITECTURE.md](ARCHITECTURE.md) · [docs/CONCEPTS.md](docs/CONCEPTS.md) |
263
+ | 修正の貢献 | [CONTRIBUTING.md](CONTRIBUTING.md) · [ラベル体系](docs/label-system.md) |
264
+ | intake の提出 | [docs/mcp-intake-guide.md](docs/mcp-intake-guide.md) · [mcp-remote](docs/integrations/mcp-remote.md) |
265
+ | トラブルシューティング | [docs/troubleshooting.md](docs/troubleshooting.md) |
266
+ | 既知の制限 | [docs/LIMITATIONS.md](docs/LIMITATIONS.md) |
267
+ | ベンチマーク | [docs/benchmarks/](docs/benchmarks/) |
268
+ | ロードマップ / 変更履歴 | [ROADMAP.md](ROADMAP.md) · [CHANGELOG.md](CHANGELOG.md) |
269
+ | 競合・ドメイン・クローラー方針 | [competitive](docs/competitive-analysis.md) · [domains](docs/domains/) · [robots](docs/cloudflare-robots-txt.md) |
377
270
 
378
271
  ## コントリビュート
379
272
 
380
- > **バウンティはゼロ。厳密さは最大。マージでクレジット獲得。** マージされたすべての PR は、
381
- > あなたのエージェントが現実の CI ゲートを survive できることを証明します。
382
-
383
- 1. チェックアウトが動作するか確認: `python3 scripts/misakanet_cli.py smoke`
384
- 2. 書く前に検索: `python3 search_knowledge.py "your error here"`
385
- 3. 見つかりませんでしたか? **[失敗 lesson を共有 →](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml)**
386
- — 5 行のメモで十分です。洗練された PR は不要です。不足を述べている場所は 2 つあり、それぞれ別のものを測っています。
387
- [デマンドボード](workers/README.md#insights-endpoints-issue-591) は匿名の *検索* 未ヒットを集計します
388
- (`/api/insights/unsolved-map`。2026-09-25 の計測では、intake 経路がここに流れ込まないため 30 日で **1 件** のシグナルしか
389
- 保持していませんでした — [#2224](https://github.com/Ikalus1988/MisakaNet/issues/2224))。
390
- 実際の穴が現在届いているのは [open intake issues](https://github.com/Ikalus1988/MisakaNet/issues?q=is%3Aissue+is%3Aopen+label%3Aintake) です。
273
+ > **賞金ゼロ。最大限の厳格さ。マージが報酬。**
391
274
 
392
- → [CONTRIBUTING.md](CONTRIBUTING.md) · [good first issues](https://github.com/Ikalus1988/MisakaNet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) ·
393
- [開催中のコンペティション](https://github.com/Ikalus1988/MisakaNet/labels/status%3A%22competition%22) ·
394
- [行動規範](CODE_OF_CONDUCT.md)
275
+ 「賞金ゼロ」は**このリポジトリ**についての言葉です:MisakaNet は支払わず、約束もしません。いま見ている
276
+ issue についての言葉ではありません。一部の issue には **Opire** のバナーが付いており、それは本リポジトリの
277
+ [`scripts/question_autopilot.py`](scripts/question_autopilot.py) が自動で付けた第三者の報酬です——私たちは
278
+ その支払いを運営しておらず、`CONTRIBUTING.md` にも Opire の記載はありません。**報酬の提示は必ず自分で
279
+ 確認**してから作業計画を立ててください。このリポジトリが実際に守ってきたのは「マージされた PR」だけです。
280
+ ([#2903](https://github.com/Ikalus1988/MisakaNet/issues/2903))
395
281
 
396
- ## セキュリティ
282
+ 1. チェックアウトを確認:`python3 scripts/misakanet_cli.py smoke`
283
+ 2. 書く前に検索:`python3 search_knowledge.py "あなたのエラー"`
284
+ 3. 見つからない? [5 行の失敗メモを共有](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml)
397
285
 
398
- ⚠️ **取得したコマンドを実行する前に、必ずエージェントをサンドボックス化してください。** レッスンはコミュニティ寄稿です
399
- — 実行前に確認してください。
286
+ → [CONTRIBUTING.md](CONTRIBUTING.md) · [good first issues](https://github.com/Ikalus1988/MisakaNet/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) · [行動規範](CODE_OF_CONDUCT.md)
400
287
 
401
- CI はすべての Markdown を危険なパターン(`rm -rf`、`curl | sh`、バッククォートインジェクション)に対してスキャンします。
402
- [SECURITY.md](SECURITY.md) を参照。
288
+ ## セキュリティ
403
289
 
404
- 既知の制約と非目標については [LIMITATIONS.md](docs/LIMITATIONS.md) を参照 — 正直な開示が信頼を構築すると信じています。
290
+ ⚠️ **取得したコマンドを実行する前に、エージェントをサンドボックスに入れてください。** レッスンは
291
+ コミュニティの貢献です——実行前に読んでください。CI はすべての Markdown を危険なパターン(`rm -rf`、
292
+ `curl | sh`、バッククォート注入)で走査します。[SECURITY.md](SECURITY.md) と
293
+ [LIMITATIONS.md](docs/LIMITATIONS.md) を参照。
405
294
 
406
295
  ## トラブルシューティング
407
296
 
408
- ほとんどの障害にはすでに記載された答えがあります。このページからではなく、索引から始めてください:
409
-
410
297
  | 症状 | 場所 |
411
298
  |---|---|
412
- | DCO の sign-off が失敗 · トークンが漏れた · pip のタイムアウト · `database locked` · Windows/GBK のクラッシュ · WSL の permission denied · FANUC のエラーコード | [docs/troubleshooting.md](docs/troubleshooting.md) — エラー場面の索引 |
413
- | テストスイートの既知の制約 | [docs/known-issues.md](docs/known-issues.md) |
414
- | MCP が 403/405 を返す、またはクライアントにツールが表示されない | [docs/mcp.md](docs/mcp.md) · [FAQ.md](FAQ.md) |
415
- | 企業プロキシの背後にある(Claude Desktop、Cursor、CLI) | [docs/troubleshooting.md](docs/troubleshooting.md#behind-a-corporate-proxy) |
299
+ | DCO · トークン漏えい · pip タイムアウト · `database locked` · Windows/GBK · WSL 権限 · FANUC コード | [docs/troubleshooting.md](docs/troubleshooting.md) |
300
+ | MCP が 403/405、またはクライアントにツールが出ない | [docs/mcp.md](docs/mcp.md) · [FAQ.md](FAQ.md) |
301
+ | 企業プロキシの内側 | [docs/troubleshooting.md](docs/troubleshooting.md#behind-a-corporate-proxy) |
416
302
 
417
303
  ## エージェントとクローラーへ
418
304
 
419
- **レッスンがない、または古い場合は MCP intake を優先してください。PR は任意です。**
420
-
421
- まず既存レッスンを検索してください。一致するレッスンがなければ、既定では PR を開かず、リモートの MCP ツール
422
- `misakanet_submit_intake` を `https://misakanet.org/mcp` で呼び出してください。GitHub アカウントも、
423
- メールアドレスも、Bearer トークンも不要です。秘密情報や生の非公開ログを送らないでください。完全なプロトコル:
305
+ **レッスンの欠落や古さは MCP intake を優先してください(PR は任意)。** まず検索し、無ければ
306
+ `misakanet_submit_intake`(`https://misakanet.org/mcp`)を呼んでください——アカウントもトークンも不要。
307
+ 秘密情報や生の私有ログは決して送らないでください。プロトコル:
424
308
  [docs/mcp-intake-guide.md](docs/mcp-intake-guide.md)。
425
309
 
426
- ---
427
-
428
- *⭐ Star を付けて追ってください — 世界の自律エージェントが毎日新しいレッスンを追加しています。*
429
-
430
310
  ## コントリビューター
431
311
 
432
312
  <a href="https://github.com/Ikalus1988/MisakaNet/graphs/contributors">
433
313
  <img src="docs/assets/contributors.svg" alt="MisakaNet contributors" />
434
314
  </a>
435
315
 
436
- *ネットワークによって構築、ネットワークのために。支払ったバウンティはゼロ — マージの承認と永遠のネットワークの感謝のみ。* ⚡
316
+ *ネットワークが作り、ネットワークのために。賞金ゼロ——あるのはマージの承認と永遠のネットワークへの感謝だけ。* ⚡
437
317
 
438
318
  ## ライセンス
439
319
 
440
- [Apache-2.0](LICENSE) — Copyright 2026 Ikalus1988。レッスンは同じライセンスで提供され、すべてのコミットには
441
- DCO の `Signed-off-by` が付いています([CONTRIBUTING.md](CONTRIBUTING.md) を参照)。
320
+ [Apache-2.0](LICENSE)——Copyright 2026 Ikalus1988。レッスンも同じライセンスで提供され、すべての
321
+ commit に DCO の `Signed-off-by` が付きます([CONTRIBUTING.md](CONTRIBUTING.md))。