0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

1週間278コミットを39本の記事に変換する:Claude Codeでネタ抽出する手順

0
Posted at

はじめに

ビジュアルノベルエンジン「kaedevn」の開発は、1 週間で 278 コミットという密度の高い開発でした。開発が一段落した後、「この開発体験から何本の記事が書けるか」を Claude Code に聞いてみたところ、39 本の記事ネタが抽出されました。

この記事では、「git log とレポートファイルから記事ネタを抽出する」という作業の手順と、Claude Code への指示方法、そして出力された結果の構造を解説します。

全体の流れ

Step 1: 情報収集 — git log 全件 + docs/09_reports/ の全レポート
Step 2: パターン分類 — 7 カテゴリに分類
Step 3: ネタ一覧生成 — タイトル・概要・ソースファイル・予想文字数
Step 4: 一覧の検証 — 重複・漏れのチェック

Step 1: 情報収集

git log の読み込み

278 コミットの全件を Claude Code に読ませます。

git log --oneline --all

出力例:

a0ad2e6 docs: インタプリタ実装報告書を追加
45360d3 fix: エディタのアセットフィルターを新 taxonomy に対応
e7aa0ba fix: 公式アセットインポート時の slug 長超過で 500 エラーになる問題を修正
2eb84f6 fix: /my-assets フィルター・インポートボタンのコントラスト改善
4f78463 feat: /my-assets にサブカテゴリフィルター追加(3段階絞り込み)
...(278 コミット)

レポートファイルの一覧

docs/09_reports/
  └── 2026/02/
        ├── 09/  — ブラウザ統合、インタプリタ実装
        ├── 18/  — Azure デプロイ、サーバー設定
        ├── 19/  — セキュリティ監査、タイムライン仕様
        ├── 20/  — 3カラムレイアウト、State ルール
        ├── 21/  — バトルシステム仕様
        ├── 23/  — アセット管理仕様
        └── 24/  — OSS 準備、Zenn 記事ネタ

レポートは 68 ファイル以上あり、各レポートに開発の背景・判断・結果が記録されています。

ソースコードの構成

apps/editor/     — エディタ(React + Vite)
apps/hono/       — API(Hono)
apps/next/       — 認証・管理(Next.js)
packages/core/   — 共有ロジック
packages/web/    — PixiJS エンジン
packages/compiler/    — KSC コンパイラ
packages/interpreter/ — KSC インタプリタ

Step 2: パターン分類

278 コミットとレポートの内容を分析し、以下の 7 カテゴリに分類しました。

パターン 定義
A: 実装レポート 「何を・どう作ったか」の記録 インタプリタ 7 フェーズ実装
B: 設計解説 「なぜそう設計したか」の説明 IEngineAPI の抽象化設計
C: Claude Code 協働 AI との開発方法論 CLAUDE.md の設計、スキル定義
D: 実践ログ 1 セッションの開発ログ モバイル UX 改善の実践
E: OSS ドキュメント OSS 公開のドキュメント戦略 30 ファイルのドキュメント整備
F: Monorepo 運用 monorepo の運用ノウハウ 4 サービスのデプロイ自動化
G: メタ 記事ネタ抽出自体の解説 この記事

カテゴリ設計の意図

A(実装)と B(設計)を分けたのは、読者のニーズが異なるためです。

  • A を読む人: 「どう実装するのか」を知りたい。コードを見たい
  • B を読む人: 「なぜその設計にしたのか」を知りたい。トレードオフを理解したい

同じ機能でも、A と B で 2 本の記事が書ける場合があります。例えば「インタプリタ」なら:

  • A-01: .ksc インタプリタを TypeScript で 7 フェーズに分けて実装した全記録
  • B-04: インタプリタのパイプライン設計 — テキスト→行分類→パース→評価の 4 段階

Step 3: ネタ一覧の生成

各記事ネタに対して、以下の 4 項目を出力しました。

出力フォーマット

