Agent Skill
2/7/2026fix-reviews
PRの未解決レビュー指摘を確認し、妥当な指摘には修正対応する
B
becky3
1GitHub Stars
1Views
npx skills add becky3/ai-assistant
SKILL.md
| Name | fix-reviews |
| Description | PRの未解決レビュー指摘を確認し、妥当な指摘には修正対応する |
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_TOKEN | Slack Bot トークン |
SLACK_APP_TOKEN | Slack App トークン(Socket Mode用) |
SLACK_NEWS_CHANNEL_ID | フィード配信先チャンネルID |
SLACK_AUTO_REPLY_CHANNELS | 自動返信を有効にするチャンネルID(カンマ区切り) |
CHAT_LLM_PROVIDER | チャット応答のLLMプロバイダー(local / online) |
MCP_ENABLED | MCP機能の有効/無効(true / false、デフォルト: false) |
RAG_ENABLED | RAG機能の有効/無効(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仕様 を参照。
- Issue・Milestoneの確認 (
gh milestone list,gh issue list) - 対象Issueの仕様書を読む (
docs/specs/) developからブランチ作成 (feature/f{N}-{機能名}-#{Issue番号})- 実装・テスト
- コミット (
feat(f{N}): 説明 (#{Issue番号})) developに向けてPR作成 (gh pr create --base develop)
テストと lint
# テスト実行
uv run pytest
# lint
uv run ruff check .
# 型チェック
uv run mypy src
ドキュメント
機能仕様
- 全体仕様概要
- F1: チャット応答
- F2: 情報収集・配信
- F3: ユーザー情報抽出
- F4: トピック提案
- F5: MCP統合
- F6: 特定チャンネル自動返信
- F7: ボットステータス
- F8: スレッドサポート
- F9: RAGナレッジ
Claude Code 関連
Skills Info
Original Name:fix-reviewsAuthor:becky3
Download