Delegate independent tasks to specialized agents working concurrently with isolated context.
Book Writer
book-writer
books リポジトリ用の技術文書作成ワークフロー。 論文・技術文書などを .qmd 形式の構造化ドキュメントに変換する。 サブエージェントで補足文書を並列生成し、Quarto callout で補足情報を追加。 使用タイミング: (1) 論文まとめの作成、(2) 技術文書のドキュメント化、 (3) 複雑な概念を含む文書の解説作成、(4) 「〜についてまとめて」という依頼
SKILL.md
Full skill instructions
Book Writer
books リポジトリ用の技術文書作成ワークフロー。論文・技術文書などを効率的に .qmd 形式の構造化ドキュメントへ変換する。
ワークフロー概要
Phase 0: 執筆準備(言語・本確認・ディレクトリ作成)
↓
Phase 1: メイン文書作成 (00-overview.qmd)
↓
Phase 2: 補足文書の並列生成(サブエージェント)
↓
Phase 3: Callout 補足の追加
↓
Phase 4: index.qmd と _quarto.yml の設定
↓
Phase 5: 最終確認・リンク整備
リファレンス
書式ルール(サブエージェント向け)
重要: サブエージェントに補足文書を作成させる際は、必ず assets/formatting-rules.md を読ませてください。
- assets/formatting-rules.md: 書式ルール完全版(Box drawings、Quarto 記法、ファイル命名、リンク等)
- Box drawings 内は半角英数字のみ使用(日本語禁止)
- 実在するファイルへのリンクのみ
- Callout の適切な使用方法
Quarto 機能リファレンス
詳細な Quarto 機能については、references/ ディレクトリのリファレンスファイルを参照してください:
- callouts.md: Callout の詳細オプション(appearance, icon, collapse, cross-reference 等)
- cross-references.md: 図表・セクション・数式等への相互参照システム(
@fig-,@tbl-,@sec-等) - figures.md: 図の挿入・サイズ調整・サブフィギュア・lightbox 等
- tables.md: 表の作成(pipe tables, list tables, 計算表)・スタイリング・サブテーブル等
- diagrams.md: Mermaid・Graphviz によるダイアグラム作成
これらは技術文書作成時に頻繁に参照することになります。特に cross-references.md は、図表参照を多用する技術文書では必須です。
Phase 0: 執筆準備
目的
執筆開始前に必要な情報を確認し、ディレクトリ構造を準備する。
手順
-
執筆言語の確認: 日本語(
ja/)か英語(en/)か- ユーザーに確認: 「日本語で執筆しますか?それとも英語ですか?」
- 回答に応じてディレクトリを決定:
ja/{book}/またはen/{book}/
-
本の名前の確認: ディレクトリ名となる本(ケバブケース)
- 例:
olmo-3,deepseek-r1,molmo2,qwen-3
- 例:
-
元文書の確認: 論文 URL、PDF パス、テキストファイルなど
-
ディレクトリ作成:
{lang}/{book}/と{lang}/{book}/images/を作成 -
_metadata.yml を作成:
sidebar: book-namesidebarには本の名前(ケバブケース)を指定- この値は
_quarto.ymlのidと一致させる
注意: index.qmd は Phase 4(補足文書が確定した後)に作成します。
ディレクトリ構成
基本構成:
{lang}/{book}/
├── _metadata.yml # サイドバーID指定
├── index.qmd # 本のランディングページ(Phase 4で作成)
├── 00-overview.qmd # メイン文書(概要・全体像)
├── 01-concept-a.qmd # 補足文書1
├── 02-concept-b.qmd # 補足文書2
├── 03-concept-c.qmd # 補足文書3
├── ...
└── images/ # 画像ディレクトリ
└── figure.png
ファイル命名規則
- 00-overview.qmd: メイン文書(概要・全体の流れ)
- 01-xx.qmd, 02-xx.qmd...: 補足文書(連番、トピック名をケバブケース)
- images/: 画像は専用ディレクトリに配置
- 拡張子:
.qmdを使用(Quarto の機能をフル活用)
参考例: ja/olmo-3/
ja/olmo-3/
├── _metadata.yml
├── index.qmd
├── 00-overview.qmd
├── 01-sliding-window-attention.qmd
├── 02-deduplication.qmd
├── 03-data-mixing.qmd
├── 04-midtraining.qmd
├── 05-long-context.qmd
├── 06-grpo-olmorl.qmd
└── images/
└── olmo-3.png
Phase 1: メイン文書作成 (00-overview.qmd)
目的
全体の流れを把握できるメイン文書を作成する。詳細は後で補足文書に分離。
手順
- 構造分析: 元テキストの章立て・主要トピックを把握
- 骨格作成: 見出し構成を決定(
## セクション→### サブセクション) - 本文執筆: 各セクションの要点を簡潔に記述
- 補足候補マーク: 詳細解説が必要な概念・用語に
> 詳細: [補足文書名](path.qmd)を仮置き
出力例
# {本の名前} Technical Report まとめ
## 概要
このモデルは...
## アーキテクチャ
### 特徴的な機構
効率的な Attention 機構を採用し...
> 詳細: [Sliding Window Attention](01-sliding-window-attention.qmd)
### その他の特徴
...
リンク記法
メイン文書から補足文書へのリンクは相対パス:
> 詳細: [補足文書タイトル](01-concept-name.qmd)
図表・ダイアグラム・クロスリファレンス
技術文書では図表やダイアグラムが頻繁に登場します。Quarto の強力な機能を活用しましょう:
- 図の挿入:
{#fig-name}で図を挿入し、@fig-nameで参照 - 表の作成: Pipe tables や List tables で複雑な表を作成し、
@tbl-nameで参照 - ダイアグラム: Mermaid や Graphviz でフローチャート・シーケンス図を作成
- クロスリファレンス:
@fig-,@tbl-,@sec-,@eq-による統一的な参照システム - 数式: KaTeX(LaTeX 記法)を使用(
$x^2$でインライン、$$\sum_{i=1}^{n}$$でディスプレイ)
詳細:
references/cross-references.md,references/figures.md,references/tables.md,references/diagrams.mdを参照してください。
Phase 2: 補足文書の並列生成
目的
メイン文書でマークした概念・用語について、サブエージェント(Task tool)で補足文書を並列生成。
手順
- 補足候補の抽出: メイン文書から
> 詳細:でマークした箇所をリストアップ - サブエージェント起動: 各補足文書を並列で生成
Task tool を複数同時に呼び出し:
- Agent 1: 01-sliding-window-attention.qmd を作成
- Agent 2: 02-deduplication.qmd を作成
- Agent 3: 03-data-mixing.qmd を作成
- 結果確認: 各サブエージェントの出力を確認し、必要に応じて修正
サブエージェントへのプロンプト例
重要: サブエージェントには必ず書式ルールを読ませてから作業させること。
あなたは book-writer スキルのサブエージェントです。
まず、以下の書式ルールを確認してください:
{.claude/skills/book-writer/assets/formatting-rules.md の内容を読み込む}
**CRITICAL ルール**(厳守):
- 日本語(`ja/`)の場合は**である調**で記述(ですます調禁止)
- Box drawings 内は半角英数字のみ使用(日本語禁止)
- **リスト前に必ず空行を挿入**(箇条書き、順序付きリスト、チェックリスト全て)
- **blockquote(`>`で始まる引用ブロック)の前にも空行を挿入**
- リンクは実在するファイルのみ(存在しないファイルへのリンク禁止)
- 拡張子は必ず `.qmd`
- Callout は適切に開閉(`:::` の対応確認)
---
以下の概念について補足文書を作成してください:
- ファイル: {lang}/{book}/01-sliding-window-attention.qmd
- 対象概念: Sliding Window Attention
- 元文書の該当箇所: [引用]
- 含めるべき内容:
- 概念の定義と動機
- 仕組みの解説(図解があれば言及)
- 他手法との比較(Quarto callout で記載)
**記法**:
- タイトル: `# Sliding Window Attention`
- 表・図があれば Quarto 記法で記述
- 他手法との比較は `.callout-note collapse="true"` で記載
補足文書の構成
- タイトル:
# 概念名 - 内容: 概念の定義、動機、仕組み、比較など
- Callout: 発展的内容や比較は Quarto callout で追加
Phase 3: Callout 補足の追加
目的
本筋から逸れるが知っておきたい補足情報を Quarto callout で追加。
Callout の使いどころ
- 他モデル・他手法との比較
- 発展的な内容(論文では触れられていない応用など)
- 参考情報(本文を読む上で必須ではないもの)
- 出典・参考文献への言及
記法
::: {.callout-note collapse="true"}
## 他モデルとの比較: Qwen3, DeepSeek
Qwen3 は SWA を採用せず Full Attention を使用...
**参考**: [Qwen3 Technical Report](https://arxiv.org/abs/...)
:::
Callout の種類:
.callout-note: 補足情報(デフォルト、青色).callout-tip: ヒント・Tips(緑色).callout-important: 重要な情報(赤色).callout-warning: 警告(オレンジ色).callout-caution: 注意(赤色)
オプション:
collapse="true": 折りたたみ可能にするcollapse="false": デフォルトで展開(省略時はこれ)
詳細: より高度な Callout の使い方(appearance, icon, cross-reference 等)は
references/callouts.mdを参照してください。
手順
- メイン文書を走査: 比較・発展内容を追加できる箇所を特定
- 補足文書を走査: 同様に callout 追加箇所を特定
- Callout 追加: 各文書に callout を挿入
Phase 4: index.qmd と _quarto.yml の設定
目的
補足文書が確定したので、本のランディングページ(index.qmd)を作成し、サイト全体のナビゲーションに統合する。
4.1: index.qmd の作成
Phase 2 で確定した補足文書をもとに、index.qmd を作成します。
テンプレート
---
title: "本のタイトル"
description: "本の説明(1行)"
date: "YYYY-MM-DD"
author: "Naoto Iwase"
categories: [カテゴリ1, カテゴリ2, カテゴリ3]
image: "images/cover-image.png"
---
モデル/技術の簡単な説明(1-2段落)
**論文**: [arXiv:XXXX.XXXXX](https://arxiv.org/abs/XXXX.XXXXX)
**Tech Report**: URL(もしあれば)
## 目次
- [全体像](00-overview.qmd)
- [補足文書1のタイトル](01-xxx.qmd)
- [補足文書2のタイトル](02-xxx.qmd)
- ...
フィールド説明
- title: 本のタイトル(モデル名など)
- description: 1行の説明文(簡潔なひと言で)
- date: 作成日または論文の公開日(YYYY-MM-DD形式)
- 重要: 現在の日付は Bash ツールで
date +%Y-%m-%dを実行して確認すること - タイポを防ぐため、手動で年を書かずに必ずコマンド結果を使用する
- 重要: 現在の日付は Bash ツールで
- author: "Naoto Iwase"(固定)
- categories: 適切なカテゴリを最大2つまでリスト形式で指定
- 重要: まず既存カテゴリを確認して表記揺れを防ぐ:
python .claude/skills/book-writer/scripts/list_categories.py . - 既存カテゴリがあれば優先的に使用し、新規カテゴリは必要な場合のみ追加
- 例:
[LLM, Reasoning] - 例:
[VLM, Multimodal] - 例:
[Deep Learning, Statistical Physics]
- 重要: まず既存カテゴリを確認して表記揺れを防ぐ:
- image: カバー画像のパス(
images/ディレクトリ内)
本文
- モデル/技術の簡単な紹介(1-2段落)
- 論文へのリンク(arXiv URLなど)
- Tech ReportやブログのURL(あれば)
- 目次: 00-overview.qmd と Phase 2 で作成した全ての補足文書へのリンク
4.2: _quarto.yml のサイドバー設定
新しい本を _quarto.yml の sidebar セクションに追加します。index.qmd の目次と一致させます。
sidebar:
- id: new-book
title: "New Book Title"
style: "docked"
contents:
- section: "New Book Title"
href: ja/new-book/index.qmd
contents:
- text: "全体像"
href: ja/new-book/00-overview.qmd
- text: "概念A"
href: ja/new-book/01-concept-a.qmd
- text: "概念B"
href: ja/new-book/02-concept-b.qmd
# ... 他の補足文書も同様に追加
注意点:
idは一意の識別子(本の名前、_metadata.ymlのsidebarと同じ)titleはサイドバーに表示されるタイトルhrefは必ず相対パスで記述- 補足文書の
textは日本語の場合は日本語、英語の場合は英語で記述 index.qmdの目次とサイドバーの内容を一致させること- 既存のサイドバーエントリ(例:
olmo-3,molmo2)を参考にすること
Phase 5: 最終確認・リンク整備
目的
すべての文書とリンクが正しく整備されているか最終確認を行う。
手順
5.1: Box Drawings の自動修正
最初に必ず実行: LLMは文字幅を正確に認識できないため、Box drawingsの修正は自動化ツールに任せます。
python .claude/skills/book-writer/scripts/fix_box_drawings.py {lang}/{book}
このスクリプトは:
- 全角文字と半角文字の表示幅を正しく計算(ASCII=1, 全角=2)
- Box drawingsの右端を自動で揃える
- 修正が必要なファイルのみ上書き
5.2: リストとblockquote前の空行の自動修正
次に必ず実行: LLMは箇条書きやblockquote前の空行を見落としやすいため、自動化ツールで修正します。
python3 .claude/skills/book-writer/scripts/fix_spacing.py {lang}/{book}
このスクリプトは:
- 箇条書き(
-,*,+)と順序付きリスト(1.,2.など)の直前に空行がない箇所を検出 - blockquote(
>で始まる引用ブロック)の直前に空行がない箇所を検出 - 自動的に空行を挿入
- 修正が必要なファイルのみ上書き
5.3: チェックリスト
自動修正ツールの実行後、以下を確認:
- 日本語(
ja/)の場合はである調で記述されているか -
_metadata.ymlが作成されているか(sidebar: book-name形式) -
index.qmdが作成されているか(目次が全章を網羅しているか) -
_quarto.ymlのサイドバーに追加されているか -
index.qmdの目次と_quarto.ymlのサイドバーが一致しているか - メイン文書から補足文書へのリンクが正しいか(
.qmd拡張子) - 補足文書の番号が連番になっているか(01, 02, 03...)
- リスト前に空行が挿入されているか(箇条書き、順序付きリスト、チェックリスト全て)
- リスト項目内の引用(blockquote)の前にも空行が挿入されているか
- Quarto callout が正しく閉じているか(
:::の対応) - 画像は
images/ディレクトリに配置されているか
リンク形式の確認
メイン文書から補足文書:
> 詳細: [Sliding Window Attention](01-sliding-window-attention.qmd)
画像の参照:

ローカルプレビュー(オプション)
Quarto でローカルプレビューして確認:
quarto preview
Tips
コンテキスト管理
- 元テキストが長い場合、Phase 1 では要点のみ抽出し、詳細は Phase 2 で各サブエージェントに分担
- サブエージェントには必要な部分のみ渡す(元テキスト全体を渡さない)
並列度の調整
- 補足文書が多い場合は 3-5 個ずつバッチで生成
- 依存関係がある場合は順次生成(例: 用語 A の説明に用語 B が必要)
一貫性の確保
- 用語の統一(メイン文書で定義した表記を補足文書でも使用)
- ファイル命名の連番は 00, 01, 02... のように2桁にする
Box drawings の使用
図表やフロー図を Box drawings(罫線文字)で表現する際の注意点:
- 半角文字のみを使用: Box drawings 内に日本語などの全角文字を入れると、文字幅が揃わずレイアウトが崩れるため、Box drawings 内は英数字・記号のみで記述
- .qmd でも同じ: Quarto でも ASCII box drawings は同様に機能する
- サブエージェントへの注意: サブエージェントに Box drawings を含む文書を作成させる際は、必ず
assets/formatting-rules.mdの該当セクションを読ませること - 自動修正: Phase 5で
scripts/fix_box_drawings.pyを必ず実行(LLMは文字幅を認識できないため) - 例:
Good (半角のみ):
┌─────────────────────────────────────────────────────────────┐
│ Stage 1: Pretraining │
│ - Data: Dolma 3 Mix (6T tokens) │
│ - Goal: General language understanding & generation │
└─────────────────────────────────────────────────────────────┘
Bad (全角文字混在):
┌─────────────────────────────────────────────────────────────┐
│ ステージ 1: 事前学習 │ ← 崩れる
│ - データ: Dolma 3 Mix (6T tokens) │ ← 崩れる
└─────────────────────────────────────────────────────────────┘
言語別の注意点
日本語 (ja/) の場合
- 文体: である調(断定調)を使用
- 例: 「〜である」「〜する」「〜となる」
- ですます調は使用しない
- 専門用語は初出時に英語を併記: 「強化学習(Reinforcement Learning, RL)」
- 論文タイトルや固有名詞は原語表記を優先
- Callout 内も日本語で記述
英語 (en/) の場合
- 明確で簡潔な表現を心がける
- 専門用語は略語の初出時に展開: "Reinforcement Learning (RL)"
- Callout 内も英語で記述
More Other skills
brand-guidelines
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
theme-factory
Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.
internal-comms
A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).
Fundamental design principles for writing maintainable, testable Python code.
responsive-design
Modern responsive layouts using container queries, fluid typography, CSS Grid, and mobile-first strategies.
Generate Playwright tests from scenarios using interactive browser exploration and validation.
Automated website exploration and test case generation using Playwright.
Modern React state management with Redux Toolkit, Zustand, Jotai, and React Query for every state category.
gdpr-data-handling
GDPR-compliant data handling with consent management, data subject rights, and privacy controls.
Python error handling patterns including input validation, exception hierarchies, and partial failure handling. Use when implementing validation logic, designing exception strategies, handling batch processing failures, or building robust APIs.
refactor-plan
Detailed multi-file refactor planning with safety checks and rollback guidance.
