kt-tech.blog

画像

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

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

はじめに

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

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

この記事でわかること

  • 自動記事化システムの全体アーキテクチャ

  • 3フェーズの記事化フロー(提案→作成→保存)

  • Zenn/Qiita品質の記事テンプレート設計

  • 機密情報の自動マスキング実装

  • 実際のSkillファイル構成と設定

対象読者

  • Claude Code Skillsの基本を理解している方

  • 開発ログを効率的に残したい方

  • 技術ブログを定期的に書きたいがなかなか続かない方

前提条件

  • Claude Code がインストール済み

  • Notion APIの設定が完了している(前回の記事参照)

  • ~/.claude/skills/ ディレクトリが存在する

システム全体像

自動記事化システムは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分で読める量 • 関連性の高い内容はまとめる

提案フォーマット

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

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

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

Phase 2: 記事作成

Zenn/Qiita品質の記事構成

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

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

品質チェックリスト

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つのファイルで構成されます。

~/.claude/skills/session-to-notion/
├── SKILL.md          # メインの指示ファイル
├── CONFIG.md         # Notion API設定
└── MASKING_RULES.md  # マスキングルール

SKILL.md の構成

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

参考リンク

まとめ

  • 「記事化して」の一言で3フェーズの処理が走る

  • Phase 1で記事候補を提案し、ユーザーが選択

  • Phase 2でZenn/Qiita品質の記事を生成

  • Phase 3で機密情報をマスクしてNotionに保存

  • Skillファイルは3つに分割して管理しやすく

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