はじめに
「AIにコードを書かせる」のはもう当たり前になってきましたが、今回試したのは少し違うアプローチです。コードを書かせる前に、AIと一緒に仕様を固めるというものです。
Claude Code を使って RSS フィードの自動翻訳・要約システムを作りながら、「ブレインストーミング → 設計ドキュメント → 実装計画 → サブエージェント実装」という一連のサイクルを体験しました。
今回の一番の成果物は、実はシステム本体ではありません。このサイクルを自動的に推し進めてくれる CLAUDE.md が育ったことです。
何を作ったか
rss-feed-translator という、海外 IT ニュースを毎日自動で日本語に翻訳・要約して RSS フィードとして配信するシステムです。
- 対象フィード: Ars Technica・Hacker News・DEV Community・InfoQ
- 翻訳: Google Translate REST API(1日15,000文字上限)
- AI 要約: Claude Haiku(Amazon Bedrock)
- インフラ: GitHub Actions + GitHub Pages だけ。サーバーなし
フィードリーダー(Feedly など)で購読すると、英語記事が日本語タイトル+AI要約つきで流れてくる、というものです。
開発の流れ
1. ブレインストーミング
まず AI と対話しながら要件を固めます。AI が一問一答で質問してくる感じです。
Q: 翻訳するのはタイトルだけ?本文も? Q: コスト上限はどう管理する? Q: 差分更新(キャッシュ)は必要?
面白いのが、設計が承認されるまで AI がコードを書かないという制約です。「とりあえず実装してみよう」という衝動を AI 側で抑えてくれます。
2. 設計ドキュメント(spec)
ブレインストーミングの結果を Markdown に出力します。アーキテクチャ図(Mermaid)、関数シグネチャ、エラーハンドリング方針、テスト方針まで全部入った 44KB のドキュメントができました。
AI のコンテキストがリセットされても、このドキュメントを読めば「なぜこうなっているか」がすぐわかります。
3. 実装計画(plan)
設計ドキュメントからタスク単位の実装計画を生成します。各タスクには実際のテストコードとコマンドが入っていて、プレースホルダー(「TODO: 実装する」みたいなやつ)は禁止です。
4. サブエージェント実装
各タスクに対して:
- 実装エージェントを白紙の状態で起動
- 実装完了後、レビューエージェントが仕様準拠+コード品質を審査
- 問題があれば修正エージェントを起動して再レビュー
- 全タスク完了後、最終レビューエージェントがブランチ全体を審査
このフローで今回自動検出されたのが:
javascript:スキーム URL によるXSS脆弱性(URL サニタイズ漏れ)- テストのアサーションが不完全な箇所
- GitHub Actions の
git add --ignore-unmatch誤用(これはgit rm専用オプションでした)
機能追加もすべて同じサイクルで
初回リリース後も、機能追加のたびに同じサイクルを回しました。
DailyBudget(翻訳コスト管理)
Google Translate は従量課金なので、1日あたりの翻訳文字数に上限を設ける DailyBudget クラスを追加しました。これも独立した「ブレスト → spec → plan → 実装」サイクルで進め、設計ドキュメント(docs/superpowers/specs/2026-06-30-daily-char-budget.md)が残っています。
途中で Google Cloud SDK から REST API 直接呼び出しに切り替えるという判断もありましたが、その理由(依存を減らすため)も設計ドキュメントに記録されています。
InfoQ フィードの追加
当初3フィードだったところに InfoQ を追加しました。フィード追加は設定ファイルの変更だけで済むように設計されていたので、ここはコード変更なしで完了しました。
翻訳・要約レビューレポート
「翻訳・要約の品質を目視確認したい」という気持ちが出てきたので、HTML レビューレポート機能を追加しました。GitHub Pages に自動公開され、最新10件の各記事について「原文タイトル・翻訳タイトル・原文説明・翻訳説明・AI要約」を並べて確認できます。
これも同じサイクルで進め、実装計画(docs/superpowers/plans/2026-07-01-translation-review-report.md)が残っています。
今回の最大の成果物:CLAUDE.md
システムが動くようになって気づいたのですが、一番価値があったのはコードではなく CLAUDE.md の中身が育ったことでした。
CLAUDE.md の土台
CLAUDE.md は Claude Code がプロジェクトを開くたびに読み込む、いわば「AIへの指示書」です。
今回のベースにしたのは、西見 公宏さんの 『実践 Claude Code 入門―現場で活用するためのAIコーディングの思考法』 で紹介されている CLAUDE.md の構成です。そこに Superpowers(Claude Code 向けのスキルプラグイン集)を組み合わせることで、仕様駆動開発のフローを AI が自律的に推し進めてくれる構成になっています。
📖 実践 Claude Code 入門 (Amazon) — 西見 公宏 著
- 『実践 Claude Code 入門』 → 開発プロセス・ドキュメント管理・チェックリストの骨格
- Superpowers →
brainstorming/writing-plans/subagent-driven-developmentなどのスキルを呼び出す仕組み
実際に書かれているルールの例
## 開発プロセス 1. 設計 — brainstorming で設計し docs/superpowers/specs/ に保存 2. 実装計画 — writing-plans で計画を作成し docs/superpowers/plans/ に保存 3. 実装 — subagent-driven-development でタスクを順に実装 4. 品質チェック — pytest / ruff / mypy
## ドキュメント記載ルール
コード変更と同じコミットで設計ドキュメント・用語定義・READMEを更新する。後回し禁止。
このチェックリストのおかげで「実装したけどドキュメントが古いまま」という状態が自然と防止されます。
CLAUDE.md 自体が何度も更新された
面白いのは、CLAUDE.md 自体もプロジェクトを通じてどんどん更新されたことです。コミット履歴を見ると、こんな変更が積み重なっています。
docs(claude): require doc updates in same commit as code changes docs(claude): add guideline for grouping table of contents docs(claude): add guideline for grouped section headings in design docs docs(claude): add checklist items for doc grouping and section hierarchy docs(claude): add tech stack, dev tools, and constraints to spec checklist docs(claude): add styling conventions and individual checklist items docs(claude): restructure and clean up CLAUDE.md docs(claude): update README checklist to reflect FastAPI-style conventions
「ドキュメントの目次はグループ見出しでまとめる」「コード変更と同じコミットでドキュメントも更新する(後回し禁止)」「README は FastAPI スタイルで書く」……こうしたルールが、実際に困った瞬間に一つずつ追記されています。
README もこうして育った
README も開発を通じて段階的に洗練されました。
- 最初はシンプルなリンク集
- CI/CD バッジと Python バージョンバッジを追加
- SVG ロゴを作成して中央揃えで配置
- FastAPI スタイル(ロゴ → キャッチコピー → バッジ → 特長一覧)に全面刷新
各段階の判断が CLAUDE.md に蓄積されているので、次のプロジェクトでも同じ品質の README を最初から作れます。
CLAUDE.md に書くときの観点
「今後誰かが読むかもしれない」ではなく、「この AI が次のセッションで同じ判断を再現できるか」 という観点で書きます。それが自然と、実用的で具体的な記述になります。
まとめ
AI 仕様駆動開発を体験してみて思ったのは、「AI が変えたのはドキュメントを書くコスト」だということです。
仕様が正確なら AI は正確に実装して正確にレビューします。でも以前は「個人プロジェクトにそこまで丁寧な spec は書かないよ」となりがちでした。AI がその作成コストを下げたことで、仕様駆動開発の恩恵を個人プロジェクトでも受けられるようになりました。
土台として『実践 Claude Code 入門』の CLAUDE.md と Superpowers のスキルがあったことで、ゼロから試行錯誤しなくてよかったのも大きかったです。この組み合わせはかなりおすすめです。
そして CLAUDE.md が育つほど、次のプロジェクトでも同じ品質のフローが再現できます。コードは使い捨てになりますが、CLAUDE.md に蓄積されたルールは資産として残ります。開発のたびに AI との協働プロトコルが洗練されていく感覚、これが今回一番おもしろかったことです。
今後
今回、作成したCLAUDE.md がどれくらい機能するか検証し、ひきつづき、CLAUDE.md を育てていきたいです。
Superpowersと競合するgithubのSpec Kitも評価したい。
今回、Superpowersが生成した仕様書を正式な成果物として残すことを意識してやりましたが、そういった点では、Spec Kitの方が向いているようです。ちなみに、Superpowersが生成したドキュメントがサブエージェントの関係で分割できず、長大な内容なってしまったことが残念に感じています。
リポジトリ: rss-feed-translator
参考: - 📖 実践 Claude Code 入門 — 西見 公宏 著(技術評論社) - 🐙 Superpowers for Claude Code

