💻 システム開発

2026-04-27_Obsidian飛び設定_実装依頼書

最終更新 2026年06月23日 / 31_システム開発部/SCALE_Base/2026-04-27_Obsidian飛び設定_実装依頼書.md

SCALE Base → Obsidian 飛び設定 実装依頼書

SCALE Base から Obsidian Vault に1クリックで飛べる導線を実装したい。
業務(SCALE Base)と知識(Obsidian Vault)の往復コストをゼロにする。


30秒で全体像

観点 一言
目的 SCALE Base 上から Obsidian Vault に1クリックで飛びたい
方式 obsidian:// URI スキーム経由(ローカルObsidianアプリ起動)
使う人 大串(メイン)/ 細川 / 全AIエージェント
想定工数 P0 部分は半日〜1日

背景・なぜ必要か

現状の課題

業務と知識の「往復」が発生している
1. SCALE Base で CRM見てる → 顧客の議事録を探したい → 別ウィンドウで Obsidian開く → 検索...
2. Daily Note を書きたい → Obsidianを別途立ち上げる → ファイル探す
3. AIエージェントへの指示で「◯◯の Vault ノート開いて」が頻発

解消したい状態

「いま見ている SCALE Base の画面」から、関連 Vault ノートに1クリックで飛べる
- 各セクションの上部に「📓 Obsidianで開く」ボタン
- グローバルヘッダーに Obsidian クイックジャンプ
- URLに ?obsidian=<path> 渡せば自動で Obsidian 起動


実装してほしい機能

Priority 0(最優先)

グローバルナビに「Obsidian」ボタン追加

配置: SCALE Base 全画面の上部ヘッダー / サイドバー
動作: クリックで Obsidian Vault のルート(または Dashboard.md)を開く

URI例:
obsidian://open?vault=SCALE-Brain&file=Dashboard
obsidian://open?vault=SCALE-Brain&file=SCALE_Hub

UI例(疑似コード):

<a href="obsidian://open?vault=SCALE-Brain&file=SCALE_Hub"
   class="header-btn"
   title="Obsidian Vault を開く">
  📓 Obsidian
</a>

これだけで往復コスト9割削減


各セクション上部に「Vaultで開く」リンク

各機能ページ(CRM / Calendar / Task / Recruit / Finance 等)の上部に、対応する Vault ノートへの直接リンクを追加。

SCALE Base ページ 開くべき Vault ノート
/home/ obsidian://open?vault=SCALE-Brain&file=Dashboard
/crm/ obsidian://open?vault=SCALE-Brain&file=31_システム開発部/SCALE_Base/CRM/_README
/calendar/ obsidian://open?vault=SCALE-Brain&file=10_Daily/$(today)
/task/ obsidian://open?vault=SCALE-Brain&file=22_AI運用ルール/全部署タスク一覧
/finance/ obsidian://open?vault=SCALE-Brain&file=37_コーポレート部/_README
/recruit/ obsidian://open?vault=SCALE-Brain&file=36_人事採用部/_README
/seo/ obsidian://open?vault=SCALE-Brain&file=21_ナレッジベース/マーケティング/_README
/x/ obsidian://open?vault=SCALE-Brain&file=21_ナレッジベース/マーケティング/_README
/writing/ obsidian://open?vault=SCALE-Brain&file=21_ナレッジベース/マインドセット/_README

UI例:

<div class="page-header">
  <h1>CRM Dashboard</h1>
  <a href="obsidian://open?vault=SCALE-Brain&file=31_システム開発部/SCALE_Base/CRM/_README"
     class="vault-link">
    📓 Vault で詳細を開く
  </a>
</div>

Priority 1(次に欲しい)

Obsidian クイックジャンプモーダル

起動: Cmd+K または ヘッダーの 🔍 ボタン
動作: モーダル表示 → ノート名で検索 → Enter で Obsidian 起動

実装方法:
1. Vault のノート一覧を JSON で持つ(Cloudflare Worker / KV経由)
2. fzf-style fuzzy search でフィルタ
3. クリック or Enter → obsidian://open?vault=SCALE-Brain&file=<選択パス> に遷移

ノート一覧の取得方法:

