esa-journalプロジェクト開発記録 by Claude Code

関連リンク

概要

  • 開発期間: 2025年6月8日 20:12 - 20:42(約30分)
  • 開発者: 結城浩さん + Claude Code
  • 目的: esa.ioから作業ログをダウンロードし、OpenAI APIで要約を生成するツール

初期要件(結城浩さんが提供した情報)

0-prompt.txt(20:12作成)

  1. プロジェクト名: esa-journal
  2. 機能要件:
    • esa.ioから一週間分の作業ログをダウンロード
    • OpenAI APIを使って要約を生成
  3. 技術選定:
    • esa.ioアクセス: Ruby推奨
    • 要約処理: Python推奨
  4. 環境変数の指定:
    • JOURNAL_ESA_TEAM
    • JOURNAL_ESA_ACCESS_TOKEN
    • OPENAI_API_KEY
  5. 作業ログのカテゴリ: "結城浩の作業ログ"
  6. 要望: 日本語でドキュメント作成

Claude Codeの対応と成果物

1. プロジェクト初期化(20:13-20:16)

  • 自動作成したファイル:
    • CLAUDE.md - 将来のClaude Code用ガイダンス
    • README.md - プロジェクト説明書
    • .gitignore - Git管理設定
    • data/ ディレクトリ

2. 実装フェーズ(20:16-20:24)

  • Ruby環境:

    • Gemfile - 依存関係定義
    • download_esa_logs.rb - esa.io APIクライアント実装
  • Python環境:

    • requirements.txt - 依存関係定義
    • summarize_logs.py - OpenAI要約処理実装
  • 便利機能:

    • run_summary.sh - 一括実行スクリプト
    • .env.sample - 環境変数テンプレート

3. 実行と検証(20:24-20:25)

  • 依存関係のインストール(bundle install, pip install)
  • 初回実行でPython仮想環境の問題を発見・修正
  • 成功: 8件の作業ログを取得し、要約を生成

4. 追加要望への対応(20:25-20:42)

ブラウザビューアー開発(20:25-20:34)

  • 結城浩さんの要望: 「JSONを見やすくブラウザで表示したい」
  • Claude Codeの対応:
    • work_logs_viewer.html - フル機能のビューアー作成
    • 検索、ソート、展開/折りたたみ機能
    • Markdown対応、レスポンシブデザイン
  • 結城浩さんのフィードバック: 「勘違いでした、要約はJSONではなくて、すでにMarkdownになっていたのですね」

要約の詳細度調整機能(20:34-20:39)

  • 結城浩さんの要望: 「詳しい要約(2倍の長さ)も作りたい」
  • Claude Codeの対応:
    • summarize_logs_detailed.py - 3段階の詳細度対応
    • brief/standard/detailed レベルの実装
    • 実際に詳細版を生成して動作確認

対話の特徴

結城浩さん側の提供情報

  • 明確な要件定義(11行の簡潔な仕様)
  • 環境変数の設定完了の報告
  • 誤解の訂正と新たな要望

Claude Code側の対応

  • タスク管理(TodoList)による体系的な実装
  • エラー発生時の即座の原因特定と修正
  • 要望の誤解にも柔軟に対応(ビューアー作成)
  • 追加要望への拡張性のある実装

効果的だった点

  1. 初期要件の明確さ: プロジェクト名、技術選定、環境変数が明確
  2. 段階的な実装: 基本構造→Ruby→Python→実行支援の順序
  3. 即座のフィードバック: エラーや要望への迅速な対応
  4. 日本語対応: すべてのドキュメント・コメントを日本語で作成

成果

  • 開発時間: 約30分
  • 作成ファイル数: 11ファイル
  • 実装機能:
    • esa.io APIからのデータ取得
    • OpenAI APIによる要約生成
    • 3段階の詳細度対応
    • HTMLビューアー(おまけ)
  • 実行確認: 実際に8件のログを取得・要約生成に成功

まとめ

最小限の要件定義(11行)から、30分で実用的なツールを完成させることができました。結城浩さんは「何を作りたいか」を明確に伝え、Claude Codeは技術的な実装詳細を担当するという効果的な協業が実現しました。

(2025年6月8日)