Agent Skill
2/7/2026

fix-reviews

PRの未解決レビュー指摘を確認し、妥当な指摘には修正対応する

B
becky3
1GitHub Stars
1Views
npx skills add becky3/ai-assistant

SKILL.md

Namefix-reviews
DescriptionPRの未解決レビュー指摘を確認し、妥当な指摘には修正対応する

AI Assistant

Slack上で動作するAI学習支援アシスタント。 RSS記事の自動収集・要約配信、チャットでの質問応答、ユーザーの興味に基づく学習トピック提案を行う。

コスト最適化のため、タスクの性質に応じてローカルLLM(LM Studio)とオンラインLLM(OpenAI / Anthropic)を使い分ける。

主な機能

  • チャット応答 — @メンションで質問に回答(オンラインLLM)
  • 情報収集・配信 — RSSフィードから記事を収集・要約し、毎朝Slackに自動配信(要約はローカルLLM)
  • ユーザープロファイリング — 会話から興味・スキル・目標を自動抽出(ローカルLLM)
  • 学習トピック提案 — プロファイルと最新記事をもとにおすすめトピックを提案(オンラインLLM)
  • 特定チャンネル自動返信 — 指定したチャンネルではメンションなしで全メッセージに自動応答
  • 外部ツール連携(MCP) — MCPプロトコルで外部ツールを動的に呼び出し(天気予報サンプル付属)
  • RAGナレッジ機能 — Webページを知識ベースに取り込み、質問に関連する情報を自動検索して回答に活用

動作環境

  • OS: Windows 11(主要開発・運用環境)
  • ランタイム: Python 3.11+
  • パッケージ管理: uv

技術スタック

Python 3.11+ / uv / slack-bolt / OpenAI SDK / Anthropic SDK / SQLite + SQLAlchemy / feedparser / MCP SDK / ChromaDB / BeautifulSoup4

セットアップ

uv sync
cp .env.example .env  # 各種トークン・APIキーを設定

主な環境変数

変数名説明
SLACK_BOT_TOKENSlack Bot トークン
SLACK_APP_TOKENSlack App トークン(Socket Mode用)
SLACK_NEWS_CHANNEL_IDフィード配信先チャンネルID
SLACK_AUTO_REPLY_CHANNELS自動返信を有効にするチャンネルID(カンマ区切り)
CHAT_LLM_PROVIDERチャット応答のLLMプロバイダー(local / online
MCP_ENABLEDMCP機能の有効/無効(true / false、デフォルト: false
RAG_ENABLEDRAG機能の有効/無効(true / false、デフォルト: false

詳細は .env.example を参照してください。

起動

uv run python -m src.main

RAG評価CLI

RAG検索精度の評価パイプラインを提供します。

# テスト用ChromaDBを初期化
uv run python -m src.rag.cli init-test-db \
  --persist-dir .tmp/test_chroma_db \
  --fixture tests/fixtures/rag_test_documents.json

# RAG検索精度を評価
uv run python -m src.rag.cli evaluate \
  --persist-dir .tmp/test_chroma_db \
  --output-dir .tmp/rag-evaluation

詳細は RAGナレッジ機能仕様 を参照してください。

プロジェクト構造

src/
  main.py           # エントリーポイント
  config/settings.py # pydantic-settings による環境変数管理
  db/models.py       # SQLAlchemy モデル (feeds, articles, user_profiles, conversations)
  db/session.py      # DB接続・セッション管理
  slack/app.py       # Slack Bolt AsyncApp 初期化
  slack/handlers.py  # イベントハンドラ
  llm/base.py        # LLMProvider ABC (全プロバイダーの共通インターフェース)
  llm/openai_provider.py
  llm/anthropic_provider.py
  llm/lmstudio_provider.py  # OpenAI SDK で base_url を localhost:1234 に向ける
  llm/factory.py     # プロバイダー生成ファクトリ
  embedding/         # Embeddingプロバイダー(LM Studio / OpenAI)
  rag/               # RAGインフラ(チャンキング、ChromaDBベクトルストア、評価CLI)
  process_guard.py   # Bot重複起動防止
  mcp_bridge/
    __init__.py
    client_manager.py  # MCPサーバー接続管理
  services/chat.py           # チャット応答 (オンラインLLM)
  services/feed_collector.py # RSS収集
  services/summarizer.py     # 記事要約 (ローカルLLM)
  services/user_profiler.py  # 会話からユーザー情報抽出 (ローカルLLM)
  services/topic_recommender.py # 学習トピック提案 (オンラインLLM)
  services/web_crawler.py     # Webクローラー(RAG用)
  services/rag_knowledge.py   # RAGナレッジサービス
  services/ogp_extractor.py   # OGPメタデータ抽出
  services/safe_browsing.py   # Google Safe Browsing API
  services/thread_history.py  # Slackスレッド履歴取得
  scheduler/jobs.py  # 配信ジョブ・フォーマット
mcp-servers/                 # MCPサーバー群(将来リポジトリ分離対象)
  weather/
    server.py          # 天気予報MCPサーバー(気象庁API)
config/
  assistant.yaml     # アシスタントの名前・性格・口調 (システムプロンプトに反映)
  mcp_servers.json   # MCPサーバー接続設定
docs/
  specs/             # 機能仕様書 (実装の根拠)
  retro/             # レトロスペクティブ記録
.claude/
  settings.json      # Claude Code 設定(hooks、サブエージェント定義など)
  agents/            # サブエージェント定義ファイル
  scripts/           # hooks用スクリプト

開発ガイドライン

開発を始める前に必ず CLAUDE.md を読んでください。

CLAUDE.mdには以下の重要な情報が含まれています:

  • 仕様駆動開発のルール
  • コーディング規約
  • Git運用フロー
  • LLM使い分けルール
  • サブエージェントの使用方法

開発フロー概要(git-flow)

本プロジェクトは git-flow ベースのブランチ戦略を採用。詳細は git-flow仕様 を参照。

  1. Issue・Milestoneの確認 (gh milestone list, gh issue list)
  2. 対象Issueの仕様書を読む (docs/specs/)
  3. develop からブランチ作成 (feature/f{N}-{機能名}-#{Issue番号})
  4. 実装・テスト
  5. コミット (feat(f{N}): 説明 (#{Issue番号}))
  6. develop に向けてPR作成 (gh pr create --base develop)

テストと lint

# テスト実行
uv run pytest

# lint
uv run ruff check .

# 型チェック
uv run mypy src

ドキュメント

機能仕様

Claude Code 関連

Skills Info
Original Name:fix-reviewsAuthor:becky3