wiki-dashboard
ObsidianのVaultをObsidian BasesまたはDataviewを使って、動的でクエリ可能なダッシュボードビューに整理するスキルです。「ダッシュボードを作って」「全てのXを表形式で表示して」「Vaultを検索したい」「コンテンツのインデックスを作りたい」など、Wiki内容を構造化・自動更新されるビューで確認したい場合に使用します。BasesはObsidian 1.8以降でネイティブ対応(プラグイン不要)、DataviewはコミュニティプラグインのインストールGが必要です。
description の原文を見る
> Create dynamic, queryable dashboard views of the Obsidian vault using Obsidian Bases or Dataview. Use this skill when the user says "create a dashboard", "vault dashboard", "show all X as a table", "dynamic view", "query my vault", "build a content index", "show me all concepts/entities/projects", or wants a structured, auto-updating view of their wiki content. Bases is native to Obsidian 1.8+ (no plugin needed). Dataview requires the community plugin.
SKILL.md 本文
Wiki Dashboard — 動的 Vault ビュー
2 つのツールが利用可能です: Obsidian Bases(ネイティブ、GUI 駆動、プラグイン不要)と Dataview(コミュニティプラグイン、SQL 風、より高機能)。ユーザーが何を持っているかを確認し、ユーザーが Dataview をリクエストするか GROUP BY / 計算列が必要でない限り Bases を優先してください。
開始する前に
- 設定を解決 —
llm-wiki/SKILL.mdの Config Resolution Protocol に従ってください(CWD を上がって.env→~/.obsidian-wiki/config→ プロンプトセットアップを探す)。これでOBSIDIAN_VAULT_PATHが得られます。 $OBSIDIAN_VAULT_PATH/index.mdを読んで、どのカテゴリとページが存在するかを理解してください。- 指定されていない場合は、ユーザーに何を表示したいかを聞いてください — フォルダ、タグ、カテゴリ、日付範囲?
- どのツールを使うかが不確実な場合は、ユーザーに Dataview がインストールされているかを聞いてください。
オプション A — Obsidian Bases(.base ファイル)
Bases は vault ノートを介した live ビューを定義する YAML ファイルです。Obsidian 1.8+ でネイティブ対応、プラグインは不要です。
公式正規スキーマ
トップレベルキー:
filters: # すべてのビューに適用されるグローバルフィルター(and/or/not の下の式文字列)
formulas: # 名前付き計算プロパティ — formula.<name> として参照
properties: # プロパティごとのディスプレイ設定 — 列ヘッダーの displayName を設定
summaries: # 集計式(例: mean, sum)
views: # ビュー定義の配列(必須)
views: の各項目:
views:
- type: table # table | list | cards | map
name: "View Name" # 表示ラベル
limit: 50 # オプションの最大行数
order: # 列表示順(プロパティ/式名のリスト)
- file.name
- note.updated
groupBy: # グループ化 — トップレベルではなくビュー内に配置
property: note.tags
direction: ASC # ASC | DESC
filters: # ビュー固有のフィルター(グローバルフィルターとマージ)
and:
- 'note.status != "done"'
summaries:
formula.myFormula: Average
フィルター構文 — 重要
フィルターは型指定されたオブジェクトではなく式文字列を使用します。 常に and:、or:、または not: の内側にラップしてください — ベアなリストは「may only have one of and/or/not keys」パースエラーを引き起こします。
# 正しい
filters:
and:
- file.inFolder("concepts")
# 間違い — 型指定されたオブジェクト(パースエラー)
filters:
- type: folder
folder: concepts
フィルターはネストをサポートします:
filters:
or:
- file.hasTag("book")
- and:
- file.inFolder("concepts")
- file.hasTag("research")
- not:
- file.hasTag("archived")
プロパティ名の規則
異なるコンテキストは異なる命名を使用します — Obsidian の自動リフォーマット動作から確認:
| コンテキスト | Frontmatter フィールド tags | ファイル名 | 式 |
|---|---|---|---|
properties: キー | note.tags | file.name | formula.<name> |
order: 値 | tags(ベア) | file.name | formula.<name> |
groupBy.property: | tags(ベア) | file.name | — |
filters: 式 | file.hasTag(...) / note.tags | file.name | formula.<name> |
formulas: 式 | note.tags, note.updated | file.name | — |
基本的なテーブル — フォルダフィルター
filters:
and:
- file.inFolder("concepts")
properties:
file.name:
displayName: Page
note.tags:
displayName: Tags
note.summary:
displayName: Summary
note.updated:
displayName: Updated
views:
- type: table
name: Table
order:
- file.name
- tags
- summary
- updated
カードビュー — フォルダフィルター
filters:
and:
- file.inFolder("entities")
properties:
file.name:
displayName: Entity
note.title:
displayName: Full Name
note.tags:
displayName: Tags
note.summary:
displayName: Summary
views:
- type: cards
name: Cards
order:
- file.name
- title
- tags
- summary
プロパティでグループ化 — groupBy はビュー内に配置
groupBy が設定されている場合、order: からそのプロパティを省略してください — グループヘッダー行になり、列として追加するとも重複が発生します。
filters:
and:
- file.inFolder("concepts")
properties:
file.name:
displayName: Concept
note.summary:
displayName: Summary
note.updated:
displayName: Updated
views:
- type: table
name: By Domain
groupBy:
property: tags # ベアプロパティ名、note. プレフィックスなし
direction: ASC
order:
- file.name # tags をここに含めないでください — すでにグループヘッダー
- summary
- updated
タグフィルター
filters:
and:
- file.hasTag("machine-learning")
properties:
file.name:
displayName: Page
note.category:
displayName: Category
note.summary:
displayName: Summary
views:
- type: table
name: Table
order:
- file.name
- category
- summary
マルチフィルター(フォルダ AND タグ)
filters:
and:
- file.inFolder("projects")
- file.hasTag("active")
properties:
file.name:
displayName: Project
note.summary:
displayName: Summary
note.updated:
displayName: Last Updated
views:
- type: cards
name: Cards
order:
- file.name
- summary
- updated
OR フィルター(2 つのフォルダ)
filters:
or:
- file.inFolder("concepts")
- file.inFolder("entities")
properties:
file.name:
displayName: Page
note.category:
displayName: Category
note.updated:
displayName: Updated
views:
- type: table
name: Table
order:
- file.name
- category
- updated
式を使用した計算列
filters:
and:
- file.inFolder("concepts")
formulas:
days_stale: "floor((now() - note.updated) / 86400000)"
properties:
file.name:
displayName: Page
note.updated:
displayName: Updated
formula.days_stale:
displayName: Days Stale
views:
- type: table
name: Stale
order:
- file.name
- updated
- formula.days_stale
フィルター式リファレンス
| 式 | 機能 |
|---|---|
file.inFolder("path") | そのフォルダ内のページ |
file.hasTag("tag") | そのタグを持つページ(# プレフィックスなし) |
file.hasLink("Note Name") | ノートにリンクしているページ |
file.name == "note-name" | 完全一致のファイル名 |
file.ext == "md" | 拡張子でフィルター |
note.propertyName | 任意の frontmatter プロパティ |
formula.formulaName | 名前付き式の結果 |
now() | 現在のタイムスタンプ(ミリ秒) |
Obsidian UI 生成形式について: Obsidian の GUI が
.baseファイルを書き込むか再フォーマットする場合、正規スキーマの代わりにトップレベルのcolumns:、sort:、およびview:キーを使用した簡略形式を出力する場合があります。その形式も機能します — Obsidian は両方を受け入れます。手動で作成されたファイルは上記の正規スキーマを使用してください。
オプション B — Dataview(コミュニティプラグイン)
Dataview は任意のノート内の ```dataview ``` コードブロック内で SQL 風のクエリ言語を使用します。計算列、GROUP BY、クロスフォルダクエリについて Bases より強力です。
基本的なテーブル — フォルダ
```dataview
TABLE
tags AS "Tags",
summary AS "Summary",
file.mtime AS "Last Modified"
FROM "concepts"
SORT file.mtime DESC
```
クリック可能なリンク付きテーブル(TABLE WITHOUT ID)
```dataview
TABLE WITHOUT ID
file.link AS "Entity",
tags AS "Tags",
summary AS "Summary"
FROM "entities"
SORT file.name ASC
```
GROUP BY — グループ化後に rows. プレフィックスを使用
GROUP BY の後、個別のファイルプロパティは rows. でプレフィックスする必要があります — そうしないと列が空になるか、エラーが発生します。
```dataview
TABLE WITHOUT ID
rows.file.link AS "Concept",
rows.summary AS "Summary"
FROM "concepts"
GROUP BY tags[0] AS "Domain"
```
スタイルページ — 日付計算に file.mtime を使用
choice(updated, date(updated), file.mtime) を避けてください — updated frontmatter の混在した日付形式は算術エラーを引き起こします。file.mtime は常に有効な DateTime です。
```dataview
TABLE WITHOUT ID
file.link AS "Page",
category AS "Type",
file.mtime AS "Last Modified",
(date(today) - file.mtime).days + " days" AS "Age"
FROM "concepts" OR "entities" OR "projects"
WHERE file.name != file.folder
WHERE (date(today) - file.mtime).days > 30
SORT (date(today) - file.mtime).days DESC
```
マルチフォルダクエリ
```dataview
TABLE
summary AS "Summary",
file.mtime AS "Last Modified"
FROM "projects"
WHERE file.name != file.folder
SORT file.mtime DESC
```
Dataview リファレンス
| 句 | 使用法 |
|---|---|
FROM "folder" | フォルダ内のすべてのノート |
FROM #tag | そのタグを持つすべてのノート |
FROM "a" OR "b" | 2 つのフォルダの和集合 |
WHERE file.name != file.folder | フォルダインデックスページを除外 |
GROUP BY field AS "Label" | 行をグループ化 — この後はプロパティに rows. を使用 |
SORT field DESC | ソート方向 |
file.link | クリック可能な wikilink |
file.mtime | 最終変更時刻(常に有効な DateTime) |
(date(today) - file.mtime).days | 最終変更からの日数 |
ステップ 3: ファイルを書き込む
Bases: ターゲットパス $OBSIDIAN_VAULT_PATH/_meta/<dashboard-name>.base
Dataview: クエリを任意の .md ノートに直接書き込みます。複数セクションビュー用の専用ダッシュボードノート $OBSIDIAN_VAULT_PATH/_meta/dashboard.md が適しています。
スラグの例:
- "All concepts" →
_meta/concepts-index.base - "Recent ingests" →
_meta/recent-ingests.base - "Project overview" →
_meta/projects-overview.base - "Stale pages" →
_meta/stale-pages.base - "Full dashboard" →
_meta/dashboard.md
_meta/ がまだ存在しない場合は作成してください。
ステップ 4: Bases を埋め込む(オプション)
.base をノート内に埋め込むには:
## Entities
![[_meta/entities-tracker.base]]
既存のノートを変更する前に尋ねてください。
ステップ 5: 更新追跡
$OBSIDIAN_VAULT_PATH/log.md に追加:
- [TIMESTAMP] WIKI_DASHBOARD name="<slug>" tool=bases|dataview view=<type> filter="<description>"
マニフェストやインデックスの更新は不要 — ダッシュボードは live クエリであり、静的ページではありません。
一般的なダッシュボードレシピ
| ダッシュボード | 最適なツール | 表示内容 |
|---|---|---|
| コンテンツインデックス | Bases または Dataview | カテゴリでグループ化、更新でソートされたすべてのページ |
| エンティティトラッカー | Bases(カード) | ビジュアルカードギャラリーとしてのエンティティページ |
| ドメイン別コンセプト | Dataview | GROUP BY を使用して最初のタグでグループ化されたコンセプト |
| 取り込みログ | どちらでも | created 日付でソートされたページ |
| スタイルコンテンツ | Dataview | 30+ 日以上触れられていないページと日数 |
| プロジェクト概要 | どちらでも | 最後の同期日付を含むプロジェクトページ |
| リサーチトラッカー | Dataview | research タグが付けられた合成ページ |
品質チェックリスト
- Bases: フィルターは
and:/or:/not:の下で式文字列を使用、型指定されたオブジェクトではない - Bases:
groupByはトップレベルキーではなく、ビュー定義内に配置 - Bases: 列ヘッダーは
properties: <name>: displayName: "..."で設定、columns: [{title}]ではない - Bases:
formulas:は計算列に使用、formula.<name>として order/properties で参照 - Dataview: GROUP BY クエリはベア
propertyではなくrows.propertyを使用 - Dataview: 日付算術は
choice(updated, ...)ではなくfile.mtimeを使用 - ファイルは説明的なスラグを持つ
_meta/に書き込まれている -
log.mdが更新されている - ユーザーに Bases の埋め込み方法(
![[_meta/<name>.base]])またはダッシュボードノートを開く方法が通知されている
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- ar9av
- リポジトリ
- ar9av/obsidian-wiki
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/ar9av/obsidian-wiki / ライセンス: MIT
関連スキル
newsblur-cli
ターミナルからNewsBlurを管理できます。フィードの閲覧、ストーリーの検索、記事の保存・共有、インテリジェンス分類器の学習、新しいフィードの発見、ワークフローの自動化がNewsBlur CLIで実現します。ユーザーがNewsBlurアカウントを操作したい場合、フィードの確認、購読管理、またはニュース読み込みに関するスクリプト構築時に活用してください。
caveman-compress
自然言語のメモリファイル(CLAUDE.md、todos、preferences)を「原始人形式」に圧縮し、入力トークンを削減します。技術的な内容、コード、URL、構造はすべて保持したまま圧縮します。圧縮版が元のファイルを上書きし、人間が読める形のバックアップはFILE.original.mdとして保存されます。トリガー:/caveman-compress FILEPATH または「compress memory file」
find-skills
日本語の意図から Agent Skills を発見する。「楽天SEOのスキル探して」「PDFを処理したい」「データ分析を自動化したい」などの日本語リクエストに対応。Claude Code (CLI)、Codex、Gemini CLI、claude.ai (Web) いずれでも動作。日本最大の Agent Skills データベース「Agent Skills by ALSEL」(11,000件超、全件日本語化、ダウンロード可能スキル8,600件超) から、ユーザーの意図に合うスキルを推薦・インストール案内する。
planning-and-task-breakdown
仕事を順序立てたタスクに分割します。仕様書や要件が明確にあり、実装可能なタスクに分解する必要がある場合に利用してください。タスクが大きすぎて着手しづらい場合、スコープを見積もる必要がある場合、または並列で作業を進められる場合に活用できます。
docx
このスキルは、ユーザーがWord文書(.docxファイル)を作成、読み込み、編集、操作したいときに使用します。以下の場合に実行してください:「Word文書」「.docx」などの記述、または目次・見出し・ページ番号・レターヘッドなどのフォーマットを含む専門的な文書の作成リクエスト。また、.docxファイルのコンテンツ抽出・再編成、文書への画像挿入・置換、Word形式での検索置換、変更履歴やコメント機能の使用、コンテンツを整形したWord文書への変換の場合も対象です。ユーザーが「レポート」「メモ」「手紙」「テンプレート」などの成果物をWord形式または.docxファイルで求める場合はこのスキルを使用してください。PDF、スプレッドシート、Google Docs、文書作成と無関係なコーディングタスクには使用しないでください。
idea-refine
アイデアを反復的に改善します。構造化された発散的思考と収束的思考を通じて、アイデアを洗練させることができます。「idea-refine」または「ideate」を使用してトリガーします。