メインコンテンツへスキップ
kt-tech.blog

【自動化】Claude Code × Notion で開発セッションを自動記事化する仕組み

実装6分で読めます

この記事でわかること

  • 「記事化して」の一言で走る 3 フェーズ(提案→作成→保存)の設計
  • セッションを複数の記事に分けるときの判断基準
  • 公開前に機密情報を落とすマスキングを、別ファイルに分けて持たせる構成
  • Notion に保存するときのプロパティとカテゴリ分類の自動化

Claude Code がインストール済みで、Skills の基本を知っていること。Notion API のインテグレーション設定が済んでいること(別記事「Notion API × Claude Code で自動テックブログを構築する」参照)。

ポイント
Claude Codeでの開発中に得た知見を「記事化して」の一言で自動的にNotionに保存する仕組みを構築します。機密情報のマスキングも自動で行い、すぐに公開できる品質の記事を生成します。

はじめに

開発中に詰まったこと、解決した方法、新しく学んだこと。これらは貴重な知見ですが、後で記事にしようと思っても、時間が経つと詳細を忘れてしまいます。

Claude Code Skillsを使えば、開発セッション中に「記事化して」と言うだけで、その場で記事を生成してNotionに保存できます。この記事では、その仕組みの全体像と実装方法を解説します。


システム全体像

自動記事化システムは3つのフェーズで構成されます。

flowchart TD
    A[ユーザー: 記事化して] --> B[Phase 1: 提案]
    B --> C{セッション分析}
    C --> D[記事候補を表示]
    D --> E[ユーザーが選択]
    E --> F[Phase 2: 作成]
    F --> G[Zenn/Qiita品質で記事生成]
    G --> H[機密情報マスク]
    H --> I[Phase 3: 保存]
    I --> J[Notion API呼び出し]
    J --> K[記事リンクを報告]

Phase 1: 記事候補の提案

セッション分析のポイント

「記事化して」と言われたら、まずセッション内容を分析して記事候補を提案します。

メモ
記事分割の基準: • 異なる技術トピックは別記事に • 1記事は5-10分で読める量 • 関連性の高い内容はまとめる

提案フォーマット

Markdown
## 📝 記事化できそうな内容

| # | タイトル案 | 内容 | 想定読者 |
|---|-----------|------|---------|
| 1 | **Claude Code Skillsの作り方** | スキル定義の基本 | 初心者 |
| 2 | **Notion API連携の実装** | DB設計とAPI呼び出し | 中級者 |

どの記事から書きますか?

Phase 2: 記事作成

Zenn/Qiita品質の記事構成

技術記事として必要なセクションを必ず含めます。

stateDiagram-v2
    [*] --> 概要Callout
    概要Callout --> 目次
    目次 --> はじめに
    はじめに --> この記事でわかること
    この記事でわかること --> 対象読者
    対象読者 --> 前提条件
    前提条件 --> 本文セクション
    本文セクション --> Tips
    Tips --> 参考リンク
    参考リンク --> まとめ
    まとめ --> [*]

品質チェックリスト

  • タイトルが具体的で検索されやすいか
  • 目次(table_of_contents)があるか
  • 「この記事でわかること」があるか
  • 対象読者が明記されているか
  • コード例に言語指定があるか
  • 適切な見出し階層(h2 → h3)になっているか
  • Calloutや表で視覚的にわかりやすいか
  • 参考リンクがあるか
  • 機密情報がマスクされているか

Phase 3: Notionへの保存

保存時の装飾

記事をNotionに保存する際、以下の装飾を自動で付与します。

  • アイコン: 記事内容に合った絵文字
  • カバー画像: Unsplashから技術系の画像
  • プロパティ: Title, Tags, Category, Status, Created

カテゴリ分類

graph LR
    A[記事内容] --> B{分類}
    B -->|エラー解決| C[トラブルシューティング]
    B -->|環境設定| D[設定・環境構築]
    B -->|機能実装| E[実装]
    B -->|設計判断| F[設計]
    B -->|新技術| G[学習メモ]

Skillファイルの構成

自動記事化システムは3つのファイルで構成されます。

Bash
~/.claude/skills/session-to-notion/
├── SKILL.md          # メインの指示ファイル
├── CONFIG.md         # Notion API設定
└── MASKING_RULES.md  # マスキングルール
Tips
マスキングルールを別ファイルに分けているのは、Skill 本体が肥大化するのを避けるためです。skill はディレクトリを持てるので、参照資料は分けておいて必要なときだけ読ませられます。

SKILL.md の構成

YAML
---
name: session-to-notion
description: セッション内容を記事化してNotionに保存
user-invocable: true
---

# Phase 1: 記事候補の提案
[提案ルール]

# Phase 2: 記事作成(Zenn/Qiita品質)
[必須セクション構成]
[品質チェックリスト]

# Phase 3: Notionへの保存
[API設定]
[プロパティ設定]

# 機密情報のマスキング
[マスキングルール参照]

実際の使用例

sequenceDiagram
    actor U as ユーザー
    participant C as Claude Code
    participant S as Skill
    participant N as Notion API
    
    U->>C: 記事化して
    C->>S: session-to-notion スキル発動
    S->>S: セッション分析
    S->>U: 記事候補を提案
    U->>S: 1番を選択
    S->>S: Zenn品質で記事生成
    S->>S: 機密情報マスク
    S->>N: POST /pages
    N-->>S: 記事URL
    S->>U: 記事を保存しました!

Tips: 記事品質を上げるコツ

ポイント
  1. 具体的なタイトルをつける 「Reactのエラー解決」→「React useEffect の無限ループを解決する3つの方法」
ポイント
  1. コード例は動作するものを 断片的なコードではなく、コピペで動くサンプルを心がける
ポイント
  1. 図解を積極的に使う mermaidでフローチャートやシーケンス図を入れると理解しやすい

参考リンク


まとめ

  • 「記事化して」の一言で3フェーズの処理が走る
  • Phase 1で記事候補を提案し、ユーザーが選択
  • Phase 2でZenn/Qiita品質の記事を生成
  • Phase 3で機密情報をマスクしてNotionに保存
  • Skillファイルは3つに分割して管理しやすく

この仕組みを導入することで、開発中の学びを漏らさず記録し、技術ブログの継続的な更新が可能になります。

更新履歴

  1. 参考リンクの裸 URL をタイトル付きに変更し、古い公式ドキュメント URL を現行のものに更新。本文にあった「前回の記事参照」がどの記事か分からなかったので、前提条件に記事名を明記し、参考リンクにも追加。コードブロックの言語指定を plain text から bash に修正。マスキングルールを別ファイルにする理由を補足。「この記事でわかること」「対象読者」「前提条件」を概要プロパティへ移動。

この記事のタグ