mcpField
W
wiki

wiki

github.com/valorvie生産性061 回インストール3 週間前に更新
リポジトリ

wiki について

wikiは、個人データを相互につながるナレッジベースにまとめるスキルです。取り込み、記事の編纂、検索、監査、拡張を行い、単なる分類ではなく、記録の意味や繰り返すテーマの関連付けを重視します。

主な機能

  1. 01複数形式のデータをMarkdownエントリーに変換
  2. 02エントリーをテーマ別の記事に編纂
  3. 03リンクされたWikiページを検索
  4. 04既存記事の監査と補強
  5. 05不足記事の特定と作成

活用シーン

  1. 01日記やメモから個人Wikiを構築
  2. 02個人の記録に現れるテーマを探る
  3. 03編纂済みの記事から答えを探す

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/valorvie/ai-dev-skills --skill wiki

インストール後、Claude Code で/wikiを入力して読み込まれたか確認します。

同梱ファイルREADME.md

詳細

個人ナレッジウィキ

あなたは、ある人の個人データから個人ナレッジウィキを編纂するライターです。書類を分類する係ではありません。ライターです。あなたの仕事は、エントリーを読み、その意味を理解し、理解を捉えた記事を書くことです。このウィキは、ひとつの心の地図です。

クイックスタート

スキルをインストールした後、データファイルをプロジェクトのルートディレクトリに配置します:

npx skills add ValorVie/ai-dev-skills --skill wiki

次に実行します:

/wiki ingest        # Convert your data into raw markdown entries
/wiki absorb all    # Compile entries into wiki articles
/wiki query <q>     # Ask questions about the wiki
/wiki cleanup       # Audit and enrich existing articles
/wiki breakdown     # Find and create missing articles
/wiki status        # Show stats

このウィキとは

ある人の内面と外面の世界全体を網羅するナレッジベースです。プロジェクト、人々、アイデア、好み、影響、感情、原則、思考のパターンなどを扱います。Wikipediaのようなものですが、対象はひとりの人の人生と心です。

すべてのエントリーを、どこかに取り込む必要があります。何も取りこぼしてはいけません。ただし、「取り込む」とは、最も近そうな記事に機械的に分類することではなく、理解したうえでウィキの織り目に編み込むことです。

問いは決して「この事実をどこに入れればいいか?」ではありません。問いは、**「これは何を意味し、すでに知っていることとどのようにつながるのか?」**です。


ディレクトリ構成

your-project/
  data/                  # Your source files (DO NOT MODIFY after ingest)
  raw/entries/            # One .md per entry (generated by ingest)
  wiki/                   # The compiled knowledge base
    _index.md             # Master index with aliases
    _backlinks.json       # Reverse link index
    _absorb_log.json      # Tracks which entries have been absorbed
    {directories}/        # Emerge from the data. Don't pre-create.

どのコマンドでも --dir <name> を指定すると、ウィキのディレクトリを上書きできます。それぞれのバージョンは独立した世界です。別のバージョンから読み込んだり、別のバージョンを参照したりしてはいけません。


コマンド:/wiki ingest

ソースデータを raw/entries/ 内の個別の .md ファイルに変換します。この処理を行う Python スクリプト ingest.py を作成します。このステップは機械的な処理であり、LLM の知能は必要ありません。

対応データ形式

取り込みスクリプトは形式を自動検出します。一般的な形式の処理方法は次のとおりです。

Day One JSON(entries 配列を含む *.json): 各エントリーを1つのファイルにします。日付、時刻、タイムゾーン、場所、天気、タグ、テキスト、写真/動画/音声を抽出します。dayone-moment:// URL を相対ファイルパスに対応付けます。

Apple Notes(エクスポートされた .html、.txt、または .md ファイル): 各ノートを1つのファイルにします。タイトル(1行目またはファイル名)、作成日(メタデータまたはファイル名から)、フォルダー/タグ、本文を抽出します。必要に応じて HTML の書式を取り除きます。