# 毎日朝 cron でこれを実行 → KV に保存
cd /Users/oogushiyuuki/Obsidian/SCALE-Brain
find . -type f -name "*.md" \
  -not -path "./.obsidian/*" \
  -not -path "./.git/*" \
  -not -path "./_attachments/*" \
  | sed 's|^\./||' | sed 's|\.md$||' \
  | jq -R . | jq -s . > /tmp/vault_notes.json

# Cloudflare KV にアップロード
wrangler kv:key put "vault_notes" --path /tmp/vault_notes.json --binding=VAULT_KV

UI例:

┌─────────────────────────────────────────┐
│ 🔍 Obsidian Quick Jump                  │
├─────────────────────────────────────────┤
│ scale lead                              │
├─────────────────────────────────────────┤
│ 📄 30_事業戦略部/SCALE_Lead_事業詳細    │
│ 📄 30_事業戦略部/SCALE_Lead_報酬体系    │
│ 📄 31_システム開発部/SCALE_CRM/_README │
│ 📄 90_Meta/MOC_営業セールス             │
└─────────────────────────────────────────┘

「今日の Daily Note を開く」ショートカット

動作: 1クリックで obsidian://open?vault=SCALE-Brain&file=10_Daily/<today> に遷移
UI例: ヘッダーに「📅 今日のDaily」ボタン

<a id="open-today-daily"
   href="#"
   onclick="window.location.href='obsidian://open?vault=SCALE-Brain&file=10_Daily/' + new Date().toISOString().slice(0,10);">
  📅 今日のDaily
</a>

Priority 2(あったらいい)

コンテキスト連動「関連 Vault ノート」サイドバー

動作: 現在見ている SCALE Base ページに応じて、関連 Vault ノート3〜5件を右サイドバーに表示。

例:
- CRM ページ閲覧中 → 「営業ナレッジ」「セールス手法」「テレアポスクリプト」 を提案
- Recruit ページ閲覧中 → 「採用面談スクリプト」「採用募集文面集」 を提案

実装: ページパス → Vault ノートマッピングを設定ファイルで持つ


Obsidian → SCALE Base の逆方向リンク

Obsidian ノート内に SCALE Base のページに飛ぶリンクを書きたい時:
- https://scale-base.pages.dev/<path> を Markdown リンクで貼れば良い(既に可能)
- ただし「ハッシュなしの本番URL」を統一ルール化したい(CLAUDE のルールに準ずる)


技術的な実装ヒント

obsidian:// URI スキームの仕様

操作 URI
ノート開く obsidian://open?vault=<vault名>&file=<パス>
検索 obsidian://search?vault=<vault名>&query=<検索語>
新規作成 obsidian://new?vault=<vault名>&file=<パス>&content=<内容>
Daily起動 obsidian://daily?vault=<vault名>

Vault名

SCALE-Brain

URIエンコード注意点

日本語パス(30_事業戦略部/...)は URI エンコード不要のケースが多いが、念のため encodeURIComponent() を通してOK:

const path = '30_事業戦略部/SCALE_Lead_事業詳細';
const url = `obsidian://open?vault=SCALE-Brain&file=${encodeURIComponent(path)}`;

ブラウザの挙動

  • 初回アクセス時にブラウザが「Obsidian.appを開きますか?」と確認ダイアログを出す
  • 「常に許可」にチェック入れれば以降は無確認で開く
  • 大串端末は既に obsidian:// 許可済み

Cloudflare Pages 環境での実装

  • 静的HTMLで <a href="obsidian://..."> を埋め込むだけで動く
  • JS不要のシンプル実装でOK(P0/P1のリンク系)
  • Quick Jump モーダルは JS + KV API で実装

受け入れ条件

P0(必須)

  • [ ] SCALE Base 全画面のヘッダーに「📓 Obsidian」ボタンが存在する
  • [ ] クリックで Obsidian アプリが起動し SCALE_Hub.md が開く
  • [ ] 各機能ページ上部に「Vault で開く」リンクが存在する
  • [ ] リンク先のVaultノートが正しく開く(上記マッピング表通り)

P1

  • [ ] Cmd+K で Obsidian Quick Jump モーダルが起動
  • [ ] ノート名で fuzzy search ができる
  • [ ] Enter で対応する Obsidian ノートが起動する
  • [ ] 「📅 今日のDaily」ボタンで本日のDaily Noteが開く

P2

  • [ ] ページコンテキスト連動の関連ノートサイドバー表示

想定工数

