mcpField
W
wiki-rebuild

wiki-rebuild

github.com/ar9av生産性3.6k3.2k 回インストール1 日前に更新
リポジトリ

wiki-rebuild について

wiki-rebuildは、Obsidian wikiのアーカイブ、再構築、復元を行うスキルです。ライブコンテンツの消去前にユーザーの確認を求め、アーカイブとObsidianの設定を保持します。

主な機能

  1. 01wikiスナップショットのアーカイブ
  2. 02vaultを消去して再構築
  3. 03選択したアーカイブから復元
  4. 04Obsidian設定の保持
  5. 05設定済みQMDインデックスの更新

活用シーン

  1. 01変更前のスナップショット保存
  2. 02wikiの再取り込み準備
  3. 03以前のwiki状態の復元

インストール

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

$npx skills add https://github.com/ar9av/obsidian-wiki --skill wiki-rebuild

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

詳細

Wiki の再構築 — アーカイブ、再構築、復元

Wiki に対する破壊的な操作を実行します。必ず最初にアーカイブし、実行前に必ずユーザーに確認してください。

開始する前に

  1. 設定を解決する — llm-wiki/SKILL.md の Config Resolution Protocol に従います(インラインの @name による上書き → CWD から .env を上方向にたどる → グローバル設定 → セットアップのプロンプト)。これにより、OBSIDIAN_VAULT_PATH と、QMD_WIKI_COLLECTION などの任意の QMD 設定が得られます
  2. .manifest.json を読み、現在の状態を把握します
  3. ユーザーの意図を確認します。 このスキルでは、次の 3 つのモードを使用できます。
    • アーカイブのみ — 現在の Wiki をスナップショットし、再構築は行いません
    • アーカイブ + 再構築 — スナップショットした後、すべてのソースを最初から再処理します
    • 復元 — 以前のアーカイブを復元します

アーカイブシステム

アーカイブは $OBSIDIAN_VAULT_PATH/_archives/ に保存されます。各アーカイブは、その時点の Wiki の状態を完全にコピーした、タイムスタンプ付きのディレクトリです。

$OBSIDIAN_VAULT_PATH/
├── _archives/
│   ├── 2026-04-01T10-30-00Z/
│   │   ├── archive-meta.json
│   │   ├── concepts/
│   │   ├── entities/
│   │   ├── skills/
│   │   ├── references/
│   │   ├── synthesis/
│   │   ├── journal/
│   │   ├── projects/
│   │   ├── index.md
│   │   ├── log.md
│   │   └── .manifest.json
│   └── 2026-03-15T08-00-00Z/
│       └── ...
├── concepts/          ← live wiki
├── entities/
└── ...
archive-meta.json
{
  "archived_at": "2026-04-06T10:30:00Z",
  "reason": "rebuild",
  "total_pages": 87,
  "total_sources": 42,
  "total_projects": 6,
  "vault_path": "$OBSIDIAN_VAULT_PATH",
  "manifest_snapshot": ".manifest.json"
}

モード 1:アーカイブのみ

再構築せずに現在の状態をスナップショットしたい場合に使用します。

手順:
  1. アーカイブディレクトリを作成します:_archives/YYYY-MM-DDTHH-MM-SSZ/
  2. すべてのカテゴリディレクトリ、index.md、log.md、.manifest.json、および projects/ をアーカイブにコピーします
  3. 理由を "snapshot" として archive-meta.json に書き込みます
  4. log.md に追記します:
    - [TIMESTAMP] ARCHIVE reason="snapshot" pages=87 destination="_archives/2026-04-06T10-30-00Z"
    
  5. log.md がインデックスされていて、QMD_WIKI_COLLECTION が設定されている場合は、必要に応じて QMD を更新します(「ライブ Wiki 変更後の QMD 更新」を参照)。
  6. 次のように報告します:「87 ページをアーカイブしました。現在の Wiki は変更されていません。」

モード 2:アーカイブ + 再構築

最初からやり直したい場合に使用します。以下の手順をすべて実行します。

手順 1:現在の状態をアーカイブする

理由を "rebuild" として、上記のモード 1 と同じ手順を実行します。

手順 2:ライブ Wiki をクリアする

カテゴリディレクトリ(concepts/、entities/、skills/ など)と projects/ ディレクトリから、すべてのコンテンツを削除します。次は残します。

  • _archives/(当然です)
  • .obsidian/(Obsidian の設定)
  • .env(Vault に存在する場合)

index.md を空のテンプレートにリセットします。log.md は再構築のエントリーのみを含む状態にリセットします。.manifest.json を削除します(取り込み時に再作成されます)。

手順 3:再構築する

Vault がクリアされ、すべてのソースを再取り込みできる状態になったことをユーザーに伝えます。ユーザーは次を実行できます。

  1. wiki-status — すべてのソースが「new」と表示されることを確認します
  2. claude-history-ingest — Claude の履歴を再処理します
  3. codex-history-ingest — Codex のセッション履歴を再処理します
  4. wiki-ingest — ドキュメントやその他の未加工データを再処理します

