ブートストラップ設定の初期化
このコマンドは、Obsidianのワークフローと設定に関する質問を対話形式で行い、パーソナライズされたCLAUDE.md設定ファイルを作成するのに役立ちます。
タスク
CLAUDE-BOOTSTRAP.mdテンプレートを読み、以下の情報を対話形式で収集します。
- 既存のVault構造(ある場合)
- ワークフローの設定
- ノートの取り方のスタイル
- 整理方法
- 特定の要件
その後、ユーザーのニーズに合わせたカスタマイズされたCLAUDE.mdファイルを生成します。
プロセス
-
初期環境セットアップ
dateコマンドで現在の日付を取得(タイムスタンプ用)- 現在のフォルダ名を確認し、名前を変更するかどうかを尋ねる
- 「はい」の場合、名前変更をガイドする(親ディレクトリへの移動を処理)
package.jsonを確認し、依存関係をインストール:- まず
pnpm installを試みる(より高速で優れている) - pnpmが利用できない場合は
npm installにフォールバック
- まず
- コア依存関係がインストールされていることを確認
- gitステータスを確認:
.gitフォルダがない場合:gitリポジトリを初期化- リモートオリジンがある場合:開発作業について尋ねる
- 個人用Vault:オリジンと
.githubフォルダを削除 - コントリビュート:オリジンとワークフローをそのまま保持
- 個人用Vault:オリジンと
- クリーンなローカルリポジトリの場合:準備完了
- フォルダはまだ作成しない - 整理方法について尋ねた後まで待つ
-
既存の設定を確認
- 既存のCLAUDE.mdを探す
- 存在する場合、更新するか新しく作成するかを尋ねる
- CLAUDE-BOOTSTRAP.mdテンプレートを確認
-
Vault情報を収集
- 一般的な場所で既存のObsidian Vault(
.obsidianフォルダ)を検索 - これらのパスを適切な深さ制限で確認:
~/Documents(maxdepth 3)- すべてのプラットフォーム~/Desktop(maxdepth 3)- すべてのプラットフォーム~/Library/Mobile Documents/iCloud~md~obsidian/Documents(maxdepth 5 - macOSのみ、iCloud Vault)- ホームディレクトリ
~/(maxdepth 2)- すべてのプラットフォーム - カレントディレクトリの親(maxdepth 2)- すべてのプラットフォーム
- 見つかった場合、「[パス]でObsidian Vaultが見つかりました。これがインポートするVaultですか?」と尋ねる
- ファイル数を正しくカウント:
find [path] -type f -name "*.md" | wc -l(深さ制限なし) - Vaultサイズを表示:
du -sh [path] - 確認された場合、Vault構造を分析:
tree -L 3 -d [path]を実行してフォルダ階層を表示- 10~15個のランダムなノートをサンプリングしてコンテンツタイプを理解
- 30~50個の最新ファイル名をリストアップして命名パターンを検出
- デイリーノートフォルダとその形式を確認
- ファイル数で最もアクティブなフォルダを特定
- PARA、Zettelkasten、Johnny Decimal、またはカスタムを使用しているか検出
- 正しいVaultでない場合、または見つからなかった場合:
- macOSのみ:「VaultはiCloud Driveに保存されていますか? (はい/いいえ)」と尋ねる
- 「はい」の場合(macOS):「Vaultへのフルパスを入力してください(例:
/Library/Mobile Documents/iCloudmd~obsidian/Documents/YourVault)」 - 「いいえ」の場合、またはLinux/Windowsの場合:「既存のVaultへのパスを入力するか、新しく始める場合は'skip'と入力してください」
- ユーザー指定のパスを検証(以下の「ユーザーパス検証」セクションを参照)
- 既存のVaultがないか、ユーザーがスキップした場合、新規で開始
- 一般的な場所で既存のObsidian Vault(
-
設定質問を尋ねる
- 「お名前は?」(パーソナライズ用)
- 「あなたの公開された作品を調査して、コンテキストをよりよく理解してもよろしいですか?」
- 「はい」の場合:情報を検索
- 常に結果を表示し、「これは正しいですか?」と確認を求める
- 複数の人が見つかった場合、選択のために番号付きリストで表示
- 間違った人の場合、再検索するかスキップするかを提案
- 仕事、文体、専門分野に関する関連コンテキストを保存
- 「PARAメソッドに従っていますか、それとも別の整理システムをお持ちですか?」
- 「主なユースケースは何ですか?(研究、執筆、プロジェクト管理、ナレッジベース、デイリーノート)」
PARAを使用する場合、特定のセットアップ質問: PARA Method by Tiago Forte
- 「現在取り組んでいるアクティブなプロジェクトは何ですか?」(01_Projectsにフォルダを作成)
- 「維持している責任領域は何ですか?(例:仕事、健康、財務、家族)」
- 「頻繁に研究しているトピックは何ですか?」(03_Resourcesに設定)
- 「最近完了したプロジェクトはありますか?(要約付きでアーカイブ可能)」
一般設定:
.obsidian/community-plugins.jsonを確認して使用しているプラグインを確認- 既存のファイルを分析して命名規則を自動検出
- 添付ファイルフォルダを確認してメディアファイルを扱っているか確認
- 「バージョン管理にgitを使用していますか?」
- 「頻繁に参照する特定のWebサイトやリソースはありますか?」
- 「特定の文体の好みはありますか?」
- 「Claudeに従わせたいワークフローやパターンはありますか?」
- 「毎週のレビュールーティンは希望されますか?(例:木曜日のプロジェクトレビュー)」
- 「'考えモード'(質問/探求)と'執筆モード'のどちらを好みますか?」
-
オプションツールのセットアップ
Gemini Vision(既に含まれています)
- 尋ねる:「Gemini Visionは画像、PDF、動画の分析用に既に含まれています。有効にしますか? (はい/いいえ/後で)」
- 説明:「必要なのは、Googleからの無料APIキーだけです。これにより、ClaudeはVault内のあらゆる視覚コンテンツを分析できるようになります。」
- 「後で」の場合:「問題ありません!いつでもセットアップできます。https://aistudio.google.com/apikey からAPIキーを取得し、
GEMINI_API_KEYをシェルプロファイルに追加して、claude mcp add --scope project gemini-vision node .claude/mcp-servers/gemini-vision.mjsを実行してください。」 - 「はい」の場合:
- https://aistudio.google.com/apikey からAPIキーを取得するようガイド(無料、30秒で完了)
- シェルプロファイル(.zshrc、.bashrcなど)への追加を支援
claude mcp add --scope project gemini-vision node .claude/mcp-servers/gemini-vision.mjsを実行- サンプルコマンドで接続をテスト
Firecrawl(既に含まれています)
- 尋ねる:「FirecrawlはWebリサーチ用に含まれています。セットアップしますか? (はい/いいえ/後で)」
- 説明:「これは研究のゲームチェンジャーです!記事やWebサイトを見つけたら、マークダウンとして直接Vaultに保存できます。コンテンツを永久に保持し、検索可能にし、Claudeに分析させることができます。研究ライブラリの構築に最適です。」
- 例:「'この記事をVaultに保存して:[URL]' とClaudeに指示するだけで完了です!」
- 「後で」の場合:「いつでもセットアップできます。https://firecrawl.dev からAPIキーを取得し、
.scripts/内のスクリプトを設定してください。」 - 「はい」の場合:
- https://firecrawl.dev からAPIキーを取得するようガイド(無料枠あり)
.scripts/内のスクリプトの設定を支援- 使用例を表示:
.scripts/firecrawl-scrape.sh https://example.com
-
カスタム設定を生成
- 現在の日付を取得:
date +"%B %d, %Y"(CLAUDE.mdヘッダー用) - 設定を
.claude/vault-config.jsonに保存:{ "user": { "name": "Jane Smith", "background": { "companies": ["Variance", "Percolate"], "roles": ["共同創業者", "ライター"], "publications": ["Why Is This Interesting?", "every.to"], "expertise": [ "開発者ツール", "マーケティングテクノロジー", "システム思考" ], "interests": ["思考のためのAI", "ノートシステム", "創造性"] }, "profileSources": [ "https://whyisthisinteresting.com/about", "https://every.to/@username" ], "customContext": "AIを単なる執筆ツールではなく、思考拡張として重視", "publicProfile": true }, "vaultPath": "/path/to/existing/vault", "fileNamingPattern": "検出されたパターン", "organizationMethod": "PARA", "primaryUses": ["研究", "執筆", "プロジェクト"], "tools": { "geminiVision": true, "firecrawl": false }, "projects": ["書籍 - 生産性", "SaaSアプリ"], "areas": ["ニュースレター", "健康"], "importedAt": "2025-01-13", "lastUpdated": "2025-01-13" } - CLAUDE-BOOTSTRAP.mdをベースとして開始
- ユーザー固有のセクションを追加:
- 実際のプロジェクト/エリアを使用したカスタムフォルダ構造
- 個人のワークフロー
- 推奨ツールとスクリプト
- 特定のガイドライン
- 設定されている場合はMCP設定
- 提供された場合、ユーザーのWebサイト/リソースを含める
- カスタム命名規則を追加
- ユーザーのプロジェクトとエリアを事前入力:
01_Projects/にプロジェクトフォルダを作成02_Areas/にエリアフォルダを作成03_Resources/にリソーストピックを作成- 各プロジェクト/エリアを説明するREADMEファイルを追加
- 現在の日付を取得:
-
既存のVaultをインポート(該当する場合)
- ユーザーが既存のVaultを持っている場合:
- OLD_VAULTフォルダを作成:
mkdir OLD_VAULT - 構造を保持したままVault全体をコピー:
cp -r [vault-path]/* ./OLD_VAULT/ - Obsidian設定をコピー:
cp -r [vault-path]/.obsidian ./ - その他の重要なファイルを確認してコピー:
.trash/(Obsidianのゴミ箱フォルダ).smart-connections/(そのプラグインを使用している場合)- ワークスペースファイル:
.obsidian.vimrcなど
- コピーをスキップ:
.git/(独自のものを持つ)、.claude/(こちらを使用) - サマリーを表示:「VaultをOLD_VAULT/にインポートしました(Xファイル、Yフォルダ)」
- 説明:「元の構造はOLD_VAULTに保存されています。必要に応じて、ファイルをPARAフォルダに段階的に移行できます。」
- OLD_VAULTフォルダを作成:
- ユーザーが既存のVaultを持っている場合:
-
サポートファイルを作成
- 新しいVaultの場合、初期フォルダ構造を生成
- メインフォルダのREADMEファイルを作成
- 各プロジェクトフォルダにサブフォルダを作成:
- Research/(ソース資料)
- Chats/(AI会話)
- Daily Progress/(実行ログ)
05_Attachments/Organized/ディレクトリを作成- gitを使用する場合、
.gitignoreを設定(.mcp.json、node_modulesを含む) - リクエストがあれば初期テンプレートを作成
- ユーザーがレビュールーティンを希望する場合、
WEEKLY_REVIEW.mdを作成 - FIRST_RUNマーカーファイルが存在すれば削除
- リポジトリが初期化された場合、最初のgitコミットを作成
-
テストコマンドを実行
pnpm vault:statsを実行してスクリプトが動作するか確認- 添付ファイルフォルダが存在すれば、添付ファイルコマンドをテスト
- 設定されていればMCPツールをテスト
- gitがファイルを正しく追跡しているか確認
-
次のステップを提供
- 作成および設定された内容のサマリー
- 設定に固有のクイックスタートガイド
- 使用可能なコマンドのリスト
- すべてが機能することを確認するテストコマンド
- ユースケースに基づいた最初のタスクの提案
- 後で設定を変更する方法
出力例
# あなたのObsidian Vault設定
生成日: [ `date +"%B %d, %Y"` を実行して現在の日付を取得] 最終更新日: [同日]
ユーザーの設定に基づく: [主なユースケース]
セットアップ完了: ✅ 依存関係 ✅ フォルダ構造 ✅ Git初期化
## カスタムフォルダ構造
[ユーザー固有の構造と説明]
## ワークフロー
### デイリールーティン
[ユーザーの回答に基づく]
### プロジェクト管理
[ユーザーの特定のアプローチ]
### 研究方法(Noah Brierスタイル)
- 読んだものをすべてキャプチャする
- 重要なアイデアが自然に再浮上するのを許す
- 理解をテストするために書き出すことから始める
- タグではなく検索を使用して物を見つける
- [Noahのシステムから詳細を学ぶ](https://every.to/superorganizers/ceo-by-day-internet-sleuth-by-night-267452)
### 毎週のレビュールーティン
[有効な場合: 毎週木曜日の午後4時、すべてのプロジェクトをレビュー]
## 設定
### ファイル命名
- パターン: [ユーザーの規則]
- 例: [具体的な例]
### ツールとスクリプト
[ワークフローに関連するスクリプト]
## MCPサーバー(設定されている場合)
### Gemini Vision
- ステータス: ✅ 設定済み、テスト済み
- APIキー: .mcp.jsonに設定
- テスト方法: `Use gemini-vision to analyze [画像パス]`
## 利用可能なコマンド
### Vault管理
- `pnpm vault:stats` - Vault統計を表示
- `pnpm attachments:list` - 未処理の添付ファイルを一覧表示
- `pnpm attachments:organized` - 整理済みファイルをカウント
### Claudeスキル
スキルはタスクを説明すると自動検出されます。例:
- 「Xについて考えを整理するのを手伝って」 → `thinking-partner`
- 「今日の活動をまとめて」 / 「デイリーレビュー」 → `daily-review`
- 「受信箱を処理して」 → `inbox-processor`
- 「セットアップウィザードを再実行」 → `init-bootstrap`
スキルは `.agents/skills/`(正規)にあり、`.claude/skills/` と `.pi/skills/` にシンボリックリンクがあります。Claude Code、OpenCode、Codex、Cursor、Piで動作します。
## クイックスタート
1. [パーソナライズされた最初のステップ]
2. [目標に基づく次のアクション]
3. [ワークフローに固有]
## 研究マスターからのプロのヒント
- **トークン最大主義者であれ**: Claudeに多くのコンテキストを提供する
- **執筆はスケールする**: 将来の参照のためにすべてを文書化する
([Noah Brier](https://every.to/superorganizers/ceo-by-day-internet-sleuth-by-night-267452))
- **創発を信頼する**: 重要なアイデアは浮上し続ける
- **書き出すことから始める**: 常にテキスト形式でプロジェクトを開始する
- **定期的にレビューする**: 毎週、剪定と更新のための時間を確保する
- **PARAメソッド**: プロジェクト、エリア、リソース、アーカイブ
([Tiago Forte](https://fortelabs.com/blog/para/))
## セットアップサマリー
✅ 依存関係がインストールされました(pnpm/npm) ✅ フォルダ構造が作成されました ✅ Gitリポジトリが初期化され、オリジナルから切断されました ✅ CLAUDE.mdがパーソナライズされました ✅ 初回セットアップが完了しました [✅ MCP Gemini Visionが設定されました - 設定されている場合] [✅ 最初のコミットが行われました - gitが初期化された場合]
重要な実装注意事項
複数のVaultの処理
複数のVaultが検出された場合:
- 常に見つかったすべてのVaultを明確な番号と詳細とともにリストアップする
- 明示的な選択を必須とする - どのVaultを使用するかを推測しない
- インポートを進める前に選択を確認する
- あいまいな応答を処理する - ユーザーがスクリーンショットを貼り付けるなど不明瞭な入力を提供した場合、明確化を求める:
- 「スクリーンショットを共有されたようです。インポートしたいVaultの番号(1-3)を入力していただけますか?」
- 「明確な選択が必要です。Vaultを選択するには、'1'、'2'、または'3'と入力してください。」
- 選択されたVaultの確認を表示し、インポート前に確認する
ユーザーパス検証
ユーザーがVaultへのパスを提供する場合:
- パスの存在を確認:
test -d "[path]"を使用 .obsidianディレクトリを確認:test -d "[path]/.obsidian"を使用.mdファイルの存在を確認:find "[path]" -maxdepth 1 -name "*.md" | head -5を実行- パスが無効な場合、明確なエラーメッセージを表示し、再試行するかスキップするかを尋ねる
.obsidianはあるが.mdファイルがない場合、問題について話し合い、先に進むことを提案する
検索ディレクトリに関する注意事項
~/Library/Mobile Documents/iCloud~md~obsidian/DocumentsはmacOSのみに存在します。他のプラットフォーム(Linux、Windows)では、このパスをスキップしてエラーを防止してください。findコマンドの深さ制限は、非常に大きなディレクトリでパフォーマンスの問題を防ぎます。- iCloud同期によるファイルのロックの可能性に注意してください。
findがアクセス許可エラーを報告する場合、それらを無視して続行してください。
パフォーマンスの考慮事項
- 特定の検索に対して深さ制限を使用する(上記のパスを参照)
find [path] -type f -name "*.md" | wc -lでファイルをカウントする際、-maxdepth制限を使用しない(Vault内のすべてのファイルをキャプチャするため)- 大きなVaultでは、完全な分析に時間がかかる場合があることをユーザーに知らせる
treeコマンドが利用できない場合(Windowsなど)、findベースのアプローチにフォールバックする
リポジトリの取り扱い
- リモートのある git リポジトリ:常にユーザーに意図を尋ねる(個人用Vault vs コントリビュート)
- 個人用Vault:安全のためリモートを削除する
- コントリビュート:リモートとワークフローを保持する
- gitがない:常に初期化する
.githubは個人用Vaultから削除する(コントリビューションワークフローは不要)
新しいVault作成のガイドライン
- ユーザーが整理方法(PARAなど)を指定している場合にのみフォルダを作成する
- すべてのフォルダにREADMEファイルを作成する
- 新しいVaultには必ず04_Archiveを作成する
- 一貫性のために大文字/小文字の規則に従う
ファイル命名規則の検出
既存のファイル名を分析する際:
- ファイル名の日付パターンを探す(YYYY-MM-DD、YYYYMMDD、DD-MM-YYYYなど)
- タグ/カテゴリパターンを探す(#tag、@categoryなど)
- 命名の一貫性を評価する(キャメルケース、ケバブケース、スネークケース)
- 最も一般的なパターンをデフォルトとして提案する
- 常に確認し、ユーザーが別のオプションを選択できるようにする
エラーハンドリング
- すべてのファイル操作をtry/catchでラップする
- 操作が失敗した場合でも、決してプロセスを停止しない
- エラーの明確なメッセージを提供する
- 失敗した操作の代替案を提案する
- 有害になる可能性があるため、既存のCLAUDE.mdを決して上書きしない
セキュリティとプライバシー
- スクリプト/コマンドの実行には常に明示的な許可を求める
- ユーザーデータを決して外部に送信しない
- すべての設定ファイルをローカルに保存する
- パスを表示する際、ユーザー名を隠す(該当する場合)
.mcp.jsonは機密性が高いため、git追跡から除外する.claude/vault-config.jsonは.gitignoreに追加する
スキル発見
- メインスキルは
.agents/skills/に常駐する - 互換性のために
.claude/skills/と.pi/skills/にシンボリックリンクを作成する - スキルはタスクの説明とコンテキストによって自動発見される
- 実際の使用法については、'Skill System' セクションを参照