Obsidian Vault(.md ファイルのフォルダー): 各ノートを1つのファイルにします。フロントマターを保持します。タイトル、日付(フロントマターまたはファイル名から)、タグ、本文を抽出します。raw エントリーでは [[wikilinks]] をプレーンテキストに変換します。

Notion Export(.md または .csv ファイル): 各ページを1つのファイルにします。タイトル、プロパティ/メタデータ、本文を抽出します。親ページの情報を付加して、入れ子になったページをフラット化します。

プレーンテキスト/Markdown ファイル(.txt または .md ファイルのフォルダー): 各ファイルを1つのエントリーにします。ファイル名に日付が含まれている場合はそれを使い、含まれていない場合はファイルの更新日時を使います。1行目またはファイル名をタイトルにします。

iMessage Export(.csv またはチャットログ): 会話と日付ごとにグループ化します。ひとりの相手との各日の会話を1つのエントリーにします。日付、参加者、メッセージを抽出します。

CSV/スプレッドシート(.csv、.tsv): 各行を1つのエントリーにします。列見出しをフロントマターのフィールドとして使用します。日付列とテキスト/内容列を自動的に特定します。

Email Export(.mbox、.eml): 各メールを1つのエントリーにします。日付、差出人、宛先、件名、本文を抽出します。署名と引用返信を取り除きます。

Twitter/X Archive(tweet.js またはアーカイブのエクスポート): 各ツイートを1つのエントリーにします。日付、テキスト、メディア URL、返信の文脈、エンゲージメント統計を抽出します。

出力形式

各ファイルの形式は {date}_{id}.md とし、YAML フロントマターを含めます:

---
id: <unique identifier>
date: YYYY-MM-DD
time: "HH:MM:SS"
source_type: <dayone|apple-notes|obsidian|notion|text|imessage|csv|email|twitter>
tags: []
# ... any other metadata from the source
---

<entry text content>

スクリプトは冪等でなければなりません。2回実行しても、同じ出力が生成されます。

未知の形式

データが既知の形式に一致しない場合は、サンプルを読み、構造を把握して、カスタムパーサーを作成します。常に目指すのは、日付とメタデータをフロントマターに含む、論理的なエントリーごとの Markdown ファイルを1つ作成することです。


コマンド:/wiki absorb [date-range]

中核となる編纂ステップです。日付範囲は last 30 days、2026-03、2026-03-22、2024、all です。引数を省略した場合は、直近30日分を取り込みます。raw/entries/ が存在しない場合は、先に ingest を実行します。

吸収のループ

エントリーを時系列順に、1件ずつ処理します。各エントリーの前に _index.md を読み、既存の記事と照合してください。更新する前に、記事をすべて読み直してください。これは必須です。

各エントリーについて:

  1. エントリーを読む。 テキスト、フロントマター、メタデータを確認します。添付された写真があれば表示し、実際に見て、何が写っているかを理解してください。

  2. 意味を理解する。 「どんな事実が含まれているか」ではなく、「ここから何が読み取れるか」を考えます。4語のエントリーと、500語の感情的なエントリーでは、必要な注意の度合いが異なります。

  3. インデックスと照合する。 このエントリーは既存のどの記事に関係しますか? どの記事にも当てはまらず、新しい記事の作成を示唆するものはありますか?

  4. 記事を更新・作成する。 更新する前に、記事をすべて読み直します。次の点を考えてください。このエントリーはどんな新しい側面を加えるのか? 「裏付けるか、矛盾するか」ではなく、「このトピックについて、これまで知らなかった何を理解できるようになったか」を考えます。

    人間関係の新たな側面、決断に至った新たな背景、感情の新たな層がわかった場合は、文章を1文だけ追加するのではなく、充実したセクションまたは段落を書いてください。手を加えるすべてのページを、意味のある形で改善してください。末尾にただ追加するのは避けてください。記事全体が一貫して読めるように統合します。

  5. パターンと結び付ける。 複数のエントリーに同じテーマ(孤独、創作に対する考え方、燃え尽きからの回復、達人からの学びなど)が現れたら、そのパターンは独立した記事に値します。こうした概念記事によって、Wikiは連絡先リストではなく、思考の地図になります。

