with one click
with one click
公開済みの blog post から NotebookLM Audio Overview (日本語ポッドキャスト) を生成し、記事フロントマターに紐付ける
Hugo ブログ記事を新規作成し、PR を作成する
既存 blog post に対してファクトチェックを単独実行する。skill 自身が claim を抽出 → claim-atom-verifier (Haiku) を claim 単位で並列 fan-out する swarm を回す
wiki section または個別ページに対して claim 単位の swarm ファクトチェックを実行する。skill 親セッションが claim を抽出し claim-atom-verifier (Haiku) を並列起動する
Wiki ページの `lastmod` を section 別の閾値で評価し、touch されずに古びた候補を浮かせる。refresh サブコマンドで wiki-fact-checker agent を起動して claim を再検証する
Wiki の健全性チェック(矛盾検出、孤立ページ、欠落リンク、古い記述)
| name | wiki-ingest |
| description | ブログ記事を読み込んで Wiki ページを自動生成・更新する |
| arguments | [{"name":"target","description":"対象の指定。記事パス(content/posts/...)、カテゴリ名、または 'all'(全記事一括)","required":true}] |
推奨モデル: Sonnet 4.6 このスキルは記事の要約・統合・分類が主な仕事で、Opus の深い推論は不要。 実行前に
/model sonnetで切り替えるとコスト効率が良い(Opus と比較して大幅に安価、品質は同等)。 一括処理 (all) の場合は特に効きが大きい。
指定されたブログ記事を読み込み、Wiki ページ(コンセプト・ツール・ガイド)を自動生成・更新します。
<concept-slug>.md<tool-slug>.md<guide-slug>.md---
title: "ページタイトル"
description: "1行の概要説明"
date: YYYY-MM-DD # 初回作成日
lastmod: YYYY-MM-DD # 最終更新日
aliases: ["別名1", "別名2"] # 検索用の別名(オプション)
related_posts: # ソースとなったブログ記事
- "/posts/YYYY/MM/slug/"
tags: ["tag1", "tag2"] # 関連タグ
---
content/posts/ から該当カテゴリの記事を検索all: content/posts/ の全記事を対象にする(バッチ処理)Wiki ページを作成・更新する前に、必ず専用スクリプトで ingest 計画を出す。これは Karpathy の LLM Wiki パターンに沿って、記事を 1:1 で Wiki 化せず、既存の概念・ツール・ガイドページへ知識を統合するための前段チェック。
python3 .claude/skills/wiki-ingest/scripts/wiki_ingest_plan.py <target>
代表例:
# 全記事。ただし前回 ingest 日以降だけを対象にする
python3 .claude/skills/wiki-ingest/scripts/wiki_ingest_plan.py all --since-file .claude/wiki-last-ingest.txt
# 単一記事
python3 .claude/skills/wiki-ingest/scripts/wiki_ingest_plan.py content/posts/2026/05/example.md
# カテゴリ
python3 .claude/skills/wiki-ingest/scripts/wiki_ingest_plan.py "AI/LLM"
# 機械処理用
python3 .claude/skills/wiki-ingest/scripts/wiki_ingest_plan.py all --format json
スクリプトは .claude/temp/wiki_ingest_index.sqlite に SQLite FTS5 trigram のローカル全文検索 index を作り、各記事を次の状態に分類する。
related_posts に既に含まれる。原則スキップ。related_posts には含まれるが、記事の lastmod が Wiki より新しい。既存ページを更新候補にする。concepts/、tools/、guides/ のいずれかに新規ページを作る。new_candidate であっても、記事の丸コピーや「1 blog = 1 wiki」にはしない。記事から概念・ツール・手順として再利用できる知識だけを抽出し、既存ページと接続する。
計画を機械的に適用する場合は wiki_ingest_apply.py を使う。
# 通常運用: 高信頼の update_candidate だけ既存 Wiki に related_posts / ソース記事を追記
python3 .claude/skills/wiki-ingest/scripts/wiki_ingest_apply.py all --since-file .claude/wiki-last-ingest.txt --policy safe
# 全記事対応: 高信頼候補は既存 Wiki に統合し、低信頼・新規候補は backlog Wiki に集約
python3 .claude/skills/wiki-ingest/scripts/wiki_ingest_apply.py all --policy all
--policy all は全記事を対象にできるが、低信頼候補を無理に既存ページへ混ぜない。review_candidate / new_candidate のうち高信頼統合できなかったものは content/wiki/guides/wiki-ingest-backlog.md に集約し、後で人間またはエージェントが個別ページへ蒸留する。
各記事について以下を抽出する:
抽出したエンティティごとに:
wiki_ingest_plan.py の候補を起点に、content/wiki/ 内に該当ページが既にあるか確認related_posts に記事を追加し、内容を補完・更新## 概要
{エンティティの簡潔な説明 — 2-3文}
## 詳細
{記事群から抽出した詳細情報}
## 関連ページ
- [関連 Wiki ページ](/blogs/wiki/section/slug/)
## ソース記事
- [記事タイトル](/blogs/posts/YYYY/MM/slug/) — YYYY-MM-DD
処理完了後、各セクションの _index.md のリンクが最新状態であることを確認する。
all 指定時)全記事を一括処理する場合:
backlog-rescan target)/wiki-ingest backlog-rescan で起動すると、content/wiki/guides/wiki-ingest-backlog-*.md に積まれている滞留記事を再走査し、現在の Wiki に対して score>=70 で update_candidate に昇格できる候補だけ を抽出する。
backlog 入り当時は既存 Wiki が薄くて統合先が見つからなかった記事も、その後 Wiki が育っていれば再走査でマッチする可能性があるため、定期的な棚卸しに使う。
Haiku 駆動の再走査 — backlog-rescanner subagent を起動する:
Agent(subagent_type="backlog-rescanner", prompt="閾値 70、全 backlog 対象")
wiki_backlog_rescan.py --min-score 70 --format json を実行wiki_ingest_plan.plan_post() を再利用しているので、通常の ingest と同一基準候補リストをユーザーに提示 — agent から JSON verdict (candidates[]) を受け取り、表形式で要約する:
| post | promoted_to | score | best_target | reasons |
|---|---|---|---|---|
content/posts/.../foo.md | update_candidate | 78 | tools/celery.md | title match; tag overlap |
承認 — ユーザーに個別 or 一括で確認を取る:
integrate: 既存 Wiki に統合create_new: best_target はあるが薄いので Sonnet が新規ページ作成判断defer: 今回は見送りSonnet 親セッションが Edit/Write を担当 — backlog-rescanner は読み取り専用。実反映は親が行う:
Edit で related_posts 追記 + 該当節を加筆Write で新規 Wiki ページ作成/blogs/wiki/.../)を追加ビルド検証 — 完了後 hugo --gc でビルド成功を確認
backlog からの自動消滅 — 次回 CI で wiki_ingest_apply.py --policy all が走ると、Wiki に統合された記事は再生成時点で backlog から除外される(手動削除不要)
ドライランや CI 利用のため、スクリプト単体でも実行可能:
# 全件、score>=70
python3 .claude/skills/wiki-ingest/scripts/wiki_backlog_rescan.py --min-score 70
# 2014 年の new_candidate だけ
python3 .claude/skills/wiki-ingest/scripts/wiki_backlog_rescan.py \
--year 2014 --status new_candidate
# JSON 出力、上位 30 件キャップ
python3 .claude/skills/wiki-ingest/scripts/wiki_backlog_rescan.py \
--min-score 70 --cap 30 --format json
/wiki-ingest backlog-rescan を走らせ、過去記事を吸い上げる/wiki-ingest は 新しい post → Wiki への流入 を扱う。既存 Wiki ページの老朽化 を扱うのは別レーンの /wiki-decay:
.github/workflows/wiki-decay-report.yml) が section 別閾値で stale 候補を Issue 起票/wiki-decay refresh <section>/<slug> で wiki-fact-checker agent を起動して claim 再検証.claude/skills/wiki-decay/SKILL.mdhugo --gc でビルドが通ることを確認する