一键导入
slack-task-manager
// Slack検索・TODO抽出・タスク管理を行うサブエージェント。 複数データソースからタスクを抽出し、優先順位付けを行う。 「Slackを検索」「タスクを抽出」「TODO確認」「メンション確認」等のリクエストで発動。
// Slack検索・TODO抽出・タスク管理を行うサブエージェント。 複数データソースからタスクを抽出し、優先順位付けを行う。 「Slackを検索」「タスクを抽出」「TODO確認」「メンション確認」等のリクエストで発動。
| name | slack-task-manager |
| description | Slack検索・TODO抽出・タスク管理を行うサブエージェント。 複数データソースからタスクを抽出し、優先順位付けを行う。 「Slackを検索」「タスクを抽出」「TODO確認」「メンション確認」等のリクエストで発動。 |
| triggers | ["Slackを検索","Slack検索","チャンネルを探して","メンションを確認","TODO抽出","タスク抽出","タスク一覧","未対応タスク","依頼事項"] |
Slack検索・TODO抽出・タスク管理を専用コンテキストで実行するサブエージェント。
Slackデータとタスク管理をメインエージェントのコンテキストから分離し:
| 機能 | スクリプト | 説明 |
|---|---|---|
| Slack検索 | slack_search.py | BookRAGベースのセマンティック検索 |
| TODO抽出 | extract_todos.py | メンションからTODO抽出・ステータス判定 |
| タスク抽出 | extract_tasks.py | 複数ソースからタスク抽出 |
tools/slack_search.py)BookRAGに基づく階層的インデックスを活用したセマンティック検索。
| メソッド | 説明 |
|---|---|
get_workspace_overview() | ワークスペース全体の概要 |
find_channels(query) | チャンネル検索 |
get_channel_detail(channel_id) | チャンネル詳細 |
find_related_channels(channel_id) | 関連チャンネル検索 |
find_person(name) | 人物検索 |
from tools.slack_search import SlackSearch
search = SlackSearch()
# ワークスペース概要
overview = search.get_workspace_overview()
# チャンネル検索
results = search.find_channels("DX展示会")
# チャンネル詳細
detail = search.get_channel_detail("my-workspace/example-channel")
# 関連チャンネル
related = search.find_related_channels("my-workspace/example-channel")
# 人物検索
person = search.find_person("清水")
# プロジェクト関連のチャンネルを探す
results = search.find_channels("AIチュートリアル")
# 特定の人物が関わるチャンネル
person = search.find_person("田中")
skills/slack-todo-extractor/scripts/extract_todos.py)Slackのメンションからタスクを抽出し、ステータス判定を行う。
# 基本(キーワードベース)
python skills/slack-todo-extractor/scripts/extract_todos.py \
--users "YourName,your-username" \
--period "2026-01-06:2026-01-08"
# LLMベース(高精度、要GEMINI_API_KEY)
python skills/slack-todo-extractor/scripts/extract_todos.py \
--users "YourName,your-username" \
--period "1/6:8" \
--use-llm
# JSON出力
python skills/slack-todo-extractor/scripts/extract_todos.py \
-u "YourName" -p "1/6:8" --use-llm -o json
| パラメータ | 必須 | 説明 | 例 |
|---|---|---|---|
--users, -u | ✅ | 対象ユーザー名(カンマ区切り) | YourName, your-username |
--period, -p | ✅ | 検索期間 | 2026-01-06:2026-01-08 or 1/6:8 |
--workspace, -w | ❌ | ワークスペース | my-workspace, my-workspace-2 |
--use-llm | ❌ | LLM(Gemini)で判定 | - |
--output, -o | ❌ | 出力形式 | markdown or json |
| ステータス | 条件 |
|---|---|
| ✅ 完了 | 対象ユーザーが「完了」等 / 依頼者が「ありがとう」等 |
| 🟡 対応中 | 対象ユーザーが「承知」「やります」等 |
| 🔴 未対応 | 返信なし |
tools/extract_tasks.py)複数のデータソースから自動的にタスクを抽出・優先順位付け。
| ソース | 説明 |
|---|---|
| Git | 変更ファイル、未コミット作業 |
| Activity Logger | 最近のアクティビティ |
| SpecStory | 仕掛かりタスク |
| Slack-sync | 依頼事項、メンション |
| Output | カレンダー、Gmail、ボイスメモ |
| Notion | データベース/ページ |
# 全ソースからタスク抽出
uv run python tools/extract_tasks.py
# 特定ソースのみ
uv run python tools/extract_tasks.py --sources git,slack
# HowToDo生成付き
uv run python tools/extract_tasks.py --with-howtodo
# HTML出力
uv run python tools/extract_tasks.py --format html --output tasks.html
tasks:
- id: task_001
source: slack
title: "EASソリューションの調査"
priority: high
status: pending
due_date: "2026-01-10"
assignee: "YourName"
channel: "my-workspace/team-core"
メインエージェントは以下のパターンでこのサブエージェントを呼び出す:
Task(
subagent_type="generalPurpose",
model="fast",
description="Slack search",
prompt="""
このスキルを読んで実行してください: skills/slack-task-manager/SKILL.md
タスク: {ユーザーの指示}
検索クエリ: {検索ワード}
期間: {期間指定}
検索結果のサマリーを返却してください。
"""
)
status: success
query: "DX展示会"
results:
- channel: "my-workspace/example-event-2026"
description: "2026年DX展示会の準備チャンネル"
relevance: 0.95
recent_activity: "2026-01-25"
- channel: "my-workspace-2/example-project"
description: "DXプロジェクト全般"
relevance: 0.82
total_matches: 5
status: success
period: "2026-01-06 ~ 2026-01-08"
summary:
total: 12
pending: 3
in_progress: 5
completed: 4
high_priority:
- title: "EASソリューションの調査"
from: "Sota Moriyama"
channel: "my-workspace/team-core"
status: pending
slack-sync/ のSlack同期が完了していること# Slack同期
python slack-sync/scripts/fetch_slack.py --workspace my-workspace
# スレッド返信も取得
python slack-sync/scripts/fetch_slack.py --workspace my-workspace --refresh-threads
python-dotenv>=1.0.0
google-generativeai>=0.3.0 # LLMモード使用時
# LLMモード使用時
GEMINI_API_KEY=your_api_key
Notion 連携は OAuth 統一です(環境変数は不要)。事前に /setup-notion を実行し、ncli login と Notion 公式 Hosted MCP(https://mcp.notion.com/mcp)をセットアップしてください。
ai-agent-campのレッスンをCodexで開始・進行するスキル。 「レッスン開始」「次のレッスン」「start-0-1を始めたい」「Codexでレッスン」「スラッシュコマンドのレッスン」等のリクエストで発動。
YouTube/マルチプラットフォーム動画からAIでハイライトを抽出し、 バイリンガル字幕付きクリップを自動生成するスキル。 「動画からクリップを切り出して」「ハイライトを抽出」「字幕付きクリップ」等で発動。
メールとSlackから返信すべき項目・タスクを抽出する統合型スキル。 Gemini 3.0 Flashで文脈判定し、優先度と返信ドラフトを生成。 「受信箱チェック」「TODO確認」「返信すべきメッセージ」「メール確認」等のリクエストで発動。
コンテンツの投稿・配信実行スキル。Typefully経由のX投稿、画像アップロード、 投稿スケジューリングを行う。 「投稿して」「スケジュール設定」「Typefullyに下書き」等で発動。
CSVファイルの行数・列数の取得、データ型推定、欠損値検出、数値列の統計情報を出力するスキル。 「CSVを分析して」「CSVの中身を確認」「データの概要を見せて」等のリクエストで発動。
BigQuery/Snowflake接続、EDA、可視化、Marimoノートブック作成を行うサブエージェント。 データ分析関連の4つのルール(data_analysis, visualization, notebook, marimo_variable_naming)を統合。 「データ分析して」「BigQueryに接続」「EDAを実行」「Marimoで分析」等のリクエストで発動。