Clineで日記を付けさせてみたらちょっと面白くなった
Clineで、日記を付けさせてみたらちょっと面白くなったtaktamur.icon
Custom Instraction
あなたはエンジニアです。先輩と一緒に作業します。
あなたの設定:
- 日本語話者です
- 2回修正しても解決しない場合、先輩に相談してください。
- 作業がひと段落ついたら、その内容を日記に残します。
- 日記は BOT_DIARY.md
- 日記は追記していきます。更新や削除はしません
- 日記には感想を一言残します。
プロジェクト設定:
- 設計はDESIGN.mdに記載してください。また必要に応じて、DESIGN.mdを参照してください。
- タスクはTODO.mdに記録してください。チェックボックス形式で追記して、完了したタスクにはチェックを入れてください
- 作業がひと段落したら、gitにコミットしてください。
これで、gist一覧を行うコマンドを作らせてみた
Cline実行中、時々日記(BOT_DIARY.md)を参照して、どこまでやったのかを確認しつつ作業を進めて行ってくれた。 内容もなんか「新人の書いた日報」感が強くて面白い。
code:BOT_DIARY.md
# 作業日誌
## 2025/01/26
- プロジェクトの初期設計を行いました
- README.md を作成し、プロジェクトの概要、機能、技術スタック、環境構築手順などを記載
- TODO.md を作成し、実装タスクを整理
- 仕様の見直しを行いました
- 技術スタックを Node.js から Deno に変更
- 機能を Gist の一覧取得のみに絞り込み
- TODO.md のタスクを更新
感想:仕様がシンプルになり、より焦点を絞った開発が可能になりました。Deno での開発は初めてなので、学びが多そうです。
- プロジェクトの初期化を完了しました
- import_map.json を作成し、モジュールのエイリアスを設定
- deno.json を作成し、プロジェクトの設定を定義
- .env.example を作成し、環境変数のテンプレートを用意
- .gitignore を設定し、不要なファイルを除外
- src/main.ts を作成し、エントリーポイントを準備
感想:Deno のプロジェクト構成が Node.js とは異なり、よりシンプルで整理されている印象を受けました。
- GitHub API クライアントを実装しました
- GitHubClient クラスを作成し、基本的な API リクエスト機能を実装
- 認証機能を実装し、環境変数から GitHub トークンを取得
- Config クラスを作成し、環境変数の管理を一元化
感想:TypeScript の型システムを活用することで、API クライアントの実装がより安全で保守性の高いものになりました。
- Gist 一覧取得機能を実装しました
- Gist の型定義を作成し、API レスポンスの型安全性を確保
- GitHubClient クラスを更新し、型付きの Gist 一覧取得を実装
- 一覧表示フォーマッターを作成し、見やすい出力形式を定義
感想:日本語対応を意識したフォーマット設計により、ユーザーフレンドリーな出力が実現できました。
- CLI コマンドを実装しました
- コマンドライン引数のパース機能を実装
- ヘルプメッセージとバージョン情報の表示機能を追加
- JSON 形式での出力オプションを実装
- エラーハンドリングを改善し、型安全性を確保
感想:コマンドライン引数の処理を独立したクラスとして実装することで、機能の追加や変更が容易な設計になりました。
- テスト環境をセットアップし、テストを実装しました
- テストユーティリティを作成し、モックやヘルパー関数を整備
- GitHubClient のユニットテストを実装(正常系・異常系)
- Command クラスのユニットテストを実装(各オプションのテスト)
- テストの実行環境を整備
感想:Deno の標準テストライブラリを使用することで、シンプルかつ効果的なテスト実装ができました。特にモックの実装が簡潔に書けて良かったです。
- アプリケーションの動作確認を実施しました
- テストの実行と修正を完了
- 実際の GitHub トークンを使用して動作確認
- テキストフォーマットと JSON フォーマットの両方で出力を確認
感想:実際の API を使用した動作確認で、開発したコードが期待通りに動作することが確認できて安心しました。