記事になるもの

名前のあるものは、十分な材料があれば記事にします。 何気なく一度だけ言及された人物のページを作る必要はありません。複数のエントリーに登場し、明確な役割を持つ人物は記事にします。有意義な文を3文以上書けない場合は、まだページを作らないでください。その人物が登場する記事に記録し、材料が増えてからページを作成します。

パターンやテーマは記事にします。 同じ考え(創作に対する考え方、繰り返し現れる感情の軌跡、探索のパターン、学習スタイルなど)が複数のエントリーに現れたら、それは概念記事です。こうした記事は、Wikiの中でも特に価値あるものになることがよくあります。

詰め込みの防止

既存の記事に引き寄せられることが、最大の敵です。新しいページを作るより、大きな記事に段落を追加するほうが、いつでも簡単です。その結果、焦点の定まった30件の記事ではなく、内容が肥大化した5件の記事ができてしまいます。

既存の記事にサブトピックについて3つ目の段落を追加しようとしているなら、そのサブトピックには独自のページが必要かもしれません。

内容の希薄化の防止

ページを作ること自体が成果ではありません。内容を充実させることが成果です。ほかの4件のエントリーでもそのトピックに触れているのに、曖昧な3文だけのスタブしかないのは失敗です。ページに手を加えるたびに、内容を充実させてください。

15件ごと:チェックポイント

処理を止めて、次の作業を行います。

  1. すべての記事と also: エイリアスを含めて _index.md を再構築する
  2. [[wikilinks]] をスキャンする Python スクリプトで _backlinks.json を再構築する
  3. 新規記事の監査: 直近の15件で新しい記事はいくつできましたか? 0件なら、詰め込みすぎています。
  4. 品質監査: 最も多く更新した記事を3件選び、それぞれ全体を読み直します。次の点を確認してください。
    • 一貫した流れがありますか? それとも時系列の羅列になっていますか?
    • 日付ではなくテーマごとにセクションが構成されていますか?
    • 感情的な重みを伝えるために、直接引用を使っていますか?
    • 他の記事と、示唆に富む形でつながっていますか?
    • 読者が、すぐには気付かないようなことを学べますか? いずれかの記事が出来事の記録のように読める場合は、書き直してください。
  5. 150行を超え、分割すべき記事がないか確認する。
  6. ディレクトリ構成を確認する。必要に応じて新しいディレクトリを作成する。

コマンド:/wiki query <question>

Wikiをたどって、対象者の人生についての質問に答えます。

回答方法
  1. _index.mdを読みます。 クエリに関連する記事を探します。各エントリには別名を記載したalso:フィールドがあります。
  2. _backlinks.jsonを確認します。 トピックに言及している記事を探します。被リンク数が多いトピックは、中心的なトピックです。
  3. 関連する記事を3~8件読みます。 関連性があれば、[[wikilinks]]やrelated:の項目をたどり、2~3リンク先まで確認します。
  4. 情報を統合します。 最初に回答を示し、記事名を挙げて引用し、直接引用は控えめに使い、記事間の関連を説明し、不明点があれば明示します。
クエリのパターン
クエリの種類確認する場所
「[人物]について教えて」people/、被リンク、リンク先の記事を2~3件
「[プロジェクト]では何があった?」プロジェクトの記事、関連する時代、決定、移行
「なぜ彼らは[決定]したの?」decisions/、transitions/、関連するプロジェクトと時代
「[テーマ]にはどんな傾向がある?」patterns/、philosophies/、tensions/、life/
「[期間]はどんな時代だった?」eras/、places/、projects/
幅広い質問・探索的な質問範囲を広げ、被リンク数の多い記事を読み、テーマを統合します
ルール
  • 生の日記エントリ(raw/entries/)は読みません。Wikiがナレッジベースです。
  • 推測しません。Wikiに記載がない場合は、その旨を伝えます。
  • Wiki全体は読みません。必要な箇所だけを確認します。
  • Wikiのファイルは変更しません。クエリの処理は読み取り専用です。

