コンテンツにスキップ
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リリースノート整備