Skip to content
Back to skills

Slack Search

ASecurity

Slackチャンネルやメッセージをセマンティック検索するスキル。 「Slackで検索して」「チャンネルを探して」「発言を探して」等のリクエストで発動。

  • 348 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 27, 2026
developmentpythongobashgit

Works with

  • cli

Security analysis

A100/100

Pro scans all 6 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add minicoohei/ai-agent-camp --skill slack-search --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Slack Search?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Slack Search
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/minicoohei-slack-search/badge)](https://www.skillsdirectory.com/skills/minicoohei-slack-search)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: slack-search
description: "Slackチャンネルやメッセージをセマンティック検索するスキル。 「Slackで検索して」「チャンネルを探して」「発言を探して」等のリクエストで発動。"
triggers:
  - Slackで検索して
  - チャンネルを探して
  - 発言を探して
  - 関連するチャンネル
  - イベントを検索
  - slack-search
  - Slack search
---

# Slack Search Skill

BookRAGに基づく階層的インデックスを活用したSlackセマンティック検索。

## クイックスタート

```python
import sys
from pathlib import Path
# プロジェクトルートの tools/ ディレクトリをパスに追加
sys.path.insert(0, str(Path(__file__).resolve().parents[4] / "tools"))
from 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")

# 人物検索
persons = search.find_person("清水")

# イベント検索
events = search.find_events("DX")

# タイムライン検索
timeline = search.get_timeline("2025-12-01", "2025-12-31")
```

## 利用可能な検索機能

### 1. ワークスペース概要 (`get_workspace_overview`)

全体の統計情報とカテゴリ構造を取得。

```python
# 全ワークスペース
overview = search.get_workspace_overview()

# 特定のワークスペース
overview = search.get_workspace_overview("my-workspace")
```

**対応ワークスペース**: 設定されたワークスペース(`build_book_index.py` の `WORKSPACES` を参照)

### 2. チャンネル検索 (`find_channels`)

チャンネル名、トピック、概要からセマンティック検索。

```python
# 基本検索
results = search.find_channels("展示会")

# フィルタ付き検索
results = search.find_channels(
    query="プロジェクト",
    workspace="my-workspace",
    category="project",
    limit=20
)
```

**チャンネルカテゴリ**:
- `cafe`: 個人チャンネル(cafe_*)
- `project`: プロジェクト(pj_*)
- `product`: プロダクト開発(product_*)
- `sales`: 営業(sales_*)
- `notify`: 通知(notify_*)
- `partner`: 外部パートナー(*_partner)
- `event`: イベント(日付パターン)
- `external`: 外部連携(ex-*, ext-*)

### 3. チャンネル詳細 (`get_channel_detail`)

特定チャンネルの詳細情報を取得。

```python
# フルID指定
detail = search.get_channel_detail("my-workspace/example-channel")

# チャンネル名のみでも可
detail = search.get_channel_detail("example-channel")
```

**返却情報**:
- 概要(overview)
- トピック(topics)
- 参加者(participants)
- 活動期間(first_activity, last_activity)
- ファイルパス(data, summary, archive)
- 関連チャンネル(related_channels)

### 4. 関連チャンネル探索 (`find_related_channels`)

グラフ構造に基づいて関連チャンネルを探索。

```python
# 直接関連
related = search.find_related_channels("example-channel")

# 間接関連まで(depth=2)
related = search.find_related_channels("example-channel", depth=2)
```

### 5. 人物検索 (`find_person`)

発言者やメンションから人物を検索。

```python
results = search.find_person("清水")
# 返却: 名前、エイリアス、参加チャンネル数、チャンネルリスト
```

### 6. イベント検索 (`find_events`)

展示会、会議などのイベントを検索。

```python
# 全イベント
events = search.find_events()

# キーワード検索
events = search.find_events("DX")
```

### 7. カテゴリ別一覧 (`list_channels_by_category`)

特定カテゴリのチャンネルを一覧。

```python
# 全ワークスペースのcafeチャンネル
cafes = search.list_channels_by_category("cafe")

# 特定ワークスペースのprojectチャンネルのみ
projects = search.list_channels_by_category("project", workspace="my-workspace")
```

### 8. タイムライン検索 (`get_timeline`)

期間指定でアクティビティを検索。

```python
timeline = search.get_timeline(
    start_date="2025-12-01",
    end_date="2025-12-31",
    workspace="my-workspace"  # オプション
)
```

### 9. 出力ソース情報 (`get_output_sources`)

calendar, gmail, drive, voicememoの統計情報。

```python
sources = search.get_output_sources()
```

## データ構造

### インデックスパス
- メインインデックス: `slack-sync/index/book_index.json`
- スキーマ定義: `slack-sync/index/schema.md`

### データソース
- 現在データ: `slack-sync/data/{workspace}/`
- サマリー: `slack-sync/data/summary/{workspace}/`
- アーカイブ: `slack-sync/data/archive/{workspace}/`
- 出力: `output/` (calendar, gmail, drive, voicememo)

## CLIコマンド

```bash
# ワークスペース概要
uv run python tools/slack_search.py overview [workspace]

# チャンネル検索
uv run python tools/slack_search.py find "クエリ"

# チャンネル詳細
uv run python tools/slack_search.py detail "channel_id"

# 関連チャンネル
uv run python tools/slack_search.py related "channel_id"

# 人物検索
uv run python tools/slack_search.py person "名前"

# イベント検索
uv run python tools/slack_search.py events [クエリ]

# カテゴリ別
uv run python tools/slack_search.py category "カテゴリ名"

# タイムライン
uv run python tools/slack_search.py timeline "開始日" "終了日"
```

## インデックス更新

インデックスはGitHub Actionsで毎日自動更新されます。
手動更新:

```bash
python3 slack-sync/scripts/build_book_index.py
```

## ユースケース例

### 「清水さんが参加しているプロジェクトを教えて」

```python
person = search.find_person("清水")[0]
project_channels = [
    ch for ch in person["channels"]
    if search.get_channel_detail(ch).get("category") == "project"
]
```

### 「最近のDX展示会イベントの成果を確認」

```python
events = search.find_events("DX")
for event in events:
    detail = search.get_channel_detail(event["channel"])
    print(f"{event['name']}: {detail['overview']}")
```

### 「example-channelに関連する活動を調べる」

```python
detail = search.get_channel_detail("example-channel")
related = search.find_related_channels("example-channel", depth=2)
print(f"関連チャンネル数: {related['total_related']}")
```

## Overview

BookRAGに基づく階層的インデックスを活用し、Slackチャンネル・メッセージをセマンティック検索するスキルです。チャンネル検索、人物検索、イベント検索、タイムライン検索に対応。

## Troubleshooting

| エラー | 解決方法 |
|--------|---------|
| Index file not found | `python3 slack-sync/scripts/build_book_index.py` でインデックスを再構築 |
| No results found | クエリのキーワードを変えるか、`get_workspace_overview()` で利用可能なカテゴリを確認 |

## Success Criteria

- [ ] 検索クエリに対して関連するチャンネルまたはメッセージが返却されている
- [ ] 検索結果にチャンネル名・概要・関連度が含まれている
- [ ] エラーなく完了している

## Usage

上記「クイックスタート」および「CLIコマンド」セクションを参照。基本例:

```bash
# チャンネル検索
uv run python tools/slack_search.py find "DX展示会"

# 人物検索
uv run python tools/slack_search.py person "清水"
```

Files in this skill

  • SKILL.en.md3.7 KB
  • SKILL.es.md4.2 KB
  • SKILL.md7.7 KB
  • agents/openai.yaml143 B
  • data/book_index.json409 B
  • scripts/slack_search.py20.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…