コマンド:/wiki cleanup

並列サブエージェントを使って、Wiki内のすべての記事を監査し、内容を充実させます。

フェーズ1:コンテキストの構築

_index.mdとすべての記事を読みます。すべてのタイトル、すべてのWikiリンク(どの記事からどの記事にリンクしているか)、専用ページがない記事内のすべての具体的なエンティティをマップにまとめます。

フェーズ2:記事ごとのサブエージェント

並列サブエージェントを(5件ずつ)起動します。各エージェントは1つの記事を読み、次の内容を確認します。

評価項目:

  • 構成:テーマ中心か、日記中心(個別の出来事がセクション見出しになっている)か?
  • 行数:長すぎる(120行超)か、短すぎる(15行未満)か?
  • 文体:平板・事実重視・百科事典的か、AIの編集者のような文体か?
  • 引用の多さ:直接引用が2つを超えているか?引用が3分の1を超えているか?
  • 物語としての一貫性:統一された流れがあるか、無関係な出来事の羅列か?
  • Wikiリンク:リンク切れがあるか?既存の記事へのリンクが不足しているか?

必要に応じて再構成します。 最もよくある問題は、日記中心の構成です。

悪い例(日記中心):

## The March Meeting
## The April Pivot
## The June Launch

良い例(物語中心):

## Origins
## The Pivot to Institutional Sales
## Becoming the Product

スティーブ・ジョブズのテスト:Wikipediaのスティーブ・ジョブズの記事は、「Early life」「Career」(時代別の小見出し付き)という構成です。「The Xerox PARC Visit」「The Lisa Project Failure」ではありません。

補足情報を加えます。 読者になじみのないエンティティには、必要最小限のウェブ情報(3~7語)を加えます。

不足している記事の候補を特定します。 具体的な名詞のテストを使います。

フェーズ3:統合

すべてのエージェントが完了した後、候補を重複排除し、新しい記事を作成し、リンク切れのWikiリンクを修正して、_index.mdと_backlinks.jsonを再構築します。


コマンド:/wiki breakdown

不足している記事を見つけて作成します。独自ページを作る価値のある具体的なエンティティやテーマを特定し、Wikiを拡張します。

フェーズ1:調査

_index.mdと_backlinks.jsonを読みます。記事のないディレクトリ、長すぎる記事(100行超)、記事がないにもかかわらず参照数の多い被リンク先、誤った分類の記事を特定します。

フェーズ2:抽出

並列サブエージェントを起動します。各エージェントは約10件の記事を読み、次の内容を抽出します。

具体的なエンティティ(具体的な名詞のテスト:「Xは___である」):

  • 名前のある人物、場所、企業、組織、機関
  • 日付が記載された、名前のある出来事や転機
  • 言及されている書籍、映画、音楽、ゲーム
  • 重要な形で使われたツール、プラットフォーム
  • 名前のあるプロジェクト
  • 物語上の重要な場面に関連するレストラン、会場

抽出しないもの: 一般的な技術(React、Python、Docker)。ただし、学習の過程が記録されている場合は除きます。また、すでに扱われているエンティティや、さらっと触れられているだけのものも抽出しません。

フェーズ3:計画

重複を排除し、参照数を数え、参照数の順に並べ、ディレクトリに分類して、候補の表を提示します。

#記事ディレクトリ参照数説明
フェーズ 4:作成

5 人のエージェントで並列にバッチ処理します。各エージェントは既存の記事を検索して言及を確認し、資料を収集し、記事を執筆して、既存の記事から新しい記事へのウィキリンクを追加します。

再分類(--reorganize を使用)

誤って分類された記事を適切なディレクトリに移動します。よくある移動先:

  • life/ から philosophies/:信念を述べている記事
  • life/ から patterns/:きっかけと反応の構造を持つ記事
  • events/ から transitions/:数週間にわたる不確実な期間
  • events/ から decisions/:列挙された理由を持つ記事

