KUDO-Vault Stage 0.5 完了報告¶
結論¶
- 完遂:Task A(global CLAUDE.md 追記)/Task B(Gemini CLI 導入+ MCP 登録+接続検証)/Task C(AI-ACCESS.md 生成)/Git commit
- 接続検証:MCP 層 ✓ Connected。Gemini LLM 層経由の MCP tool call も end-to-end 検証済み(追検証 2026-05-18 同日中に工藤さん手元で
gemini --skip-trust対話起動→vault_readツール経由でmemory/MEMORY.md取得成功) - 持ち越しタスク:Stage 0 完了後の前回ターンで既に処理済み(事前確認で再検証)
- 重要な発見:
.obsidian/plugins/obsidian-local-rest-api/data.jsonに API Key と TLS 秘密鍵が平文格納されていた。.gitignoreで.obsidian/全体除外に修正してから commit
Task A — global CLAUDE.md 追記¶
- 対象:
~/.claude/CLAUDE.md(既存 6269 bytes・§1〜§4.3) - バックアップ:
~/.claude/CLAUDE.md.bak.2026-05-18 - 追記内容:
## KUDO-Vault — AI外部記憶(2026-05-18 試用期間中)セクション(HANDOFF §1-2 仕様通り) - 既存内容:完全に無変更(Edit ツールで末尾追加のみ)
Task B — Gemini CLI 導入+ Obsidian MCP 登録¶
B-1. 導入¶
- npm prefix:
/opt/homebrew(書き込み可・sudo 不要) - インストール:
npm install -g @google/gemini-cli→ 7 packages 追加・2秒 - 確認:
/opt/homebrew/bin/gemini/ version 0.42.0
B-2. MCP 設定仕様確認¶
Gemini CLI v0.42.0 は Claude Code とほぼ同等の mcp add インターフェース:
gemini mcp add <name> <commandOrUrl> [args...]
-t/--transport <stdio|sse|http>
-H/--header "Header-Name: value"
-s/--scope <user|project>
settings.json 上のスキーマは mcpServers.<name>.{url, type, headers} 形式
B-3. 登録ハマりどころと修正¶
- 初回登録時、API Key を
~/.claude.jsonから取り出した値Bearer xxxだけを-Hに渡したため、Gemini CLI 側で「Key: Value形式でない」と判断されheaders: {}で保存され Disconnected - 正しい記法
-H "Authorization: Bearer xxx"で再登録 → ✓ Connected - 結果ファイル:
~/.gemini/settings.json(新規作成・user scope) - 既存 mcpServers エントリは無かった(新規ファイル)ためマージ不要
B-4. 接続検証(2 レイヤー分離記録)¶
| レイヤー | 結果 | 根拠 |
|---|---|---|
| MCP 層 | ✓ Connected | gemini mcp list で「✓ obsidian: http://127.0.0.1:27123/mcp/ (http) - Connected」確認 |
| LLM 層(実 tool call) | ✓ 検証済み | 同日中に追検証:gemini --skip-trust を ~/KUDO-Vault で対話起動 → 「obsidian MCP を使って memory/MEMORY.md の最初の5行を表示して」のプロンプト → Gemini が vault_read (path: memory/MEMORY.md) ツールコールを要求 → "Allow tool for this session" 承認 → frontmatter 4 行 (--- / type: memory-index / updated: 2026-05-18 / ---) を正しく取得し提示 |
初回 -p headless 実行では「Please set an Auth method...」エラーで止まったが、対話起動経由で Google 認証フローを完了させたところ MCP→LLM 経路が end-to-end で動作。今後の headless 実行も同じ認証情報を使う。
Task C — AI-ACCESS.md 生成¶
- 配置:
~/KUDO-Vault/AI-ACCESS.md - HANDOFF §3 テンプレを実機事実で上書きした実態版を生成
- 内容:接続エンドポイント表/AI別接続状況テーブル(5 行)/vendor-neutral 設計原則/WorkFlowy 別系統の明示
- 特に Gemini CLI 行は「MCP 層 ✓・LLM 層 ✗(認証待ち)」と分離して記述
Git commit¶
- 対象:
AI-ACCESS.md(新規)/.gitignore(変更) - commit ハッシュ:
8d66ef7 - メッセージ:
Stage 0.5: Add AI-ACCESS.md and exclude .obsidian/ (contains secrets) - 統計:2 files changed, 57 insertions(+), 2 deletions(-)
.gitignore 修正の背景(重要)¶
Obsidian 初回起動で .obsidian/ ディレクトリが自動生成され、その中の
.obsidian/plugins/obsidian-local-rest-api/data.json に API Key・TLS 自己署名証明書の秘密鍵が平文 で保存されていることを発見。
修正:
→.obsidian/ 全体を git 管理外に。コミット前に staged/untracked 両方を API Key 文字列で grep → 0 hits を確認してから commit。
副作用:プラグイン構成(community-plugins.json 等)も git に入らない。Stage 1 でボルト構成を別マシンに復元したい場合は手動で .obsidian/community-plugins.json 等の特定ファイルだけ allowlist する想定。
検証チェックリスト¶
- Task A:global CLAUDE.md をバックアップ後、KUDO-Vaultセクションを末尾追記。既存内容は無変更
- Task B:Gemini CLI の導入有無を確認(未導入→工藤さんへ相談→ npm install 承認)
- Task B:
~/.gemini/settings.jsonを作成(既存無し)→ obsidian MCP 追記。マージ不要 - Task B:Gemini CLI から obsidian MCP 接続確認(MCP 層 ✓・LLM 層 ✓ 同日中に end-to-end 検証完了)
- Task C:
~/KUDO-Vault/AI-ACCESS.mdを実機確認済みの実態を反映して作成 - 持ち越し:bash 履歴の API Key 行(事前確認で 0 hits 確認・対象なし)
- 持ち越し:
~/KUDO-Vault/無題のファイル.md(事前確認で既に削除済み) - 全タスク非破壊:既存の三重保存・既存スキル・既存設定に上書き削除なし(追記 or 新規作成 or バックアップ後マージ)
- Git:
~/KUDO-Vaultの変更(AI-ACCESS.md 追加・.gitignore 更新)をコミット
工藤さんへの申し送り¶
1. Gemini CLI 認証(完了済み)¶
~~LLM 層の検証を完了させるには〜~~ 2026-05-18 同日中に完了。gemini --skip-trust で対話起動して Google 認証 → MCP 経由読み取り成功を確認。今後 headless 実行も以下で動く想定:
cd ~/KUDO-Vault && gemini --yolo --skip-trust --allowed-mcp-server-names obsidian \
-p "Use the obsidian MCP to read memory/MEMORY.md and show the first 5 lines"
2. .obsidian/ 除外による副作用¶
- ボルトを別マシンに git 経由で復元する場合、Obsidian プラグイン構成は再現されない
- 必要なら
community-plugins.jsonだけホワイトリスト化を検討(!.obsidian/community-plugins.jsonのような allowlist パターン) - ただし
data.json系は 絶対に commit しない(API Key・TLS 秘密鍵が入る)
3. Claude Desktop の再起動(Stage 0 から持ち越し)¶
Stage 0 で claude_desktop_config.json をマージしましたが、Desktop アプリの再起動は未実施です。obsidian MCP を Desktop 側でも使いたい場合は Desktop を再起動してください。
4. 試用期間中の観察項目¶
global CLAUDE.md に「試用期間中の運用」セクションを追記済み。〜2026-05-25 目安で、Vault 構造・MCP 挙動・記憶の読み書きで気づいた点を ~/KUDO-Vault/logs/ または ~/KUDO-Vault/memory/insights/ に書き留めるよう Claude Code に指示済みです。
Stage 1 への観察メモ(このセットアップ中の気づき)¶
設計材料として 4 点:
-
Gemini CLI の MCP 設定スキーマは Claude Code とほぼ同等:
mcpServers.<name>.{url, type, headers}。これは Stage 1 でkudo-shared-storage-protocolに「vendor-neutral MCP 設定原則」として明文化できる。新しい AI を足すときの作業がほぼ機械的になる。 -
ヘッダー指定の罠:HANDOFF テンプレートに「
<API_KEY>を置換」とだけ書いてあると、値だけを渡してしまい header nameAuthorization:が抜けるミスを誘発(実際に今回 1 回ハマった)。AI-ACCESS.md の接続エンドポイント節に「フルヘッダー形式Authorization: Bearer <KEY>で渡すこと」を明記する書き方が良い。 -
Obsidian プラグイン data.json が秘密の宝庫:プラグインを増やすたびに
.obsidian/plugins/*/data.jsonを確認する習慣を Stage 1 のスキルkudo-process-inboxか別の運用スキルに組み込んだ方が良い。 -
Anthropic issue #123 が解けるまで Chat / Cowork は Vault に触れない:これは Stage 2 の絶対前提条件として
kudo-shared-storage-protocolの「マルチAI接続マトリクス」に状態管理項目を作っておくと良い(issue closed → Stage 2 着手トリガー)。
ファイル一覧¶
新規作成:
- ~/KUDO-Vault/AI-ACCESS.md
- ~/.gemini/settings.json
- ~/.claude/CLAUDE.md.bak.2026-05-18
- ~/working/_claude_workspace_global/reports/stage0-5-completion-2026-05-18.md(本ファイル)
変更:
- ~/.claude/CLAUDE.md:KUDO-Vault セクション追記(既存無変更)
- ~/KUDO-Vault/.gitignore:.obsidian/workspace* .obsidian/cache → .obsidian/ に拡張
- ~/KUDO-Vault/ git:commit 8d66ef7 作成
新規導入(システム):
- /opt/homebrew/bin/gemini v0.42.0(@google/gemini-cli)+依存パッケージ 7
変更なし:
- ~/.claude/skills/ 配下の既存 kudo-* スキル全て
- ~/.claude.json(Claude Code MCP 設定・Stage 0 のまま)
- ~/Library/Application Support/Claude/claude_desktop_config.json(Stage 0 のまま)
- ~/working/ 配下の他全ファイル
- WorkFlowy(HANDOFF §4 方針通り一切触らず)