Communityライティング&編集github.com

zby/commonplace — LLMウィキの理論を具現化するエージェント駆動ナレッジフレームワーク

エージェントが実行可能な型付け・リンク・レビューゲート付きMarkdownで構成される、知識ベースの理論をそのまま動作させるフレームワーク。

commonplace — LLMウィキの理論を具現化するエージェント駆動ナレッジフレームワーク とは?

このスキルは、AIエージェント(Claude Code, Cursor, Codexなど)が共同編集・執筆するための知識ベース(Commonplace)のコアライティングスキルです。「LLMウィキの理論」を実装し、型付けされたMarkdown文書(ノート、ADR、指示など)をエージェントが直接読み書きできるようにします。各ドキュメントは`kb/`以下のコレクションに格納され、コレクションごとに`COLLECTION.md`でライティング規約、品質目標、リンク規則が定義されます。タイプ仕様書(`kb/types/`以下)に従ってドキュメントの構造を決定し、重複チェックやバックリンク検索を実行した上で、正当性検証ツール`commonplace-validate`で品質を担保します。執筆後のリンク発見やグラフ探索は別のスキール`cp-skill-connect`に委譲し、このスキルは単一のノート執筆に集中します。

対応~Claude Code~Codex CLI~Cursor
npx skills add zby/commonplace

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

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

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

ドキュメント

今すぐ実行

対象: $ARGUMENTS

KB内のすべてのドキュメントはコレクション内に存在します。コレクションとは、kb/notes/、kb/reference/、kb/instructions/、またはインストールされたライブラリコレクション(例: kb/commonplace/notes/)のように、kb/ 以下のディレクトリにローカルの COLLECTION.md が置かれたディレクトリのことです。書き込みを受け付ける各コレクションには、その登録簿、品質目標、型の提供、リンク規則を記載した COLLECTION.md があります。

フロントマターを持つドキュメントは、パス値の type: を持ちます(例: type: kb/types/note.md または type: kb/reference/types/adr.md)。フロントマターのないファイルは暗黙的に text として扱われます。

ステップ1 — 引数を解析する

編集モード: 最初の引数は既存の .md ファイルへのパスです。それを読み込み、パスからコレクションを推測し、フロントマターから type: パスを読み取ります。フロントマターはあるが type: がない場合は、編集前にその構造的問題を修正してから停止します。フロントマターがない場合は、暗黙的に text として扱います。構造編集を行う前に、type: で指定された型仕様ドキュメントを開きます。

新規作成モード: 上記以外のすべてのケースです。引数からコレクション、型、トピックを抽出します。デフォルト: コレクション notes、型 kb/types/note.md。要求された型が指示(instruction)で、コレクションが明示されていない場合は、コレクション instructions を使用します。

新規作成の場合、対象コレクションを kb/ 以下の、ローカルの COLLECTION.md を持つディレクトリに解決します。省略名(例: notes)は kb/notes/ を意味します。そのコレクションの ## Types セクションを読み、リストされている型パスの1つを選択します。要求された型がリストされておらず、ユーザーが明示的なパスを指定しなかった場合は、利用可能な型をリストして停止します。ユーザーが明示的な kb/.../*.md 型パスを指定した場合は、そのファイルを開き、それが型仕様ドキュメントであることを確認してから使用します。

ステップ2 — コレクション規則を読み込む

対象コレクションの COLLECTION.md を読み、そのコレクションのライティング規則(外部リンク規則を含む)を取得します。外部リンクに関するセクションを探します(見出しは様々です — 宛先とラベルを指定しているセクションを探します)。それを権威あるものとして扱います。このセクションは、ソースがリンク可能な宛先コレクション、除外される宛先、ソース→宛先のペアごとに許可されるラベル、各ラベルが提供する読者のニーズを示しています。内部形式は様々です(宛先ごとのブロック、宛先列を持つ単一のラベルテーブル、散文) — 形式ではなく内容を読み取ります。参照すべき別個のリンクドキュメントはありません。

ハードフェイル: 対象コレクションに COLLECTION.md がない場合。書き込みを受け付けるすべてのコレクションには COLLECTION.md が必要です。その登録簿、品質目標、リンク規則がコレクションを区別するものです。デフォルトの規則で進めないでください。

ステップ3 — 型仕様を読み込む

選択した型仕様ドキュメントを読みます。そのフロントマターには、type: kb/types/type-spec.md、name、description、schema が含まれている必要があります。本文はアーティファクトの形状を提供し、テンプレートブロックを含む場合もあります。その本文を構造的なオーサリング契約として厳守してください。

型パスがない場合に note にフォールバックしないでください。

text については、ユーザーが明示的に非構造化キャプチャを希望する場合のみ、フロントマターなしの生の Markdown を書いてください。それ以外の場合は kb/types/note.md を使用します。

ステップ4 — 書く前に検索する