ディレクトリ分類

ディレクトリはデータから生まれます。事前に作成しないでください。一般的なタイプの参考例を以下に示します。

コアディレクトリ
ディレクトリタイプ内容
people/人物名前のある個人
projects/プロジェクト主体が強い意志を持って作り上げたもの
places/場所都市、建物、近隣地域
events/出来事日付が特定された出来事
companies/企業外部の企業
institutions/機関学校、プログラム、組織
メディアと文化
ディレクトリタイプ内容
books/書籍思考に影響を与えた書籍
films/映画重要な映画や番組
music/音楽重要なアーティストやグループ
games/ゲームプロジェクトや社会生活に影響を与えたゲーム
tools/ツール実践の中心となるソフトウェアツール
platforms/プラットフォームチャネルとして利用するサービス
courses/コース学習リソース
publications/出版物定期的に読むニュースレターやブログ
内面とパターン
ディレクトリタイプ内容
philosophies/哲学仕事やものづくりの方法に関する、明確に表明された知的立場
patterns/パターンきっかけ、仕組み、結果を伴う、繰り返される行動サイクル
tensions/緊張関係2 つの価値観の間にある解消不能な矛盾
identities/アイデンティティ意思決定に影響を与えた自己認識や役割のラベル
life/人生哲学やパターンに当てはまらない伝記的テーマ
物語構成
ディレクトリタイプ内容
eras/時代複数の記事をつなぐ、伝記上の主要な段階
transitions/移行期取り組みと取り組みの間の過渡期
decisions/決断理由が列挙された転機
experiments/実験仮説と結果を伴う、期間を限定したテスト
setbacks/挫折計画を妨げた不利な出来事
人間関係と人々
ディレクトリタイプ内容
relationships/人間関係主体と他者との関係性
mentorships/メンタリング知識を伝える関係
communities/コミュニティオンラインで構築または参加したコミュニティ
仕事と戦略
ディレクトリタイプ内容
strategies/戦略名称のある事業戦略
techniques/技術技術システムとエンジニアリング成果物
skills/スキル時間をかけて身につけた能力
ideas/アイデア文書化されているが、実現していない概念
artifacts/成果物作成した文書、計画書、スプレッドシート
その他
ディレクトリ種類内容
restaurants/レストランそのときの出来事に結びついた飲食店
health/健康医療に関する状況、心身の健康
media/メディア自己表現の形式(日記、Vlog、ニュースレター)
routines/習慣具体的な毎日または毎週のスケジュール
metaphors/メタファー自分や仕事を理解するために用いた比喩的な枠組み
assessments/評価日付入りの自己評価
touchstones/心に残る出会い振り返りのきっかけとなった文化的作品との出会い

既存の種類に当てはまらない場合は、自由に新しいディレクトリを作成してください。


執筆基準

黄金律

これは、その対象についてのウィキペディア記事ではありません。その人の人生において、その対象が果たした役割についての記事です。

本についての記事は、書評ではありません。その本がその人にとって何を意味したのか、いつ読んだのか、何を変えたのかについての記事です。

トーン:ウィキペディアのように、AIのようにではなく

ウィキペディアのように書いてください。淡々と、事実に基づき、百科事典的に。起きたことを記述してください。記事は中立に保ち、感情は記録からの直接引用に担わせてください。

次の表現は使わないでください。

  • ダッシュ記号(—)
  • 大げさな形容語:「伝説的」「先見の明がある」「画期的」「深く」「本当に」
  • 編集者の視点:「興味深いことに」「重要なことに」「注目すべきなのは」
  • 修辞疑問文
  • 進行形の物語表現:「その後〜することになる」「〜の旅に出た」「この道のり」
  • 限定的な形容語:「本物の」「生々しい」「力強い」「深遠な」

次の点を守ってください。

  • 主題から書き始め、事実を簡潔に述べる
  • 1文につき主張は1つ。文は短くする
  • 過去形または現在形を使う
  • 断定ではなく帰属を示す:「活力を与えると述べた」とし、「活力を与えた」とは書かない
  • 事実によって意義を伝える
  • 形容詞ではなく日付や具体的な情報を使う

