Hello World
ここ最近AIコーディングエージェントを使う機会が増えてきたので、アウトプットと勉強目的も兼ねてブログを作成することにした。
動機
理由は3つ。
1. AIコーディングエージェントとの協働開発
一つ目は、上述の通りAIコーディングエージェントを駆使しアウトプットとして公開したかったからである。 今回はClaude Code(Anthropic社のAIコーディングアシスタント)を利用した。
2. アイデアのストック
二つ目は、話のネタをストックするためである。
「こんなのはどうだろう、面白そうだな。便利そうだな。」という考えが浮かんでもメモに残さず忘れたり、残しても溜まる一方で何もしないということを繰り返してきたので、今度こそ有効活用しようという取り組みである。
これまでの失敗:
- スマホや紙に残したメモ
- Slackの個人チャンネル
- Notionのデータベースなど
3. アウトプット能力の向上
三つ目は、自身のアウトプット能力の向上である。
AI による文章生成がより便利になる中で、むしろ「自分の言葉で書く」ことの価値が高まっていると前々から感じていた。 今のうちから自分の考えを自分の言葉で発信する習慣を身につけておくことは、AIと共存する時代において重要なスキルになると考えている。
このブログの技術スタック
以下の技術スタックで構築されている。
| 技術 | 用途 | 選定理由 |
|---|---|---|
| Astro | 静的サイトジェネレーター | 高速で軽量、開発体験が良い |
| Tailwind CSS | CSSフレームワーク | ユーティリティファーストで効率的 |
| Biome | Linter/Formatter | 高速で設定がシンプル |
| Bun | JavaScript Runtime | Node.jsより高速 |
| GitHub Pages | ホスティング | 無料で簡単にデプロイ可能 |
特筆すべき点は2点。
・Node.jsを使わずBunで開発環境を統一した。
パッケージのインストールやビルドが高速で、開発体験が向上した。
・開発環境でセルフCIスクリプトを作成し実行できるようにした。
これは他のリポジトリでClaude CodeやGemini CLIで色々と遊んでいた結果、GitHub Actionsの無料枠を超過したためである。。。
開発の過程でClaude Codeをどのように利用したか
最初は「GitHub Pagesでブログを作りたい」という漠然とした要望から、以下のような過程を経て完成に至った。
1. 初期セットアップ
# Astroのテンプレートから開始
bun create astro@latest2. ローカルでのCI/CDの実行環境の整備
途中でGitHub Actionsの無料枠を超過したため、ローカル環境でCIを実行する仕組みを構築してもらった。
# 並列実行でタスクを高速化
bun run ci- typecheck、lint、format、testを並列実行
- タイムアウト設定時間を短くし、Claude Codeへのフィードバックを効率化した
- 視覚的な実行結果表示(✓/✗、実行時間、エラー詳細)
--skipや--onlyオプションで柔軟な実行制御
実際の実行結果はこのような見た目:
3. 不要な機能の削除とシンプル化
開発を進める中で、以下の機能を削除してシンプルにした。
- PWA機能(Service Worker、オフライン対応)
- 不要なパッケージ(sharp、marked)
- 複雑なE2Eテスト(シンプルなページ遷移確認のみに)
これにより、ビルドが高速化し、メンテナンスが容易になった。 (今後気が向いたら機能追加するかも知れない。)
4. ブログ名の決定
Claude Codeが提案した候補から「Code & Living」を選択した。
- Tech Craft Lab
- Simple Dev Notes
- Build & Learn
- Dev Minimalist
- Code & Living ✅
技術と日常を繋ぐというネーミングから採用。また、調べた限り商標として名前が使用されていなかったので。(どうでも良い)
5. 文章校正 with Google Gemini
詳細は割愛。
MCP(Model Context Protocol)の活用
このブログの開発では「Playwright MCP」を活用した。
Playwright MCPのインストールと利用例は以下の通り。
# Playwright MCPのインストール
claude mcp add playwright npx @playwright/mcp@latest実際の動作確認では、以下のようなコマンドをClaude Code内で実行:
- ページナビゲーション:
browser_navigate - スクリーンショット撮影:
browser_take_screenshot - ブラウザサイズ変更:
browser_resize(レスポンシブテスト) - 要素のクリック:
browser_click
自分の手で動作確認することなくClaude Codeに任せることができた。
https://zenn.dev/sesere/articles/4c0b55102dcc84 の記事を参考にさせていただきました。
Claude Code上でのGitHub CLIの実行
GitHub CLI(gh)との連携により、通常のgitコマンドでは実現できない以下のGitHub特有の操作が可能だった。
- リポジトリの作成:
gh repo createでGitHubリポジトリを作成 - Pull Requestの作成:
gh pr createでPRを作成 - GitHub Actionsの状態確認:
gh run listでワークフローの実行状態を確認
また本ブログ開発では利用しなかったが、別リポジトリでは以下の操作も行なっていたので備忘録として記載しておく。
- Issueの管理:
gh issueでIssueの作成や更新、削除 - PRレビューコメントへの対応: Gemini Code Reviewからの指摘の修正・返信やレビューコメントのステータスの一括更新(resolve/outdatedなど)。
- リリースの作成:
gh release createでタグ付けとリリースノートを同時に作成
これらの機能により、ブラウザでGitHubを開くことなく、ほぼすべての操作をCLI上で完結できた。
最後に
AIコーディングエージェントを使いながら、GitHub CLIや最近のFEトレンドなどを知れたのは大きな学びだった。
※自分はサーバーサイドエンジニアのためフロントエンド領域にはそれほど明るくない
Hello, World! から始まるこのブログが、誰かの参考になれば幸いである。