tech-blog
ソースコード解析やドキュメント調査に基づき、システム内部構造、アーキテクチャ、実装詳細、技術コンセプトなどを引用付きで解説する技術ブログ記事を執筆するSkill。
📜 元の英語説明(参考)
Write technical blog posts with source code analysis OR doc-driven research. Use when user wants to explain system internals, architecture, implementation details, or technical concepts with citations.
🇯🇵 日本人クリエイター向け解説
ソースコード解析やドキュメント調査に基づき、システム内部構造、アーキテクチャ、実装詳細、技術コンセプトなどを引用付きで解説する技術ブログ記事を執筆するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o tech-blog.zip https://jpskill.com/download/9213.zip && unzip -o tech-blog.zip && rm tech-blog.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9213.zip -OutFile "$d\tech-blog.zip"; Expand-Archive "$d\tech-blog.zip" -DestinationPath $d -Force; ri "$d\tech-blog.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
tech-blog.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
tech-blogフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
技術ブログの書き方
システム内部、アーキテクチャ、実装の詳細を説明する技術ブログ記事を書きます。
どのような時に使うか
- システム内部または実装の詳細を説明する
- ソースコードの分析とウォークスルー
- 異なる実装やアプローチの比較
- ドキュメント駆動のアーキテクチャ/比較記事 (ソースコードは対象外)
ドキュメント構造
# [トピック] 深掘り
簡単な紹介 + なぜ重要なのか。
> **コードバージョン**: [プロジェクト] の `vX.Y.Z` タグ (または外部リポジトリの場合はコミットID) に基づく。
## 1. はじめに (問題 + 範囲)
## 2. 背景 / 前提条件
## 3-N. コアコンテンツ (コード構造ではなく、データフローによる)
## N+1. 比較 / トレードオフ
## N+2. コードインデックス (ファイル、関数、行番号)
## 参考文献
重要なガイドライン:
- 第1章 = はじめに + ナビゲーションのみ、実装の詳細は含めない
- コンテンツはコードコンポーネントではなく、データフローで構成する
> ⏭️ 初めて読む場合は、§X にスキップし、必要に応じてここに戻ってください。を使用する
コア原則
1. 段階的な説明
- 解決策ではなく、問題から始める
- 概念をレイヤーごとに構築する
- 「何」だけでなく「なぜ」を説明する
2. 概念優先 (概念前置)
- 未定義の用語は絶対に使用しない: 使用前に定義する
- 概念セクションを追加する: 実装の前に概念を紹介するために §X.Y.1 を作成する
- ナビゲーションヒントを使用する:
> ⏭️ X に慣れていない場合は、まず §Y を参照してください
3. 全体像優先 (整体图景优先)
- 詳細の前に、統一された視覚的な概要から始める
- 2つ以上のアプローチには、比較図/表を使用する
- 1つの図で完全なフローを示す
4. バランスの取れた比較
- 両方の側面を分析する。都合の良い点だけを取り上げない
- 類似の概念には比較表を使用する
- 真に異なる点と、同等な点を特定する
5. 設計上の意思決定の説明
- どのような問題を解決するか?
- どのような代替案が存在するか?
- どのようなトレードオフがあるか?
6. 具体的な例
- 主要なセクションごとに1〜2個の実用的な例を示す
- 入力 → 処理 → 出力 を示す
- 抽象的な概念には実際のデータを使用する (例: 実際の単語を使用した転置インデックス)
7. 用語の正確性
- ソースコードまたは公式ドキュメントで用語を確認する
- ドメイン固有の用語は導入時に定義する
- 用語が交換可能であると想定しない
調査戦略
ソースコードの調査 (プロジェクト固有の詳細には必須)
- 特定のコードロジック、条件、データ構造
- 構成パラメータとデフォルト値
- 引用のためのファイルパスと行番号
- 実装のバリエーション (例: Wide vs Compact)
知識/記憶 (標準プロトコルの場合は OK)
- 標準的な構文 (ES DSL, HTTP, SQL)
- よく知られたアルゴリズム (B+ tree, 転置インデックス)
- 公開されているドキュメントの内容
ドキュメント駆動の調査 (ソースコードがない場合)
- 主張リストを抽出する (デフォルト値、制限事項、「X をサポート」)
- 信頼できるソースを見つける (公式ドキュメント → ベンダーブログ → コミュニティ)
- 主張の場所に引用する:
(来源:[Label]) - 参照スタイルのリンクを使用する:
[Label]: https://... - 事実と推論を区別する
- 数字を捏造しない
💡 プロジェクトにない情報をソースコードで検索しないでください。プロジェクト固有の実装に焦点を当ててください。
ライティングのガイドライン
コード例
- ファイルパスと行番号を含める
- 何をするかを説明する。ただ見せるだけではない
- 大きなブロックをフロー図 + 主要なスニペットに置き換える
- 実用的なクエリ/コマンドの例を追加する
図 (Mermaid を推奨)
コンポーネントを区別するために色を使用する:
flowchart LR
A[Client] --> B[Component A] --> C[Component B]
style A fill:#e1f5fe,stroke:#01579b
style B fill:#fff3e0,stroke:#e65100
style C fill:#e8f5e9,stroke:#2e7d32
配色:
- 🔵 青 (#e1f5fe): クライアント/エントリポイント
- 🟠 オレンジ (#fff3e0): 処理コンポーネント
- 🟢 緑 (#e8f5e9): データ/ストレージ
- 🔴 ピンク (#fce4ec): 分散実行
複雑なフローにはステップ番号を追加する:
flowchart LR
A -->|1. Request| B -->|2. Parse| C -->|3. Execute| D -->|4. Return| A
表
- 比較、パフォーマンスデータ、コンポーネントの概要に使用する
コールアウト
- 💡 Key Point: 重要な洞察
- ⚠️ Gotcha: よくある間違い
- 📝 Terminology: 定義
- ⏭️ Navigation: 相互参照
ハイブリッドアーキテクチャのドキュメント化
複数のテクノロジーを組み合わせたシステム (例: ES + ClickHouse, Java + C++) をドキュメント化する場合:
1. コンポーネントの責任を明確にする
- 決めつけない: 各コンポーネントの役割は、スタンドアロンでの使用とは異なる場合がある
- 確認する: どれがメタデータを処理するか? クエリの解析は? 分散実行は?
- 境界をドキュメント化する: どこから始まり、どこで終わるか?
例 (TSearch = ES + ClickHouse):
- ES: メタデータ管理、DSL 解析、ルーティングテーブル
- ClickHouse: データストレージ、分散クエリ実行
- ⚠️ よくある間違い: RPC が分散実行を処理すると想定する
2. 通信メカニズムの進化
- 履歴をドキュメント化する: 「最初は Thrift RPC だったが、現在は JNI に移行中」
- 現在の状態: どのインターフェースがどのメカニズムを使用しているか?
- 変更の理由: パフォーマンス? シンプルさ?
3. データフローの検証
記述する前に、実際のフローをトレースする:
- リクエストはどこから入るか?
- どのコンポーネントが解析するか?
- どのように変換されるか?
- どのコンポーネントが実行するか?
- 結果はどのように返されるか?
概念の統合 (DRY)
同じ概念が複数のセクションに現れる場合:
- 1つの信頼できるセクションを作成する
- 他のセクションはそれを参照する: 「詳細については §3.1 を参照してください」
- 他の場所にはコンテキスト固有の詳細のみを追加する
統合するタイミング: 同じ概念が3つ以上のセクションにある場合、または更新に複数の場所の編集が必要な場合。
データ整合性
絶対に捏造しない
- ❌ 「圧縮率は 16:1 です」(テストなし)
- ❌ 「クエリ速度が 38% 向上しました」(ベンチマークなし)
- ✅ 「LZ4 は高速な圧縮を提供します」(定性的)
- ✅ 「[ソース] に基づくと、比率は X:Y です」(引用付き)
引用が必要
- 特定の圧縮率
- パフォーマンスベンチマーク
- メモリ使用量
- 定量的な比較
よくある落とし穴
| 落とし穴 | 解決策 |
|---|---|
| 唐突な移行 | 接続文を追加する |
| 片側だけの比較 | U |
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Technical Blog Writing Skill
Write technical blog posts that explain system internals, architecture, and implementation details.
When to Use
- Explaining system internals or implementation details
- Source code analysis and walkthrough
- Comparing different implementations or approaches
- Doc-driven architecture/comparison posts (no source code in scope)
Document Structure
# [Topic] Deep Dive
Brief intro + why it matters.
> **Code Version**: Based on [project] `vX.Y.Z` tag (or commit id for external repos).
## 1. Introduction (problem + scope)
## 2. Background / Prerequisites
## 3-N. Core Content (by data flow, not code structure)
## N+1. Comparison / Trade-offs
## N+2. Code Index (files, functions, line numbers)
## References
Key guidelines:
- Chapter 1 = Introduction + Navigation only, no implementation details
- Organize content by data flow, not by code components
- Use
> ⏭️ If reading first time, skip to §X, return here when needed.
Core Principles
1. Progressive Explanation
- Start with the problem, not the solution
- Build concepts layer by layer
- Explain "why" not just "what"
2. Concept-First (概念前置)
- Never use undefined terms: Define before use
- Add concept sections: Create §X.Y.1 to introduce concepts before implementation
- Use navigation hints:
> ⏭️ If unfamiliar with X, see §Y first
3. Big Picture First (整体图景优先)
- Start with unified visual overview before details
- Use comparison diagrams/tables for 2+ approaches
- Show complete flow in one diagram
4. Balanced Comparison
- Analyze BOTH sides; don't cherry-pick
- Use comparison tables for similar concepts
- Identify what's truly different vs. equivalent
5. Design Decision Explanation
- What problem does it solve?
- What alternatives exist?
- What trade-offs?
6. Concrete Examples
- 1-2 practical examples per major section
- Show input → process → output
- Use real data for abstract concepts (e.g., inverted index with actual words)
7. Terminology Accuracy
- Verify terms via source code or official docs
- Define domain-specific terms when introducing
- Don't assume terms are interchangeable
Research Strategy
Source Code Exploration (MUST for project-specific details)
- Specific code logic, conditions, data structures
- Configuration parameters and defaults
- File paths and line numbers for citations
- Implementation variants (e.g., Wide vs Compact)
Knowledge/Memory (OK for standard protocols)
- Standard syntax (ES DSL, HTTP, SQL)
- Well-known algorithms (B+ tree, inverted index)
- Public documentation content
Doc-Driven Research (when no source code)
- Extract claim list (defaults, limitations, "supports X")
- Find authoritative sources (official docs → vendor blogs → community)
- Cite at claim location:
(来源:[Label]) - Use reference-style links:
[Label]: https://... - Separate fact vs inference
- Never fabricate numbers
💡 Don't search source code for info not in the project. Focus on project-specific implementation.
Writing Guidelines
Code Examples
- Include file path and line numbers
- Explain what it does, not just show it
- Replace large blocks with flow diagrams + key snippets
- Add practical query/command examples
Diagrams (Prefer Mermaid)
Use colors to distinguish components:
flowchart LR
A[Client] --> B[Component A] --> C[Component B]
style A fill:#e1f5fe,stroke:#01579b
style B fill:#fff3e0,stroke:#e65100
style C fill:#e8f5e9,stroke:#2e7d32
Color scheme:
- 🔵 Blue (#e1f5fe): Client/Entry points
- 🟠 Orange (#fff3e0): Processing components
- 🟢 Green (#e8f5e9): Data/Storage
- 🔴 Pink (#fce4ec): Distributed execution
Add step numbers for complex flows:
flowchart LR
A -->|1. Request| B -->|2. Parse| C -->|3. Execute| D -->|4. Return| A
Tables
- Use for comparisons, performance data, component summaries
Callouts
- 💡 Key Point: Critical insights
- ⚠️ Gotcha: Common mistakes
- 📝 Terminology: Definitions
- ⏭️ Navigation: Cross-references
Hybrid Architecture Documentation
When documenting systems combining multiple technologies (e.g., ES + ClickHouse, Java + C++):
1. Clarify Component Responsibilities
- Don't assume: Each component's role may differ from standalone usage
- Verify: Which handles metadata? Query parsing? Distributed execution?
- Document boundaries: Where does one end and another begin?
Example (TSearch = ES + ClickHouse):
- ES: Metadata management, DSL parsing, routing table
- ClickHouse: Data storage, distributed query execution
- ⚠️ Common mistake: Assuming RPC handles distributed execution
2. Communication Mechanism Evolution
- Document history: "Initially Thrift RPC, now migrating to JNI"
- Current state: Which interfaces use which mechanism?
- Why the change: Performance? Simplicity?
3. Data Flow Verification
Before writing, trace actual flow:
- Where does request enter?
- Which component parses it?
- How is it transformed?
- Which component executes?
- How are results returned?
Concept Consolidation (DRY)
When same concept appears in multiple sections:
- Create ONE authoritative section
- Other sections reference it: "See §3.1 for details"
- Only add context-specific details elsewhere
When to consolidate: Same concept in 3+ sections, or updates require editing multiple places.
Data Integrity
NEVER Fabricate
- ❌ "Compression ratio is 16:1" (without test)
- ❌ "Query speed improved by 38%" (without benchmark)
- ✅ "LZ4 provides fast compression" (qualitative)
- ✅ "Based on [source], ratio is X:Y" (with citation)
Requires Citation
- Specific compression ratios
- Performance benchmarks
- Memory usage numbers
- Any quantitative comparison
Common Pitfalls
| Pitfall | Solution |
|---|---|
| Abrupt transitions | Add connection sentences |
| One-sided comparison | Use comparison tables |
| Code without context | Explain role in system |
| Too much source code | Use flow diagrams + key snippets |
| Undefined concepts | Add concept section before use |
| Missing big picture | Start with unified visual overview |
| Fabricated data | Use qualitative or cite sources |
| Assuming communication paths | Verify actual mechanisms for hybrid systems |
| Missing commit id | Always specify for external repos |
| Monotone diagrams | Use colors and step numbers |
Large Document Operations
For documents >500 lines:
- Create draft file:
[topic]-DRAFT.md - Build new structure in draft
- Review with user
- Merge into original
- Delete draft
Verification Checklist
Structure & Flow:
- [ ] Sections flow naturally with transitions
- [ ] Summary-detail pattern with overview diagrams
- [ ] Concepts introduced before use
Content Quality:
- [ ] Code examples include file paths and line numbers
- [ ] Each section has concrete examples
- [ ] No fabricated data; all numbers cited
- [ ] Terminology verified against source
Technical Accuracy:
- [ ] Code version/commit id specified
- [ ] Hybrid architecture responsibilities verified
- [ ] Communication mechanisms documented
Visual Clarity:
- [ ] Diagrams use colors and step numbers
- [ ] Comparison tables for similar concepts
- [ ] Practical query/command examples included
Output
- Location:
docs/,ai_docs/, or project-specific folder - Filename:
[topic-name].md - Language: Match user's preference