書き込みは能動的な発見を実行しません — それは cp-skill-connect の役割です。書き込みは1つのノートを作成し、執筆者がすでに手元に持っているリンクと、安価な重複ガードのみをコミットします:

  1. 重複チェック. rg を使用して、新しいノートの特徴的なタイトル用語で対象コレクションを検索します(例: rg -i "キーワード" kb/notes/ --glob "*.md")。これはターゲットを絞った用語検索です — コレクション全体を列挙しないでください。完全なリストはリニアなコンテキストを消費し、単一のノートの重複チェックには不適切なツールです。ほぼ重複が既に存在する場合は、新しいノートを作成するよりも編集する方を優先します。
  2. 既に読み込まれたコンテキスト. この書き込みのためにセッションに取り込まれたノート、ソース、インジェストは、最優先のリンク候補です。読む価値があったものは、リンクを検討する価値があります。
  3. ユーザーが指定したターゲット. ユーザーがプロンプトで言及したリンクターゲット。

編集モードでは、対象ノートのバックリンク検索も実行します — 1回のクエリ、本文検索なし — 編集によって依存関係が孤立しないようにします。

これ以上の発見(コレクション全体の説明スキャン、クロスデスティネーションの探索、本文検索、タグトラバーサル、リンクフォロー、逆エッジの推論)はすべて cp-skill-connect に属し、ここでは行いません。書き込みは1つのノートのオーサリングに集中します。

ステップ5 — 草稿を作成して保存する

型仕様ドキュメントとコレクション規則に従います。既存のファイルを編集する場合を除き、# Title から小文字ハイフン形式のファイル名を生成します。型付きアーティファクトの場合、type: には型名ではなく、リポジトリ相対の正確な型仕様パスを設定します。

特性(traits)は明らかに適切な場合にのみ設定します。利用可能な特性とその意味は、対象の型の仕様(例: kb/types/note.md の特性テーブル)で定義されています — 記憶したリストではなく、そこから語彙を取得します。

編集時は、要求された変更でそれらを変更する必要がない限り、既存のフロントマターとリンクを維持します。

ステップ6 — 検証する

作成または編集したノートを検証します:

commonplace-validate path/to/file.md

構造上の失敗を修正してから停止します。

その後、次のステップとして cp-skill-connect を提案します。ステップ4では、執筆者がすでに手元に持っていたリンク(読み込まれたコンテキスト、ユーザー指定)と重複ガードのみがコミットされます。グラフの残りの部分(コレクション全体の説明スキャン、クロスデスティネーション候補、本文検索結果、タグトラバーサル、リンクフォロー、逆エッジ候補)は、コネクトスキルでのみ明らかになります。この提案は省略可能な装飾ではありません。

普遍的なメカニズム

以下は、コレクションに関係なく、すべての型付きアーティファクトに適用されます。

フロントマター によりノートが検索可能になります。フロントマターがない場合は暗黙的な text を意味します。フロントマターがあるファイルには、パス値の type: が含まれている必要があります。ほとんどのライブラリノートには、description(二重引用符で囲み、50〜200文字)と、オプションで traits、tags、status も必要です。

説明文 は要約ではなく、検索フィルターです。テスト: エージェントがこのノートの概念を検索して5件の結果を得た場合、この説明文はその中からこのノートを選ぶのに役立ちますか? タイトルを言い換えても検索価値はゼロです。

語彙. ルートディレクトリの AGENTS.md で宣言されているアクティブ語彙を使用します。散文を書くか実質的に編集する場合、読者がその用語を知らない可能性がある最初の意味のある言及で、アクティブ語彙を注釈付けしてリンクします。語彙リンクを追加するためだけに、触れていない箇所を変更しないでください。

リンク. ソースファイルからの相対 Markdown パスを使用します。すべてのリンクは実在のファイルを指している必要があります。

位置はコミットメントをエンコードします。インラインの散文接続詞(since [X](./x.md)、because [X](./x.md)、but [X](./x.md))が最も強力です — ターゲットは現在の議論の前提です。フッターリンクには、明示的なラベルとコンテキストフレーズが含まれます: - [title](./path.md) — label: コンテキストフレーズ。

コレクションの COLLECTION.md は、宛先ごとにラベルを許可し、各ラベルが提供する読者のニーズを指定しています。リンクの目的に合った読者のニーズに対応するラベルを選択し、コンテキストフレーズは「[ソース] は [特定の理由] により [ターゲット] に接続する」という問いに答えるように書きます。許可されたラベルが適合しない場合、その候補はこのコレクションのスコープ外です — リンクをドロップするか、許可を拡張するためにコレクションの作成者にエスカレーションします。

ファイル名 は小文字、ハイフン区切り、.md、# Title から派生、最大70文字です。

蒸留追跡: ノートから焦点を絞ったアーティファクトに蒸留する場合、各ソースノートのフッターに Distilled into: を追加します。蒸留されたアーティファクトはリンクを返しません。

リネーム: 手動でリネームしないでください。commonplace-relocate-note を使用してバックリンクを更新します。

関連スキル