very-long-text-summarization について
単一のコンテキストウィンドウに収まらない文書を処理し、短い要約ではなく構造的な理解を求める読者や研究者向けのスキルです。分割と複数段階の抽出により、要約、ナレッジマップ、スキル草案を作成します。
主な機能
- 01意味または固定長で重複を保って分割
- 02初回抽出の並列実行
- 03構造化ナレッジマップへの統合
- 04任意のスキル草案の精緻化
- 05要約、ナレッジマップ、スキル草案の各モード
活用シーン
- 01長いハンドブックから専門知識を抽出
- 02複数の研究論文の知見を統合
- 03大規模コードベースのアーキテクチャ把握
- 04ハンドブックからスキル草案を作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ curiositech/ some_claude_skills --skill very-long-text-summarizationインストール後、Claude Code で/very-long-text-summarizationを入力して読み込まれたか確認します。
同梱ファイル.claude-plugin/plugin.jsonCHANGELOG.md
詳細
非常に長いテキストの要約
安価なモデル群を用いた階層的な複数パス抽出により、単一のコンテキストウィンドウに収まらない大きさのテキストを処理します。単なる文章の圧縮ではなく、構造化されたナレッジマップ、インデックス付きの要約、スキルのドラフトを生成します。
使用する場面
✅ 次の用途に使用します:
- 専門的なハンドブックや教科書(100〜1000ページ以上)
- キャリアに関する伝記や回顧録(専門知識のパターンを抽出)
- 大規模なコードベース(アーキテクチャレベルで把握)
- 研究論文のコレクション(複数の論文にまたがる知見を統合)
- 単一のコンテキストウィンドウ(約100Kトークン)を超えるあらゆるテキスト
❌ 次の用途には使用しません:
- 短いドキュメント(<10ページ)— 直接読んでください
- リアルタイム会話の要約(自動圧縮のパターンを使用)
- コードドキュメントの生成(
technical-writerを使用) - 単純なTL;DRの依頼(複数パスによるオーバーヘッドに見合いません)
アーキテクチャ:3パスの階層的抽出
flowchart TD
D[Document] --> C[Chunk into segments]
C --> P1["Pass 1: Haiku army\n(parallel extraction)"]
P1 --> I[Intermediate summaries]
I --> P2["Pass 2: Sonnet synthesis\n(merge + structure)"]
P2 --> S[Structured knowledge map]
S --> P3["Pass 3: Opus refinement\n(optional, for skill drafts)"]
P3 --> O[Final output]
パス1:チャンク分割抽出(Haiku群)
ドキュメントを重複するチャンク(各約4Kトークン、500トークンの重複)に分割します。各チャンクに対してHaikuの呼び出しを1回ずつ並列に実行します。それぞれが次の項目を抽出します:
extraction_template:
summary: "2-3 sentence summary of this section"
key_claims: ["list of factual claims or assertions"]
processes: ["any step-by-step procedures described"]
decisions: ["any decision points or heuristics mentioned"]
failures: ["any failures, mistakes, or anti-patterns described"]
aha_moments: ["any insights, realizations, or conceptual breakthroughs"]
metaphors: ["any metaphors or mental models used"]
temporal: ["any 'things changed when...' or 'before X, after Y' patterns"]
quotes: ["notable direct quotes worth preserving"]
references: ["any citations, links, or cross-references"]
コスト:1チャンクあたり約$0.001。300ページの書籍(約150Kトークン)の場合、約38チャンクとなり、パス1の合計は約$0.04です。
並列処理:すべてのチャンクを同時に実行します。300ページの書籍でも、パス1は約3分ではなく、実時間で約3秒で完了します。
パス2:統合(Sonnet)
パス1で抽出した内容をすべて、1回以上のSonnet呼び出しに入力します。Sonnetが知識を統合し、重複を排除して構造化します。
synthesis_template:
document_summary: "1-2 paragraph executive summary"
knowledge_map:
core_concepts:
- concept: "name"
definition: "what it means in this domain"
relationships: ["connects to concept X because..."]
processes:
- name: "process name"
steps: ["ordered steps"]
decision_points: ["where choices are made"]
common_mistakes: ["what goes wrong"]
expertise_patterns:
- pattern: "what experts do differently"
novice_mistake: "what novices do instead"
aha_moment: "the insight that bridges the gap"
temporal_evolution:
- period: "date range"
paradigm: "what was believed/practiced"
change_trigger: "what caused the shift"
key_metaphors:
- metaphor: "how practitioners think about X"
maps_to: "the underlying structure it represents"
index:
- topic: "topic name"
chunk_ids: [3, 7, 12] # Which original chunks cover this
summary: "1 sentence"
コスト:抽出量に応じて約$0.02〜$0.05です。インデックスにより、書籍内の特定のセクションまで追跡できます。
パス3:洗練(Opus、省略可)
スキルのドラフトを出力するモードでは、Opusがナレッジマップを受け取り、skill-architectのテンプレートに従ってSKILL.mdを生成します。これは「ハンドブックからスキルを結晶化する」パイプラインです。
コスト:約$0.10です。出力がスキルのドラフトである場合にのみ実行してください。
チャンク分割戦略
セマンティックチャンク分割(推奨)
ドキュメントの構造(章の境界、セクション見出し、段落の区切り)に沿って分割します。各チャンク内の意味的な一貫性を保てます。
def semantic_chunk(text: str, max_tokens: int = 4000, overlap: int = 500) -> list[str]:
"""Split text on structural boundaries with overlap."""
# Split on headings, then merge short sections
sections = split_on_headings(text) # ##, ###, etc.
chunks = []
current = ""
for section in sections:
if count_tokens(current + section) > max_tokens:
chunks.append(current)
# Overlap: keep the last ~500 tokens
current = get_last_n_tokens(current, overlap) + section
else:
current += section
if current:
chunks.append(current)
return chunks
固定サイズのチャンク分割(代替手段)
見出しのない非構造化テキストに使用します。段落の区切りで分割し、500トークンの重複を設けながら約4Kトークンを目標にします。
なぜ重複させるのか?
チャンクの境界をまたぐ概念は、抽出されるよう両方のチャンクに含める必要があります。重複がなければ、境界をまたぐ知識が失われます。
出力モード
モード1:要約
エグゼクティブ概要、主要な概念、インデックスを含む構造化された要約を生成します。
用途:長いドキュメントを手早く把握する場合。会議の前にハンドブックを読む場合。
モード2:ナレッジマップ
概念、プロセス、専門知識のパターン、時間的な変化、比喩を含む完全なナレッジマップを生成します。後続処理に使える、機械可読形式(YAML/JSON)です。
用途:スキルの作成、ドメインのメタスキルの開発、または複数ドキュメントにまたがる分析への入力に使用します。
モード3:スキルのドラフト
skill-architectのテンプレートに従ってSKILL.mdを生成し、ハンドブックの専門知識を意思決定ツリー、アンチパターン、シボレスとして記述します。
用途:専門的なハンドブックをClaudeスキルに変換する場合。KEパイプライン。
コストモデル
| ドキュメントの規模 | ページ数 | チャンク数 | パス1(Haiku) | パス2(Sonnet) | パス3(Opus) | 合計 |
|---|---|---|---|---|---|---|
| 記事 | 10 | 4 | $0.004 | $0.01 | — | $0.014 |
| 章 | 30 | 10 | $0.01 | $0.02 | — | $0.03 |
| ハンドブック | 300 | 38 | $0.04 | $0.05 | $0.10 | $0.19 |
| 教科書 | 800 | 100 | $0.10 | $0.10 | $0.10 | $0.30 |
| 百科事典 | 2000+ | 250+ | $0.25 | $0.20 | $0.10 | $0.55 |
処理時間の大半は、最も時間のかかる単一のHaiku呼び出し(約2〜3秒)で決まります。完全な並列処理を行えば、2000ページのテキストでもパス1は5秒未満で完了します。
アンチパターン
1回のパスでの要約
誤り:ドキュメント全体を1回の Opus 呼び出しに入力します。 理由:コンテキストウィンドウを超えるか、入力が非常に長いために注意が分散し、抽出の質が低下します。 正解:階層的なマルチパス処理です。低コストの並列抽出から、高コストの統合へ進みます。
構造を考慮しない要約
誤り:300ページのハンドブックを2段落の文章で要約します。 理由:構造こそが知識です。平坦な要約では、スキルを価値あるものにする意思決定ツリー、失敗パターン、時間の経過に伴う変化が失われます。 正解:元のセクションにインデックス経由でアクセスできる、構造化されたナレッジマップを作成します。
オーバーラップの省略
誤り:オーバーラップなしで、明確な境界でチャンクに分割します。 理由:境界をまたぐ概念が分断され、失われます。 正解:チャンク間に500トークンのオーバーラップを設けます。各チャンクには、前のチャンクの末尾を含めます。
ソースの追跡可能性の無視
誤り:どのチャンクに由来するかを記録せずに抽出結果を作成します。
理由:主張に誤りがあるように見える場合、ソースと照合して検証する必要があります。追跡可能性がなければ、それはできません。
正解:すべての抽出結果に、元のテキストセグメントにリンクする chunk_id を付与します。