personal-siyuan-standards について
Personal SiYuan Standards は、SiYuan のノートブック向けの規則とルーティングを提供するスキルです。新規ノートの配置やタグ付けを案内し、実際の操作は siyuan-note MCP ツールに委ねます。
主な機能
- 01ノートブックとパスに基づく新規ノートの振り分け
- 02新規ノートへの設定済みタグの適用
- 03SiYuan の本文とリンクの記法規則
- 04書き込み前後の同期
- 05規則の変更前に確認を要求
活用シーン
- 01新規ノートの保存先の選定
- 02ノート作成時のタグ付け
- 03MCP ツールを使ったノートの検索や更新
MCP 対応
ノートブック、ドキュメント、検索、ブロック、属性、同期の操作に siyuan-note MCP サーバーを利用します。このスキルは規則と振り分けを担い、操作自体は行いません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wmy2981/ skills --skill personal-siyuan-standardsインストール後、Claude Code で/personal-siyuan-standardsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.claude-plugin/plugin.jsonreferences/map.example.mdtag.example.md詳細
個人用 SiYuan 規約
ユーザーの SiYuan(思源笔记)保管庫で使う、個人的なノート作成規約です。このスキルはルーティングと規約を担うレイヤーであり、操作を実行するレイヤーではありません。実際の操作(ドキュメントの作成、検索、タグ付けなど)はすべて、siyuan-note MCP ツールで行います。新しいノートの作成依頼に対して、次の2つの質問に答えます。
- 新しいノートはどこに置くべきか? →
map.md(新規作成時のみ。既存のノートは検索で見つけます) - 新しいノートにはどのタグを付けるべきか? →
tag.md
要件
- siyuan-note MCP サーバーに接続され、そのツールが読み込まれている必要があります(ノートブック、ドキュメント、検索、ブロック/属性など)。利用できない場合は処理を中止し、続行する前にMCPサーバーへ接続するようユーザーに伝えてください。
実行時ファイル
実行時データはすべて ~/.wmyskills/personal-siyuan-standards/ に保存されます。
| ファイル | 用途 | 管理者 |
|---|---|---|
map.md | 新しいノートのノートブック → hPath マッピング(新規作成時のみ) | ユーザー(エージェントが提案) |
tag.md | タグ付けルール:新しいノートに、いつどのタグを付けるか | ユーザー(エージェントが提案) |
初回実行時: map.md または tag.md が存在しない場合は、このスキルの references/ にある対応するテンプレート(map.example.md、tag.example.md)をコピーして作成し、その後続行してください。既存のファイルは決して作り直さないでください。
書き込み方針(両ファイル): これらのファイルはユーザーが管理します。エージェントが記録する価値のある情報(新しい場所、新しいタグ)を把握した場合は、最終レポートで変更を提案し、ユーザーの確認後にのみ書き込んでください。一度限りの判断を自動で書き込むことはありません。
ユーザーの明示的な指示は、常にこれらの規約より優先されます。
マップ:新しいノートの保存先(map.md)
ノートを作成する際に、ユーザーが場所を明示していない場合は map.md を読み込みます。ここでは、新しいノートの保存先 hPath を決定します。既存のノートを探すためには使用しません(検索を使用してください)。これは、次の3列からなるMarkdownテーブルです。
| 列 | 意味 |
|---|---|
Notebook | 新しいノートを保存する SiYuan ノートブック |
hPath | ノートブック内の、人が読めるパス(例:/Parent/Child)。ノートブック名は含めません。詳しくは「パス」を参照してください |
Description | この場所の用途と、ここを優先すべき場合 |
マッチング。 キーワードが一致するかどうかではなく、ユーザーの依頼の意味に照らして、Notebook、hPath、Description が最もよく合う行を選びます。該当する行が複数ある場合は、現在の依頼の意図に説明が最も合う行を優先します(例:読書ノートには調査用の場所、仕事のノートには仕事用の場所)。選んだ行はあくまで出発点です。「作成」ワークフローでは、その後、子ドキュメントを再帰的にたどって最適な保存先を見つけます(詳しくは「作成」を参照してください)。
該当なしの場合。 次の2つのケースを、順番に検討します。
Descriptionにフォールバック先であることが明記された行(例:「Use this when nothing else matches/未匹配时使用此」—ほかに該当するものがない場合は、このノートブックと hPath を使用する)があれば、その場所にノートを保存します。- それ以外の場合は、実際のノートブック階層とノートの内容を確認し、妥当な保存先を自分で判断します。この判断は今回限りです。この依頼にのみ適用し、
map.mdには追記しないでください。最終レポートで行の追加を提案してもかまいません。
hPath。 SiYuan の人が読めるパスは、ノートブックの内部を起点とし、ノートブック名は含みません。ノートブックは常に別途選択されます(この表の Notebook 列、およびMCP呼び出しの notebook パラメーター)。たとえば、ノートブック Daily の 2026/08 の下にあるドキュメント 2026-08-10 の hPath は /2026/08/2026-08-10 です。/Daily/2026/08/2026-08-10 と記述するのは誤りです。先頭の / はノートブックのルートを示します。マッピングされた hPath にドキュメントを作成する際は、不足している親ドキュメントを先に作成してください。
タグ:付与するタグ(tag.md)
ノートを作成するとき(検索/変更ではありません)は、tag.md を読み込みます。各項目は次のようになっています。
**tagName**: <actual tag name>
Explanation lines: when to apply / not apply this tag
- 付与するタグは、
**tagName**:の後にある名前です。下の行には、適用する条件や適用しない条件が記載されている場合があります。 - 項目の説明に適用するタイミングが記載されていない場合は、既定のルールが適用されます。つまり、新しいノートすべてにそのタグを付与します。
- 新しいノートに該当する項目が複数ある場合は、すべて適用します。
- 該当する項目がない場合は、ノートにタグを付与せず、レポートでその旨を伝えます。
タグ付けの方法。 新しいドキュメントのルートブロックにある tags カスタム属性を、MCP の attr/block ツールを使ってカンマ区切りで設定し、SiYuan の実際のタグを付与します。ユーザーから明示的に依頼された場合を除き、tag.md にないタグを決して作成しないでください。
変更ではタグに触れません — タグを付与するのはノートの作成時のみです。
構文ルール
ノートの内容を書くとき(コードブロックとインラインコード以外):
- ドル記号
$— SiYuan は$...$をインライン数式として扱います。数式を書く意図がない場合は、単独の$も含め、すべての$を\$とエスケープしてください。例:The fee is \$100.は「The fee is $100.」と表示されます。 - シャープ記号
#— 見出しとコードブロック以外では、#がタグマーカーとして解釈される場合があります。タグを書く意図がない場合は、単独の#も含め、すべての#を\#とエスケープしてください。例:Issues \#101 and \#102.— エスケープしないと、SiYuan は 2 つの#の間にタグを作成します。例:#tagName#→ タグ、\#tag\#→ テキスト「#tag#」。
行頭の # を使う見出しには専用の構文があるため、エスケープは不要です。見出し内の $ と # は、特別な用途で使わない場合は引き続きエスケープしてください。
コードブロック(インラインの `code` とフェンス付きブロックの両方)では、$ と # はエスケープせず、そのまま記述してください。
リンクの規則
ノートの内容を書く場合、または変更する場合に適用されます。
- 外部リンク — ウェブページまたは静的リソースのページに移動するリンクには、Markdown のリンク構文
[アンカーテキスト](URL)を使用します。クリック可能なリンクとして直接表示されます。 - SiYuan の参照 — ブロック参照とドキュメント参照には、SiYuan の参照構文を使用します。ブロック参照には
((blockID "アンカーテキスト"))、ドキュメント参照には((docID "アンカーテキスト"))を使用し、表示テキストをアンカーとして引用符で囲みます。
1 ラウンドのワークフロー
ユーザーからのリクエストはすべて1 ラウンドです。リクエストから報告までの 1 ラウンドでは、操作を行う前に(読み取り専用のラウンドでも)ラウンド前の同期を 1 回行い、書き込みを行った場合はラウンド後の同期を 1 回行います。個々のノート操作のたびに同期してはいけません。ラウンド全体を、ラウンド前後の同期 1 組にまとめてください。すべてのリクエストを含むラウンド全体は、次のとおりです。
graph TD
A[User request] --> B[Load this skill and the siyuan-note MCP tools]
B --> B2[List notebooks to get notebook IDs]
B2 --> C["Read map.md and tag.md (creation only)"]
C --> D[Pre-round sync]
D --> E[Operate on SiYuan notes<br/>1 or more operations]
E --> F[Review: operations succeeded]
F --> G[Post-round sync]
G --> H[Report to user]
- ノートブックを一覧表示します。 MCP ツールの読み込み直後に、MCP の
notebookツールでノートブックを一覧表示し、そのIDを控えます。以降、notebookパラメーターを取る MCP 呼び出しでは、名前ではなく ID が必要です。map.mdの行は名前で照合します。該当する項目は、ここで ID に対応付けてください。 (閉じているノートブックは一覧に含まれません。マッピングされたノートブックが一覧にない場合は、閉じている可能性が高いため、ユーザーに尋ねるか別の保存先を選んでください。) - 標準ファイルを読みます。 ラウンドでノートを作成する場合は、
tag.md(タグのルールを参照)を読み、ユーザーが保存先を指定していない場合はmap.md(マップのルールを参照)も読みます。既存のノートを探すには、map.mdではなく MCP のsearchツールを使用してください。 - ラウンド前の同期。 作成、変更、移動などの操作を行う前に、また、検索や読み取りのみのラウンドでも、MCP の
syncツールで同期を実行します。ラウンドごとに正確に 1 回、最初の操作の前に実行してください。 - 操作します。 以下の操作に関する注意事項に従って、リクエストに対応する 1 つ以上のノート操作を実行します。
- 確認します。 各操作が実際に成功したことを確認します。手順に失敗した場合は、先に進む前に修正するか、再試行してください。
- ラウンド後の同期。 このラウンドで書き込み操作を行った場合は、MCP の
syncツールで再度同期を実行します。 - 報告します。 報告スタイルに従い、同期の状態を必ず含めてください。
同期に失敗した場合の対応。 同期に失敗してもラウンドは中断しません。操作は引き続き実行しますが、最終報告では、ボールトが同期されていない可能性を明示的に警告する必要があります。失敗した同期を再試行したり、そのために残りの手順を省略したりしないでください。
操作メモ
作成
graph TD
A[Start: create a note] --> A1{Location specified by user?}
A1 -- Yes --> A2[Create at the specified location<br/>skip map.md and descent]
A2 --> T
A1 -- No --> B[Read map.md for the preferred hPath]
B --> C[Enter that hPath]
C --> D[List child notes under the hPath]
D --> E{Any child fits better?}
E -- Yes --> F[Read that note's content]
F --> G[Make it the current hPath]
G --> D
E -- No --> H[Current hPath is the best match]
H --> I[Create the note here]
I --> J{hPath already in map.md?}
J -- No --> K[Propose adding it to map.md<br/>never write without confirmation]
J -- Yes --> T[Apply matching tags from tag.md]
K --> T
T --> R[Report location, sync status,<br/>and any map.md/tag.md proposals]
R --> L[Done]
- ユーザーが指定した場所を優先します。 ユーザーがメモの保存先(ノートブックまたはパス)を明示した場合は、そこに直接作成します。
map.mdの確認と再帰的な絞り込みは省略します。map.mdの確認と絞り込みは、ユーザーが場所を指定していない場合にのみ行います。 map.mdを読み、保存先を選びます(上記のマップルールを参照)。該当する行がなく、フォールバック先を宣言している行もない場合は、その場限りで保存先を判断します。下の階層には進まず、メモを直接配置します。- 最適な hPath まで絞り込みます。 マッピングされた hPath から子ドキュメントを一覧表示します。まずタイトルで判断し、最も有望な候補の内容を読んで、次の点を確認します。現在の hPath よりも依頼に適した子ドキュメントはあるか。該当するものがあれば、それを現在の hPath として同じ手順を繰り返します。より適した子ドキュメントがなくなった時点で、その hPath が最終的な保存先です。 深さに制限はありません。子の階層を下るだけなので、絞り込みは必ず終了します。
- MCP
documentツールでドキュメントを作成します。notebookでノートブックを指定し、pathには親フォルダーではなく、ドキュメント名を含む完全な保存先パスを指定します(例:notebook: "Daily-notebook-id"、path: "/2026/08/2026-08-10"。ノートブック名をpath内で繰り返すことはありません)。親フォルダーは事前に存在している必要があります。親ドキュメントが不足している場合は、先に作成してください。ツールの応答には指定したpathがそのまま返されるため、実際の保存先に不安がある場合は、siyuna MCP ツールで確認してください。 - メモの本文に
h1を含めません。 ドキュメントのタイトルがすでにh1として表示されるため、本文にレベル1の見出し(# …)は書かず、セクション見出しはh2から始めます。 tag.mdを読み、新しいドキュメントに該当するタグをすべて付けます(上記のタグルールを参照)。- 報告内容:メモの作成場所、保存先がその場限りの推測だったか(マップに該当する行がなかった場合)を報告します。また、必要に応じて、ユーザーの確認用に
map.mdの行またはtag.mdの項目を提案できます。最終的な hPath がマッピングされた行より深い場合(または該当する行がない場合)は、最終的な hPath をmap.mdに追加するよう提案します。ユーザーの確認なしに書き込んではいけません。
検索(読み取り専用)
- メモを見つけるには、MCP
searchツール(全文検索)を使用します。map.mdは新しいメモを作成するときの参照用に限ります。 - 報告する前に、候補の内容を開いて読み、ユーザーが意図したメモであることを確認します。
- 読み取り専用のラウンドでもラウンド前の同期は実行されます(「1ラウンドのワークフロー」を参照)。書き込みが行われないため、ラウンド後の同期のみ省略されます。
変更
- MCP
searchツールでメモを探します(検索ルールに従います)。 - 変更する前に、ドキュメントの内容を読み、ユーザーの意図に合致することを確認します。 誤ったメモを変更するより、ユーザーに確認するほうが適切です。
- 該当するドキュメントが見つかったものの、意図に合致しない場合は、再度検索します。それでも判断できない場合は、ユーザーに確認します。
- 変更を加えます。メモのタグには手を加えないでください。
削除/移動/名前変更
- MCP
searchツールでメモを探します(検索ルールに従います)。 - 削除、移動、または名前変更の前に、ドキュメントの内容を読み、対象のメモであることを確認します。変更の場合と同じように慎重に扱います。
- 操作を実行します。移動の場合、
pathには既存の移動先を指定します。メモはその場所の子になります。必要に応じて、先に移動先を作成してください(作成と同じ完全な hPath のルールが適用されます)。 - 移動または名前変更の後は、メモの新しい保存先を報告します。削除の後は、削除したものとその保存場所を報告します。
報告のスタイル
メモを作成、検索、または変更した後は、必ず保存場所をユーザーに伝えます。移動または名前変更の後は、新しい保存先を伝えます。確認できるよう、Notebook / hPath の形式で示してください。その場限りの場所決めを行った場合、タグ付けを省略した場合、または対象を見つけられなかった場合は、その旨を明示します。安定した新しいパターンを見つけた場合は、map.md/tag.md の更新を提案します。
各ラウンドの同期状況を必ず報告します。ラウンド前またはラウンド後の同期に失敗した場合は、ボルトの同期が取れていない可能性があることを明示して警告します。