用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/NVIDIA/nemoclaw-community --skill slack-channel-finder命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Read public GitHub pull requests, produce a short triage brief, and draft feature test cases grounded in the pull request description and diff. Use when a Slack user provides a public GitHub repository or pull request.
Check the memory against its schema and fix what can be fixed, so the store degrades visibly rather than silently.
Create and update the memory pages that the ranking job gates its top tier on, from evidence the selector collected.
基于 SOC 职业分类
正在显示 SKILL.md
| name | slack-channel-finder |
| description | Discover Slack channels by topic, team, or domain and determine the channel ID. |
Use this skill to discover Slack channels ID by name or topic
Do NOT use this skill when the user has already provided a slack channel ID
Check for scripts at:
/sandbox/.hermes-data/skills/slack-channel-finder/scripts/
or at
/sandbox/.hermes/skills/slack-channel-finder/scripts
| Script | Purpose |
|---|---|
find_channel.py | Search and rank channels by query across the workspace |
list_accessible_channels.py | List channels (bot-member or workspace-wide) |
describe_slack_channel.py | Deep-describe a single channel with layered signals |
list_accessible_channels.py and try to match channel name to ID/usr/bin/python3 .../list_accessible_channels.py
For topic or team queries, use find_channel.py — it searches all discoverable
public channels (not just bot-member channels) and returns scored matches:
/usr/bin/python3 /sandbox/.hermes-data/skills/slack-channel-finder/scripts/find_channel.py \
--query "nemoclaw inference" --top 5
Output:
{
"ok": true,
"query": "nemoclaw inference",
"query_tokens": ["nemoclaw", "inference"],
"total_searched": 78,
"count": 2,
"discovery_mode": "workspace",
"results": [
{
"channel_id": "C0ASZUN3L5D",
"name": "lopp-nemoclaw-staging",
"is_member": true,
"num_members": 8,
"topic": "",
"purpose": "This is a channel to discuss NemoClaw technical updates..."
Scoring weights: name token match = 3 pts, purpose match = 2 pts, topic match = 1 pt.
The is_member flag tells you whether the bot is in the channel — full history
and thread signals are available only for member channels.
Options:
| Flag | Description |
|---|---|
--query TEXT | Required. Matched against name, topic, purpose. |
--top N | Max results (default 5) |
--member-only | Restrict to bot-member channels only |
--min-score N | Minimum score to include (default 1) |
For cases where you need the complete channel list rather than a scored search:
# Bot-member channels only (fast)
/usr/bin/python3 .../list_accessible_channels.py
# All public channels in the workspace
/usr/bin/python3 .../list_accessible_channels.py --all-public
Output: { "ok": true, "count": N, "channels": [...], "discovery_mode": "workspace" }
Each channel: {id, name, is_archived, is_private, is_member, num_members, topic, purpose, created}
For --all-public, is_member=false channels exist in the workspace but the bot
hasn't been added — you can see name/topic/purpose but NOT read their history.
Options:
| Flag | Description |
|---|---|
--all-public | Use conversations.list for workspace-wide discovery |
--include-archived | Include archived channels |
--types TYPES | Comma-separated types (default public_channel) |
When you need to understand a specific channel — what it's for, who's active, what
they're discussing — use describe_slack_channel.py:
# Full mode (name + topic + purpose + pins + bookmarks + recent history)
/usr/bin/python3 .../describe_slack_channel.py --channel-id C0ASZUN3L5D
# Fast mode (skips conversations.history — useful for breadth scans)
/usr/bin/python3 .../describe_slack_channel.py --channel-id C0ASZUN3L5D --no-history
# With thread content (expands reply threads for high-activity messages)
/usr/bin/python3 .../describe_slack_channel.py --channel-id C0ASZUN3L5D --replies
# With resolved user display names on top contributors
/usr/bin/python3 .../describe_slack_channel.py --channel-id C0ASZUN3L5D --resolve-users
Options:
| Flag | Description |
|---|---|
--channel-id ID | Required. Slack channel ID (e.g. C0ASZUN3L5D) |
--history-limit N | Max messages to fetch (default 50) |
--no-history | Skip conversations.history (faster, cheaper) |
--no-pins | Skip pins.list |
--no-bookmarks | Skip bookmarks.list |
--replies | Fetch first few replies for threaded messages (reply_count > 0) |
--replies-limit N | Max replies per thread when --replies is set (default 5) |
--resolve-users | Resolve contributor user IDs to display names via users.info |
Output structure:
{
"ok": true,
"channel_id": "C0ASZUN3L5D",
"name": "lopp-nemoclaw-staging",
"is_archived": false,
"is_private": false,
"num_members": 8,
"signals": {
"name_tokens": ["lopp", "nemoclaw", "staging"],
"topic": "",
"topic_stale": true,
"purpose": "This is a channel to discuss NemoClaw...",
"pinned_messages": [],
...
The script does NOT produce a natural-language description. Synthesize one from
the signals dict, weighting in this order:
The confidence field (high, medium, low) reflects how many independent
signals were available. For low-confidence channels, hedge ("appears to be
about ...") or ask the user to confirm.
When a message has a high reply_count and you need the actual discussion
content, use --replies on describe_slack_channel.py or directly call
conversations.replies:
# Via describe (expands all threads in the sampled history)
/usr/bin/python3 .../describe_slack_channel.py --channel-id [channel-id] --replies --replies-limit [n]
If the user's goal goes beyond discovery ("tell me what the X team is working
on"), once channels are identified, hand off to slack-channel-summarizer
for each top channel. Cap at 5 channels per query; surface the ranking so the
user can ask for more.
Find channels matching a topic:
/usr/bin/python3 .../find_channel.py --query "nemoclaw deployments"
See all public channels in the workspace:
/usr/bin/python3 .../list_accessible_channels.py --all-public
Understand a specific channel (fast, no history):
/usr/bin/python3 .../describe_slack_channel.py --channel-id C0ASZUN3L5D --no-history
Understand a channel with thread context and user names:
/usr/bin/python3 .../describe_slack_channel.py --channel-id C0ASZUN3L5D --replies --resolve-users