Priority 工数目安
P0 4〜6時間(半日〜1日)
P1 1〜2日
P2 2〜3日

実装の優先順序

  1. P0 全部 → 即座に体験改善(数時間で完了)
  2. P1 #4 「今日のDaily」 → 単純で効果大
  3. P1 #3 Quick Jump → KV連携あり、少し重い
  4. P2 → 余力あれば

関連リソース


補足・質問あれば

  • 大串:y-ogushi@scale-group.co.jp / Slack DM
  • 仕様の細かい部分は実装中に相談OK
  • UIデザインは既存のSCALE Baseトーンに合わせて

更新履歴

日付 内容
2026-04-27 初版作成・依頼開始
2026-04-27 実装完了 (P0/P1全部 + P2代替実装)・本番デプロイ済み

実装完了報告 (2026-04-27)

完了したファイル

ファイル 役割
lib/obsidian-links.ts Vault URI ヘルパー / 28システム→ノートマッピング / 40+プリセット / 履歴管理
components/layout/ObsidianMenu.tsx ヘッダー右側のドロップダウン(SCALE_Hub / Dashboard / 今日Daily / コンテキストリンク / Quick Jump 起動)
components/layout/ObsidianQuickJump.tsx Cmd+K (Ctrl+K) Quick Jumpモーダル(fuzzy search、最近履歴、↑↓Enter操作)
components/layout/Header.tsx ObsidianMenu埋め込み、検索ボックスをQuick Jump起動ボタン化
app/(dashboard)/layout.tsx Cmd+Kグローバルキーバインド + Quick Jumpモーダル配置
lib/changelog.ts obsidian-jump-v1 エントリ追加

機能実装マトリクス vs 依頼書

Priority 依頼内容 状態
P0 #1 グローバルナビに「Obsidian」ボタン ヘッダー右側に「📓 Vault」ドロップダウン
P0 #2 各セクション上部「Vaultで開く」リンク ヘッダードロップダウン内「このページの関連ノート」で実現(28システム分マッピング)
P1 #3 Cmd+K Quick Jumpモーダル fuzzy search + プリセット40+ + 履歴
P1 #4 「今日のDaily」ショートカット ドロップダウン内 + Quick Jump内に常時表示
P2 #5 コンテキスト連動サイドバー → ドロップダウン内のコンテキストリンクで代替(ノイズ少なく統一感重視)
P2 #6 逆方向リンク(Obsidian→Base) 既存ルール踏襲(ハッシュなし本番URL)

デプロイ先

  • 本番URL: https://scale-base.pages.dev/home/
  • デプロイハッシュ: 2a8eae7f(参考、本番は↑のハッシュなしURLでアクセス)

使い方

  1. ヘッダー右側「📓 Vault」をクリック
    - SCALE_Hub / Dashboard / 今日のDaily / 現在ページの関連ノート に1クリックで飛べる
  2. Cmd+K (Mac) / Ctrl+K (Win)
    - Quick Jumpモーダル起動 → ノート名を入力 → Enter で Obsidian起動
  3. ヘッダー検索バー(PC)
    - クリックで Quick Jump起動(同モーダル)

技術メモ

  • obsidian://open?vault=SCALE-Brain&file=<path> URI スキーム経由でローカルObsidianアプリ起動
  • 日本語パスは encodeURIComponent で安全にエンコード
  • 履歴は localStorage (scale-base-vault-recent) 8件保持
  • コンテキストリンクは getSystemByPath(pathname)SYSTEM_VAULT_MAP[systemId] で動的決定
  • Quick Jump fuzzy search: 部分一致優先、文字順マッチでフォールバック

P2 #5 を代替実装にした理由

依頼書では「右サイドバーに3〜5件表示」だったが、SCALE Base はすでにダブルサイドバー構成(System + Section)で右側に追加するとレイアウトが破綻。代わりに ヘッダードロップダウン内に「このページの関連ノート」をコンテキスト表示 する形に変更。1クリックの数は同じ、画面占有なし。

拡張余地

  • 今は1ページ→1ノートのマッピング。複数ノート提案にしたければ SYSTEM_VAULT_MAPVaultLink[] 化すればOK
  • Quick Jumpのプリセットは静的JSON。Vault全ノート(493件)対応にするなら Cloudflare Worker + KV API 経由で日次同期が必要(依頼書 P1 #3 の重い版)