Claude Codeで一行もコーディングせずに作った、週次技術トレンド分析システム「SkillRadar」

## はじめに

技術の進歩が加速する中、エンジニアとして「今何を学ぶべきか」「どの技術が注目されているのか」を把握するのは簡単ではありません。毎日大量の技術記事やニュースが流れてくる中で、自分にとって本当に価値のある情報を見つけるのは時間のかかる作業です。

そんな課題を解決するために、「SkillRadar スキル・レーダー」という週次技術トレンド分析システムを構築しました。最も興味深いのは、このシステムを**Claude Code を使って一行もコーディングすることなく**完成させたことです。今回はその開発プロセスと、システムの特徴についてご紹介したいと思います。

### SkillRadar メールのサンプル
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103139/3e30269e-a1cd-4204-af86-248c6fb437b7.png)

分析したニュース記事の数、トピック、「必ず読むべきニュース（Must-Read articles)」などの情報を直観的に分かりやすいようにレイアウトしています）

## Claude Codeを使ったバイブコーディング

Claude Codeは Anthropic が提供する開発支援ツールで、自然言語での指示だけで複雑なシステムを構築できます。実は SkillRadar は私がClaude Codeで作った2作目のプロジェクトなのですが、その威力には毎回驚かされます。

従来の開発では、要件定義から設計、実装、テスト、デプロイまで、それぞれの段階で詳細な技術的知識が必要でした。しかし Claude Code では、「何を作りたいか」「どんな機能が欲しいか」を自然な日本語で説明するだけで、プロダクションレベルのシステムが完成します。

## SkillRadar（スキル・レーダー）

SkillRadar の開発は、シンプルな課題から始まりました。「毎週、自分の興味やキャリア目標に関連する技術トレンドを効率的に把握したい」という願いです。

一般的なニュースアグリゲーターやGoogle Alertsとは異なり、SkillRadar は私の技術スキル（C#、Azure、機械学習など）や興味分野（AI、クラウドアーキテクチャ、DevOpsなど）を理解し、それに基づいて情報をキュレーションしてくれます。単純にキーワードマッチングするのではなく、OpenAI のGPTモデルを使って記事の内容を理解し、私にとっての関連度を判断します。

## システムアーキテクチャ

SkillRadar のアーキテクチャは思っていた以上に本格的なものになりました。Claude Code が設計したシステムは、以下のような複数のコンポーネントから構成されています。


概念図（Claude Codeが生成）
``` mermaid
graph TB
    subgraph "Data Sources"
        HN["🗞️ Hacker News<br/>API"]
        RD["🔴 Reddit<br/>API"]
        NA["📰 NewsAPI"]
    end

    subgraph "SkillRadar Core"
        NC["📚 NewsCollection<br/>Service"]
        TA["🤖 TrendAnalysis<br/>Service (OpenAI)"]
        RG["📊 ReportGeneration<br/>Service"]
        EN["📧 EmailNotification<br/>Service"]
        TS["🌐 Translation<br/>Service (OpenAI)"]
    end

    subgraph "Azure Infrastructure"
        SA["💾 Storage Account<br/>(Articles & Reports)"]
        KV["🔐 Key Vault<br/>(API Keys)"]
        ACS["📨 Communication Services<br/>(Email)"]
        CI["🐳 Container Instances<br/>(Execution)"]
        LA["⏰ Logic Apps<br/>(Scheduling)"]
    end

    subgraph "Output"
        CO["💻 Console Report"]
        FM["📄 File Reports<br/>(MD, HTML, JSON)"]
        EM["📧 Email Report<br/>(with translations)"]
    end

    HN --> NC
    RD --> NC
    NA --> NC
    
    NC --> TA
    TA --> RG
    RG --> EN
    TA --> TS
    TS --> EN
    
    KV --> NC
    KV --> TA
    KV --> EN
    KV --> TS
    
    SA --> NC
    SA --> RG
    ACS --> EN
    
    RG --> CO
    RG --> FM
    EN --> EM
    
    LA --> CI
    CI --> NC

    style HN fill:#ff9999
    style RD fill:#ff6666
    style NA fill:#ff9999
    style TA fill:#99ccff
    style TS fill:#99ccff
    style EN fill:#99ff99
    style ACS fill:#99ff99
    style EM fill:#99ff99
```


まず、データ収集層では Hacker News API、Reddit API、NewsAPI という3つの異なるソースから週に300近くの記事を収集します。これらの記事は単純に収集されるだけでなく、重複除去や品質フィルタリングも行われます。

``` json
"DataSources": {
    "HackerNews": { 
      "Enabled": true
    },
    "Reddit": { 
      "Enabled": true, 
      "Subreddits": ["programming", "MachineLearning", "dotnet", "azure", "devops", "softwarearchitecture", "artificial", "ChatGPT", "OpenAI", "LocalLLaMA", "singularity"]
    },
    "NewsAPI": { 
      "Enabled": true, 
      "Categories": ["technology"]
    }
  }
```

