Communitygithub.com

matthiasdebernardini/ontology-notes

ソースに基づいたオントロジー知識ベースと、依存関係のないローカル検索機能を備えたプライムエージェントチャットスキル。

ontology-notes とは?

このスキルは、ローカルのオントロジー知識ベースに対して質問応答を行うためのプライムエージェント(Claude Code、Cursor、Codexなど)向けのスキルです。従来のLLMの記憶に頼るのではなく、`SKILL.md`と同一ディレクトリの`scripts/ontology_kb.py`スクリプトを使用して、構造化されたナレッジベースから事実に基づいた回答を生成します。このスキルは、Explain(説明)、Compare(比較)、Recommend(推奨)、How-to(手順)、LLM patterns(LLMパターン)、Source audit(ソース監査)、Learning path(学習パス)、Explore(探索)の8つの応答モードを提供し、質問の種類に応じて最適なモードを推論します。検索ワークフローは、明示的なクエリ実行、ノートのオープン、リンクによる引用、ソース監査など、段階的な手順で構成されており、すべての主張はオープンされたノートに基づいている必要があります。依存関係のないCLIツールにより、ネットワークリクエストなしでローカル検索が可能で、オントロジーや標準、プロジェクトに関するドキュメントを正確に参照するのに適しています。

対応✓Claude Code~Codex CLI~Cursor
npx skills add matthiasdebernardini/ontology-notes

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Ontology Chat

ローカルのオントロジー知識ベースから回答します。記憶から回答することはありません。

知識ベースの場所を特定する

この SKILL.md からの相対パスで scripts/ontology_kb.py を解決します。CLIは以下の順序で知識ベースのルートを特定します。

  1. 明示的な --root PATH
  2. ONTOLOGY_KB_ROOT
  3. ~/.config/ontology-chat/config.json
  4. カレントディレクトリとその親ディレクトリ
  5. スキルソースディレクトリとその親ディレクトリ

特定に失敗した場合は、リポジトリの scripts/install.py を実行する方法、または ONTOLOGY_KB_ROOT を設定する方法を説明します。事前知識から暗黙的に回答することは避けてください。

新しいセッションは以下のコマンドで開始してください。

python3 <skill-dir>/scripts/ontology_kb.py status --json

応答モードを選択する

質問からモードを推論します。

  • 説明: 概念を定義し、具体的な標準やプロジェクトと関連付けます。
  • 比較: 比較対象の各アイテムについてエビデンスを取得し、次元ごとに差異を示します。
  • 推奨: ノートから基準を導き出し、トレードオフを提示し、最終的な推奨事項を編集者注釈としてラベル付けします。
  • 手順: 文書化されたツールとフォーマットから、根拠のあるワークフローを組み立てます。
  • LLM パターン: 直接的なLLM実装と、カタログでの言及、古典的なML、埋め込み、汎用的なナレッジグラフの使用を区別します。
  • ソース監査: 主張を統合からノートへ、そしてローカルで利用可能な場合は取得したテキストやリポジトリのドキュメントへとトレースします。
  • 学習パス: 基礎概念からツール、高度なパターンへと、読む順序を整理します。
  • 探索: 関連するエントリ、セクション、注意点、およびフォローアップの質問を表面化させます。

検索ワークフロー

  1. 明示的に名前が指定されたプロジェクト、標準、オントロジー、または語彙を特定します。まず sources <name> --json を実行して、スキップされたエントリや記録されたエビデンスのギャップが広域検索の前に表示されるようにします。スキップされている場合は、その制限を最初に伝えます。他のノートでの間接的な言及は、二次的なエビデンスとしてのみ要約できます。
  2. 残りの質問を、2~4つの短く具体的な検索クエリに変換します。比較対象のアイテム名がわかっている場合はそれらを含めます。
  3. 各クエリに対して検索を実行します。
python3 <skill-dir>/scripts/ontology_kb.py search "<query>" --limit 8 --json

便利なフィルターは --section と --kind です。 4. 結果をマージし、最適な4~8個の notes/<slug>.md ファイルを開きます。スニペットを十分なエビデンスとして扱わないでください。 5. 比較の場合、名前が挙がったすべてのアイテムに専用のノートがあることを確認します。検索で見つからなかった場合は show <slug> を使用します。 6. SYNTHESIS.md は、概要とクロスソース構造の理解のためにのみ読みます。その主張を繰り返す前に、引用されたノートに対して検証します。 7. 議論のある、驚くべき、またはソース監査の主張については、sources <slug> --json を実行します。sources/<slug>.txt または repos/<slug>/ が存在する場合は、関連するソースの一節またはREADME/docsを調査します。パブリックインストールではこれらのサードパーティアーティファクトが省略されている場合があります。その場合は、代わりにその制限を開示し、即興で対応しないでください。 8. related <slug> --limit 8 --json は、有用なアンカーノートを特定した後にのみ使用します。

根拠付けルール

  • 事実に基づく主張は、開かれたノートに基づきます。一般的なオントロジー知識でギャップを埋めることは決してしないでください。
  • 実質的な段落や箇条書きごとに、リポジトリ相対のMarkdownリンク(例 [OntoLearner](notes/ontolearner.md))を使用して引用します。
  • ソース固有の主張は、そのソースに帰属させます。クロスソースの結論には複数の引用を使用します。
  • エビデンスから組み立てられたアドバイスには、明示的に 推奨 または 編集者による統合 とラベル付けします。
  • バージョンの古さ、アーカイブステータス、不完全なドキュメント、プロファイルの制限、スケーリングの制限、カタログのみのエビデンスなど、限定事項を保持します。
  • 「ガイドがリストされている」ことを、ガイドの内容のエビデンスにしないでください。
  • 通常のナレッジグラフ、埋め込み、記号推論、古典的なMLを「LLM統合」と呼ぶことはしないでください。
  • 明示的に名前が指定されたエントリがスキップされている場合は、最初にその旨を述べ、記録された skip_reason を引用するか、密接に言い換えます。間接的な言及を、存在しない専用ノートの代わりに使用したり、その内容を捏造したりしないでください。
  • 知識ベースが回答をサポートしていない場合は、その旨を述べ、欠落しているエビデンスを特定します。

デフォルトの回答形式

最適な最も軽量な構造を使用します。

  1. 直接的な回答
  2. エビデンスに基づく説明または比較
  3. 重要な注意点
  4. オプションの次の質問または読書提案

ユーザーが監査を要求しない限り、検索スコアや内部検索手順をダンプすることは避けてください。長い参考文献リストよりも、少数の強力な引用を優先します。

CLI リファレンス

ontology_kb.py search <query> [--limit N] [--section TEXT] [--kind KIND] [--json]
ontology_kb.py show <slug-or-name> [--json]
ontology_kb.py related <slug-or-name> [--limit N] [--json]
ontology_kb.py sources <slug-or-name> [--json]
ontology_kb.py status [--json]

オプションはサブコマンドの前後どちらにも配置できます。CLIは決定論的で、依存関係がなく、ネットワークリクエストを実行しません。

関連スキル