Zenn Dev Unsoluble Sugar Articles Beaac7bbf9ee7a
「あとで読む(読まない)」を仕組みで解決する — AI駆動の個人開発記
- URL: https://zenn.dev/unsoluble_sugar/articles/beaac7bbf9ee7a
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: Raindrop.ioに溜まる「あとで読む記事」を読まないまま埋もれさせる問題を、ChatGPTで仕様書を策定しClaude Codeで実装するという仕様駆動開発で解消した個人ツール開発記録。ツールはRaindrop.ioのAPIで記事を取得し本文抽出してAI要約し、high/medium/lowの優先度付きHTMLダッシュボードとして出力するもので、Python + JSON永続化 + Jinja2 + GitHub Pages構成。CLAUDE.mdをエントリポイントとして最小限に保ち、詳細をSkill・Rules・.steering/の4層に分離するコンテキスト設計と、コード変更後に関連仕様書の乖離を検出する/update-specsカスタムスキルが特徴的だった。コードの実装のみならず仕様ドキュメント整備・Issue/PR作成・セキュリティ監査・Git履歴書き換え・リリースノート整備まで全工程をClaude Codeで完結した。
詳細
ツールの概要(Tsuyu-mi)
- 目的: Raindrop.ioの「あとで読む」記事を一次判定できる状態にする
- 優先度: high(今読むべき)/ medium(後回し)/ low(捨ててよい)の3段階をAIが判定
- 出力: HTML一覧ダッシュボード
- スコープ外: 動画コンテンツ・複数コレクション横断・DB・Web UIからの編集・Playwright等
技術スタック
- Python 3.11+ / httpx / pydantic / trafilatura / readability-lxml / jinja2 / click / rich
- JSON永続化(記事単位)、HTML主出力
- GitHub Actions + GitHub Pages で自動運用
仕様策定プロセス
- ChatGPTで仕様書の骨格を整理 → Claude Codeに実装依頼
- 実装前に8つの仕様書をdocs/specs/に配置する仕様駆動開発アプローチ
CLAUDE.md 4層設計
- CLAUDE.md: エントリポイントとして最小限(プロジェクト概要・コマンド・ドキュメント所在のみ)
- .claude/rules/: 詳細ルール(自動読み込み)
- .steering/: アーキテクチャ・設計方針
- docs/specs/: 機能仕様書8ファイル
/update-specs カスタムスキル
- コード変更後に
git diff --name-only HEADで変更ファイルを特定 - 関連する仕様書(ファイル→仕様書の対応表で特定)を読み込み、乖離を検出
- リネーム・削除があった場合、全ドキュメント内の旧パス残留を検出
- README.md・CLAUDE.md・.steering/の更新要否も確認
Claude Codeが担当した作業範囲
- 仕様ドキュメント整備・Skill/Rules作成・技術選定相談
- Issue起票・ブランチ作成・PR説明文記述
- サービス命名とリポジトリリネーム一括反映
- README(英語版・日本語版)作成・バッジ追加
- セキュリティ監査・GitHub Ruleset設定(ブランチ保護)
- 機密データのGit履歴完全削除
- v1.0.0リリースノート整備