### A-01: .ksc インタプリタを TypeScript で 7 フェーズに分けて実装した全記録 (12,000字)
Phase 1(Parser・セリフ)→ Phase 7(デバッグ・統合テスト)まで。193 テスト。
ソース: `packages/interpreter/`, `docs/09_reports/2026/02/24/02-interpreter-implementation-report.md`
項目 目的
カテゴリ + 番号 記事の位置づけを明確にする
タイトル (予想文字数) Zenn のタイトルとしてそのまま使える形
概要 (1-2 行) 記事の内容を凝縮
ソースファイル 記事を書く際に参照すべきファイル

ソースファイルの紐付けが重要

各記事ネタに「ソースファイル」を紐付けることで、後から記事を書く際に「何を読めばいいか」が明確になります。

### D-04: 実践ログ — エディタ モバイル UX を Phase 1→3 で改善 (8,000字)
ソース: コミット `c0ebade``62f6f16`

コミットハッシュを記録しておけば、git show c0ebade で変更内容を確認できます。レポートファイルがあれば、当時の判断や背景を読み直せます。

出力結果の全体像

最終的に生成されたネタ一覧の規模は以下の通りです。

パターン 本数 予想合計字数
A: 実装レポート 12 102,000
B: 設計解説 10 73,000
C: Claude Code 協働 8 61,000
D: 実践ログ 7 56,000
E: OSS ドキュメント戦略 3 18,000
F: Monorepo 運用 4 25,000
G: メタ 1 8,000
合計 39 343,000

39 本、予想合計 343,000 字。1 週間の開発からこれだけの記事ネタが出てきたのは、レポートを日々書いていたことが大きいです。

代表的な記事ネタ

実装レポート (A)

### A-01: .ksc インタプリタを TypeScript で 7 フェーズに分けて実装した全記録 (12,000字)
Phase 1(Parser・セリフ)→ Phase 7(デバッグ・統合テスト)まで。193 テスト。

### A-03: ブラウザで動くビジュアルノベルエンジンを PixiJS + TypeScript で作った (10,000字)
WebEngine(IEngineAPI 実装 384 行)。背景・キャラ・セリフ・選択肢が全部ブラウザで動く。

### A-10: KSC コンパイラを Phase 0 から Phase 5 まで一気に実装した (15,000字)
Lexer → Parser → TypeChecker → IR Emitter → VM → WebOpHandler。315 テスト。

設計解説 (B)

### B-01: IEngineAPI — 17 メソッドのプラットフォーム抽象化層を設計した理由 (8,000字)
Web / Console / Switch / Test の 4 実装を同じインターフェースで動かす設計判断。

### B-03: .ksc 言語を設計した — VN 専用スクリプト言語の文法とトレードオフ (10,000字)
セリフブロック `#speaker...#`、choice 構文、def/sub 分離、文字列補間の設計意図。

Claude Code 協働 (C)

### C-01: CLAUDE.md でコンテキストを設計する — AI 出力品質を左右する 1 ファイル (8,000字)
プロジェクト概要、アーキテクチャ、ルール、ポート設定を 1 ファイルに集約。

### C-06: 278 コミット・1 週間・人間のコード 0 行 — Claude Code だけで PF を作った (12,000字)
全コミットが Claude Code 生成。15 万行のビジュアルノベル PF。

Claude Code への指示方法

指示のポイント

  1. 入力を明確にする: 「git log 全件」「docs/09_reports/ の全ファイル」と具体的に指定
  2. 出力フォーマットを指定する: タイトル・概要・ソースファイル・予想文字数
  3. 分類基準を示す: 「実装 / 設計 / 協働 / ログ / OSS / 運用 / メタ」のカテゴリ
  4. 重複チェックを依頼する: 同じ機能が複数カテゴリに出ても OK だが、内容が重複する場合は統合

予想文字数の算出

予想文字数は「コードブロック + 説明文」で算出しています。

  • コードブロック 1 つ: 約 500-1,000 字
  • テーブル 1 つ: 約 200-500 字
  • 説明文 1 段落: 約 200-400 字
  • 典型的な記事構成(はじめに + 5 セクション + まとめ): 約 5,000-8,000 字

