obsidian-bases について
obsidian-basesは、Obsidianの`.base`ファイルを作成・編集するスキルです。フィルター、数式、サマリー、カードやテーブル表示を使ったデータベース風のノートビューを作る用途に向いています。
主な機能
- 01`.base`ファイルの作成と編集
- 02フィルターと数式の設定
- 03サマリービューの構築
- 04カードまたはテーブルでの表示
- 05Obsidianでの設定検証
活用シーン
- 01タスク管理ビューの作成
- 02読書リストの整理
- 03デイリーノートの索引作成
- 04Base内の数式とフィルターの確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill obsidian-basesインストール後、Claude Code で/obsidian-basesを入力して読み込まれたか確認します。
同梱ファイルreferences/FUNCTIONS_REFERENCE.mdreferences/detailed-guide.md
詳細
Obsidian Bases スキル
詳細ガイド
このスキルを実行する前に、詳細ガイドをお読みください。完全な手順と参考資料が記載されています。安全性、前提条件、検証要件は必須事項として扱ってください。対象を絞って作業する場合は関連するセクションを読み、最初から最後まで作業する場合はガイド全体をお読みください。
使用する場面
- Obsidian の
.baseファイルを作成または編集するときに使用します。 - フィルター、数式、要約、カード/テーブルを使ったデータベースのようなノートビューに使用します。
- ユーザーが Obsidian Bases について具体的に尋ねたときに使用します。
完全な例
タスクトラッカーの Base
filters:
and:
- file.hasTag("task")
- 'file.ext == "md"'
formulas:
days_until_due: 'if(due, (date(due) - today()).days, "")'
is_overdue: 'if(due, date(due) < today() && status != "done", false)'
priority_label: 'if(priority == 1, "🔴 High", if(priority == 2, "🟡 Medium", "🟢 Low"))'
properties:
status:
displayName: Status
formula.days_until_due:
displayName: "Days Until Due"
formula.priority_label:
displayName: Priority
views:
- type: table
name: "Active Tasks"
filters:
and:
- 'status != "done"'
order:
- file.name
- status
- formula.priority_label
- due
- formula.days_until_due
groupBy:
property: status
direction: ASC
summaries:
formula.days_until_due: Average
- type: table
name: "Completed"
filters:
and:
- 'status == "done"'
order:
- file.name
- completed_date
読書リストの Base
filters:
or:
- file.hasTag("book")
- file.hasTag("article")
formulas:
reading_time: 'if(pages, (pages * 2).toString() + " min", "")'
status_icon: 'if(status == "reading", "📖", if(status == "done", "✅", "📚"))'
year_read: 'if(finished_date, date(finished_date).year, "")'
properties:
author:
displayName: Author
formula.status_icon:
displayName: ""
formula.reading_time:
displayName: "Est. Time"
views:
- type: cards
name: "Library"
order:
- cover
- file.name
- author
- formula.status_icon
filters:
not:
- 'status == "dropped"'
- type: table
name: "Reading List"
filters:
and:
- 'status == "to-read"'
order:
- file.name
- author
- pages
- formula.reading_time
デイリーノートのインデックス
filters:
and:
- file.inFolder("Daily Notes")
- '/^\d{4}-\d{2}-\d{2}$/.matches(file.basename)'
formulas:
word_estimate: '(file.size / 5).round(0)'
day_of_week: 'date(file.basename).format("dddd")'
properties:
formula.day_of_week:
displayName: "Day"
formula.word_estimate:
displayName: "~Words"
views:
- type: table
name: "Recent Notes"
limit: 30
order:
- file.name
- formula.day_of_week
- formula.word_estimate
- file.mtime
制限事項
- タスクが上記の説明にある範囲に明確に当てはまる場合にのみ、このスキルを使用してください。
- 出力を、環境固有の検証、テスト、専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中断して確認を求めてください。
範囲とデータに関する制限
既存の Base を置き換える前に、コピーまたはプレビューを使用してください。グローバルフィルターはビューに表示するデータを選択するものであり、アクセス制御ではありません。また、ビューの上限はデータ保持やプライバシーを守る境界ではありません。YAML の解析だけでは、Obsidian の式言語やプラグインの利用可否は検証できません。ビューの種類や関数がインストール済みのバージョンに対応しているか確認し、欠損値、ゼロ、不正な形式、タイムゾーンの影響を受ける日付の代表例を Obsidian で検証してください。読書時間やバイト数に基づく単語数の推定は、表示上の大まかな目安であり、実測値ではありません。HTML をレンダリングする前に信頼できない文字列をエスケープし、承認なしにプライベートなノートでリモート画像や URL を使用しないでください。Base は表示方法や数式を設定するものであり、必須フィールドやデータベース制約を強制するものではありません。