これらのコマンドは、それぞれ実行中にマニフェストを再構築します。

重要: 取り込みを自動的に実行しないでください。何をどの順序で再取り込みするかは、ユーザーが選ぶ必要があります。一部のソースは、すでに関連性がなくなっている可能性があります。

手順 4:再構築を記録する

log.md に追記します:

- [TIMESTAMP] REBUILD archived_to="_archives/2026-04-06T10-30-00Z" previous_pages=87

ライブ Wiki のクリアと記録が完了したら QMD を更新し(「ライブ Wiki 変更後の QMD 更新」を参照)、選択した取り込みスキルを実行できる状態になったことを報告します。

モード 3:アーカイブから復元する

以前の状態に戻したい場合に使用します。

手順 1:利用可能なアーカイブを一覧表示する

_archives/ ディレクトリを読み取ります。各アーカイブについて archive-meta.json を読み、次の情報を提示します。

## Available Archives

| Date | Reason | Pages | Sources |
|---|---|---|---|
| 2026-04-06 10:30 | rebuild | 87 | 42 |
| 2026-03-15 08:00 | snapshot | 65 | 31 |
手順 2:復元するアーカイブを確認する

どのアーカイブを復元するか、ユーザーに尋ねます。復元すると現在のライブ Wiki が上書きされることを警告します。

手順 3:最初に現在の状態をアーカイブする

復元する前に、現在の状態をアーカイブします(理由:"pre-restore")。これにより、何も失われません。

手順 4:復元する
  1. ライブ Wiki をクリアします(モード 2 の手順 2 と同じです)
  2. 選択したアーカイブのすべてのコンテンツを、ライブ Wiki のディレクトリにコピーして戻します
  3. アーカイブから index.md、log.md、.manifest.json を復元します
  4. log.md に追記します:
    - [TIMESTAMP] RESTORE from="_archives/2026-03-15T08-00-00Z" pages_restored=65
    
手順 5:報告する

復元後に QMD を更新し(「ライブ Wiki 変更後の QMD 更新」を参照)、何が復元されたかをユーザーに伝え、復元後の状態に問題がないか確認するため wiki-lint の実行を提案します。

ライブ Wiki の変更後に QMD を更新する

QMD は検索インデックスであり、信頼できる唯一の情報源ではありません。QMD の更新に失敗しても、アーカイブ、再構築、復元の作業をロールバックしないでください。失敗を報告し、Markdown の保管庫はそのままにしてください。

ガード:$QMD_WIKI_COLLECTION が空または未設定の場合、この手順はスキップしてください。

実行するタイミング:

モードQMD を更新しますか?理由
アーカイブのみ任意log.md を除き、ライブ Wiki のコンテンツに変更はありません。log.md がインデックス対象で、QMD が設定されている場合は更新してください。
アーカイブ + 再構築ライブ Wiki の消去後に必須削除されたページを QMD から削除する必要があります。そうしないと、古い検索結果が返されます。後続の取り込みスキルで、ソースの再処理時に再度更新されます。
復元復元後に必須ライブ Wiki がアーカイブのコンテンツに置き換えられたため、QMD を復元後の状態に合わせる必要があります。

この更新には現在、ローカルの QMD CLI が必要です。$QMD_CLI が設定されている場合はそれを使用し、そうでない場合は qmd を使用してください。CLI を利用できない場合は、QMD skipped: qmd CLI unavailable と報告してください。

CLI を使って更新する場合:

${QMD_CLI:-qmd} update

出力に新しいハッシュにはベクトルが必要と表示された場合、または復元によってライブページが置き換えられ、埋め込みが古くなっている可能性がある場合は、次を実行してください。

${QMD_CLI:-qmd} embed

Wiki コレクションに操作が反映されていることを確認してください。

${QMD_CLI:-qmd} ls "$QMD_WIKI_COLLECTION"

復元の場合、アーカイブに既知のページパスがあれば、復元したページも 1 つ確認してください。

${QMD_CLI:-qmd} get "qmd://$QMD_WIKI_COLLECTION/<restored-page>.md" -l 5

最終報告には、QMD の更新結果を次のいずれかで記録してください。

  • QMD refreshed: update + embed + verified
  • QMD refreshed: update only + verified
  • QMD skipped: QMD_WIKI_COLLECTION unset
  • QMD skipped: archive-only live content unchanged
  • QMD skipped: qmd CLI unavailable
  • QMD failed: <short error summary>

安全ルール

  1. 破壊的な操作の前には必ずアーカイブしてください。 例外はありません。
  2. ライブ Wiki を消去する前に、必ずユーザーに確認してください。
  3. ユーザーから明示的に依頼されない限り、アーカイブを削除しないでください。 アーカイブは手軽な保険です。
  4. .obsidian/ ディレクトリは不可侵です。 アーカイブ、再構築、復元の際は絶対に触れないでください。ユーザーの Obsidian の設定、プラグイン、テーマが含まれています。
  5. 再構築の途中で問題が起きた場合も、アーカイブが残っています。復元できることをユーザーに伝えてください。

コメント