コンテンツにスキップ

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.jsonAPI Key・TLS 自己署名証明書の秘密鍵が平文 で保存されていることを発見。

修正:

- .obsidian/workspace*
- .obsidian/cache
+ .obsidian/
.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 点:

  1. Gemini CLI の MCP 設定スキーマは Claude Code とほぼ同等mcpServers.<name>.{url, type, headers}。これは Stage 1 で kudo-shared-storage-protocol に「vendor-neutral MCP 設定原則」として明文化できる。新しい AI を足すときの作業がほぼ機械的になる。

  2. ヘッダー指定の罠:HANDOFF テンプレートに「<API_KEY> を置換」とだけ書いてあると、値だけを渡してしまい header name Authorization: が抜けるミスを誘発(実際に今回 1 回ハマった)。AI-ACCESS.md の接続エンドポイント節に「フルヘッダー形式 Authorization: Bearer <KEY> で渡すこと」を明記する書き方が良い。

  3. Obsidian プラグイン data.json が秘密の宝庫:プラグインを増やすたびに .obsidian/plugins/*/data.json を確認する習慣を Stage 1 のスキル kudo-process-inbox か別の運用スキルに組み込んだ方が良い。

  4. 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 方針通り一切触らず)