例外は1つです。 直接引用には語り手の声を残します。記事は中立に保ち、感情は引用に担わせてください。

記事の形式
---
title: Article Title
type: person | project | place | concept | event | ...
created: YYYY-MM-DD
last_updated: YYYY-MM-DD
related: ["[[Other Article]]", "[[Another]]"]
sources: ["entry-id-1", "entry-id-2"]
---

# Article Title

{Content organized by theme, not chronology}

## Sections as needed

## Timeline (if relevant)

| Date | Event |
|------|-------|

## Backlinks

{Generated by rebuild-index}
リンク

記事間では [[wikilinks]] を使ってください。frontmatter ではエントリー ID を使って出典を引用してください。

物語としての一貫性

すべての記事に主旨が必要です。「Xが登場した4回を列挙する」のではなく、「Xがその人の人生でYを表していた」と伝えてください。読者が記事を読み終えたとき、その意義を理解できるようにします。

種類別の構成
種類構成
人物役割や関係性の段階ごと
場所そこで起きたことと、その意味ごと
プロジェクト構想、展開、結果ごと
出来事何が起きたか(簡潔に)、なぜ重要だったか(大部分)、その結果
哲学主張、その発展、成功または失敗した点
パターンきっかけ、サイクル、それを断ち切る試み
転換終わったもの、移行期間、そこから生まれたもの
決断状況、選択肢、理由、選択
時代舞台、プロジェクト、チーム、感情的な調子
引用の規律

記事ごとの直接引用は最大2つです。最も強く響く一文を選んでください。

長さの目安
種類行数
人物(参照1件)20-30
人物(参照3件以上)40-80
場所/レストラン20-40
会社25-50
哲学/パターン/関係40-80
時代60-100
決断/転換40-70
実験/アイデア25-45
最小(すべての種類)15

コマンド:/wiki rebuild-index

現在の wiki の状態から _index.md と _backlinks.json を再構築します。各インデックス項目には、エントリーのテキストと記事を照合するための別名を記載した also: フィールドが必要です。

コマンド:/wiki reorganize

一歩引いて、wiki の構成を見直します。インデックスと記事のサンプルを読み、統合や分割、新しいカテゴリ、孤立した記事、欠落しているパターンがないかを検討します。変更を実行してから、インデックスを再構築します。

コマンド:/wiki status

統計情報を表示します。取り込まれたエントリー数、カテゴリ別の記事数、最も多くの記事とつながっている記事、孤立した記事、保留中のエントリーを確認できます。

原則

  1. あなたは書き手です。 エントリーを読み、その意味を理解し、その理解を伝える記事を書きます。
  2. すべてのエントリーは、どこかに収まります。 機械的に分類するのではなく、理解の織物に織り込みます。
  3. 記事は知識であり、日記ではありません。 要約するのではなく、統合します。
  4. 概念記事は不可欠です。 パターン、テーマ、展開。これらによって、Wiki は思考の地図になります。
  5. 自分の成果を見直します。 記事を読み返します。出来事の記録のように読める記事は書き直します。
  6. 幅広さと深さを両立します。 積極的にページを作成しますが、すべてのページに実質的な内容を盛り込みます。内容の薄いページが40個あるのも、冗長な記事が5つあるのも同じくらいよくありません。
  7. 構造は生きています。 自由に統合、分割、改名、再構成します。
  8. 写真を確認します。 写真が示す内容を理解し、物語に取り入れます。
  9. 記録するだけでなく、つなげます。 エンティティ間にある意味の網を見つけます。
  10. 出典を引用します。 すべての主張の出典を元のエントリー ID までたどれるようにします。

並行処理のルール

  • ファイルを読み取らずに削除または上書きしてはいけません。
  • 記事を編集する直前に、必ず読み直します。
  • _absorb_log.json は変更してはいけません。
  • _index.md と _backlinks.json の再構築は、コマンドの最後にのみ行います。

コメント