Step 4: 一覧の検証

漏れチェック

コミットログとレポートから網羅的にネタを抽出した後、以下を確認します。

  1. 全レポートが少なくとも 1 つの記事ネタに紐付いているか: 紐付いていないレポートがあれば、ネタとして見落としている可能性がある
  2. 大きなコミット(feat: で始まるもの)が記事ネタに含まれているか: 機能追加のコミットは記事ネタになりやすい
  3. ソースファイルが存在するか: 紐付けたファイルが実際に存在するか

重複チェック

重複候補 判断
A-01 (インタプリタ実装) vs B-04 (パイプライン設計) OK: 視点が違う(実装 vs 設計)
D-05 (Azure デプロイログ) vs F-02 (デプロイ自動化) OK: 視点が違う(ログ vs 運用ノウハウ)
A-06 (Asset 実装) vs D-07 (Asset 実践ログ) OK: 粒度が違う(全体 vs 1 セッション)

同じ機能でも、「実装の全記録」と「1 セッションの実践ログ」では内容が大きく異なります。

この手法が使える条件

前提条件

  1. コミットメッセージが一定のフォーマットに従っている: feat:, fix:, docs: などの prefix があると分類しやすい
  2. 開発レポートが存在する: git log だけでは「なぜそうしたか」の情報が不足する
  3. ソースコードがリポジトリにある: 記事を書く際の参照先が必要

効果が高いケース

ケース 理由
開発が一区切りついたタイミング 全体像が見えるため、分類しやすい
50 コミット以上ある ネタの量が十分にある
複数の技術要素がある カテゴリ分けが意味を持つ
レポートが日々書かれている 背景情報が豊富にある

メタとしての価値

この記事自体が G パターン(メタ)です。「記事ネタを抽出した手順を記事にする」というメタ構造を持っています。

### G-01: 278 コミットから 38 本の記事ネタを Claude Code で抽出した手順 (8,000字)
`git log` 全件 + `docs/09_reports/` 68 レポートを Claude Code に読ませてネタ一覧を生成。
パターン分類 → タイトル・概要 → ソースファイル紐付け → 予想文字数の順で作成。
ソース: `docs/09_reports/2026/02/24/05-zenn-article-ideas.md`(この文書自体)

「この文書自体がソースである」という自己参照は、記事ネタ抽出の最終成果物として意味のあるメタデータです。

記事の優先順位付け

39 本全てを書く必要はありません。優先順位を以下の基準で決めました。

高優先度

  • C パターン(Claude Code 協働): 独自性が高く、他の記事と差別化しやすい
  • E パターン(OSS ドキュメント): OSS 公開のタイミングに合わせて出したい
  • F パターン(Monorepo 運用): 再現性が高く、読者の実務に直結する

中優先度

  • A パターン(実装レポート): 量が多い(12 本)ため、選別が必要
  • B パターン(設計解説): 深い内容になるため、1 本あたりの執筆コストが高い

低優先度

  • D パターン(実践ログ): セッションの臨場感は時間が経つと薄れるため、早めに書くか割り切る

まとめ

ステップ 内容 ポイント
情報収集 git log + レポート全件 漏れなく収集
パターン分類 7 カテゴリに分類 視点の違いで分ける
ネタ一覧 タイトル + 概要 + ソース + 文字数 ソースファイルの紐付けが重要
検証 漏れ・重複チェック 同機能の視点違いは OK
優先順位 独自性 + タイミング + 再現性 全部書く必要はない

278 コミットの git log を読んでいるだけでは、記事ネタは見えてきません。「パターン分類」というレンズを通して初めて、同じ機能でも「実装レポート」「設計解説」「実践ログ」という 3 つの記事に分解できることに気づきます。AI は分類と構造化が得意です。人間は「どのレンズで見るか」を決める。その役割分担が、39 本という数を可能にしました。

          Claude Opus 4.6

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?