次に、AI分析層では OpenAI のGPTモデルを使って各記事の内容を分析し、技術トレンドの抽出や私のプロファイルとの関連度計算を行います。興味深いのは、単に「AI」や「クラウド」といった一般的なキーワードではなく、「AI Agents」「Vector Database」「Platform Engineering」といった具体的で戦略的なトレンドを検出することです。

``` json
"UserProfile": {
    "Skills": ["C#", ".NET", "Azure", "Cloud Architecture", "Machine Learning", "DevOps", "System Design"],
    "Interests": ["AI/ML", "LLM", "Generative AI", "Agentic AI", "AI Agents", "Cloud Engineering", "Software Architecture", "Platform Engineering", "Distributed Systems", "Backend Development"],
    "CareerStage": "Senior",
    "LearningGoals": ["Advanced System Design", "AI Engineering", "Cloud-Native Architecture", "Leadership", "Platform Engineering"]
  }
```

最後に、レポート生成層では分析結果を読みやすいHTMLメールとして整形し、Azure Communication Services を通じて毎週金曜日の朝に配信されます。メールには視覚的なトレンドダッシュボード、関連度スコア付きの必読記事リスト、そして具体的な学習推奨事項が含まれています。

## クラウドネイティブな実装

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103139/0ebb13f6-b12d-4c5f-a2e8-959543249a5f.png)


システム全体は Microsoft Azure 上でクラウドネイティブに構築されています。Infrastructure as Code として Bicep テンプレートが用意され、GitHub Actions を通じて自動デプロイされます。

Azure Storage Account では記事データの永続化を行い、Azure Key Vault では API キーなどの機密情報を安全に管理します。実際の分析処理は Azure Container Instances 上で実行され、スケジューリングには Azure Logic Apps を使用しています。

特に感心したのは、Claude Code がセキュリティベストプラクティスを自動的に組み込んでくれたことです。API キーはすべて環境変数や Key Vault で管理され、GitHub リポジトリには機密情報が一切含まれていません。

## 国際化対応の追加

開発の途中で、日本語での理解を深めたいと思い、多言語対応機能を追加しました。これも Claude Code に「日本語翻訳機能を追加したい」と伝えるだけで実現されました。

現在のシステムでは、英語の記事タイトルと要約に加えて、日本語の翻訳も並記されます。これにより、英語の技術文書に慣れていない同僚や、より深い理解を求める場面で非常に重宝しています。翻訳は単純な機械翻訳ではなく、技術的な文脈を理解した自然な日本語になっているのが印象的です。

``` json
  "EmailSettings": {
    "Enabled": true,
    "SendOnSuccess": true,
    "SendOnError": true,
    "SecondaryLanguage": "JA",
    "Note": "Email addresses are configured via environment variables: EMAIL_SENDER_ADDRESS and EMAIL_RECIPIENT_ADDRESS. SecondaryLanguage options: None, JA, ES, FR, DE, etc."
  }
```

## 開発体験の変化

Claude Code を使った開発で最も驚いたのは、従来の「コードを書く」という作業から「システムを設計し、要件を伝える」という作業への変化です。私の役割は技術的な実装ではなく、「どんな価値を提供したいか」「ユーザー体験をどう設計するか」といったより高次元の意思決定に集中できました。

また、通常であれば数週間から数ヶ月かかりそうな複雑なシステムを、一日で完成させることができました。Bicep テンプレート、GitHub Actions ワークフロー、C# アプリケーション、HTML メールテンプレート、そして包括的なドキュメントまで、すべてが一貫性を持って生成されました。

## 今後の展望

現在の SkillRadar は私個人の使用に最適化されていますが、設定ファイルを変更するだけで他のエンジニアも利用できるように設計されています。実際、GitHub でオープンソースとして公開しており、興味のある方は自由に fork して自分用にカスタマイズできます。

将来的には、トレンドの変化を時系列で追跡する機能や、チーム全体での知識共有機能、モバイルアプリでの閲覧機能なども追加したいと考えています。これらの機能も、おそらく Claude Code に自然言語で依頼するだけで実現できるでしょう。

## まとめ

SkillRadar の開発を通じて、AI支援による開発の可能性を実感しました。コーディングスキルがボトルネックではなくなった今、重要なのは「何を作るか」「どんな価値を提供するか」というビジョンとアイデアです。

特に、単純な情報収集ツールではなく、個人の学習目標とキャリア戦略に合わせてインテリジェントにキュレーションしてくれるシステムを作れたことは、とても満足しています。毎週金曜日の朝に届く美しいHTMLレポートを見るたびに、技術の進歩とその活用方法について新しいインスピレーションを得ています。

Claude Code のような AI 開発支援ツールの登場により、エンジニアの働き方は確実に変化しています。技術的な実装に時間を取られることなく、より創造的で戦略的な問題解決に集中できる時代がやってきました。これからも、このような新しい開発体験を積極的に活用していきたいと思います。

---

**SkillRadar リポジトリ**: https://github.com/yoshiwatanabe/skill-radar