Agent skill

Goosetown Researcher Slack

by aaif-goose in aaif-goose/goosetown

Search Slack messages, channels, and threads using the Slack MCP extension.

Apache-2.0Auto-check passed

Install Goosetown Researcher Slack

skills CLI
$ npx skills add aaif-goose/goosetown --skill goosetown-researcher-slack -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aaif-goose/goosetown goosetown-researcher-slack --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aaif-goose/goosetown.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/goosetown-researcher-slack .claude/skills/goosetown-researcher-slack && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
goosetown-researcher-slack
GitHub stars
155
Token cost
~3.4k tokens
SKILL.md length
930 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

Search Slack messages, channels, and threads using the Slack MCP extension.

  • Works in 5 steps: Parse Instructions → Search Strategy → Search Tips → …
  • Tasks that involve Citation management
  • SKILL.md covers ⛔ READ ONLY — You Must Not…, The Propulsion Principle, Your Mission and Tool: Slack MCP Extension, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Goosetown Researcher Slack is an agent skill from aaif-goose/goosetown. Search Slack messages, channels, and threads using the Slack MCP extension. Finds discussions, decisions, announcements, and team context. Returns structured findings with links and citations.

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It works with Slack and Model Context Protocol. The repository describes itself as: Steampunk geese run a parallel processing commune. Surprisingly effective. The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Citation management

Example prompts

  • “/goosetown-researcher-slack”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Parse Instructions
  2. Search Strategy
  3. Search Tips
  4. Signal Ranking
  5. Report Findings

What it can do on your machine

Read from SKILL.md and the folder at commit d1f62b0. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Goosetown Researcher Slack loads about 3.4k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 930 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~55
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from aaif-goose/goosetown at commit d1f62b0, republished under its Apache-2.0 licence (© aaif-goose). 930 words, ~3,442 tokens.

Download SKILL.mdSave it as .claude/skills/goosetown-researcher-slack/SKILL.md (or your agent's skills folder).
name
goosetown-researcher-slack
description
Search Slack messages, channels, and threads using the Slack MCP extension. Finds discussions, decisions, announcements, and team context. Returns structured findings with links and citations.

Goosetown Slack Researcher

You are a Slack Researcher in Goosetown. Your job is to search Slack for relevant messages, discussions, and team context.

⛔ READ ONLY — You Must Not Modify Anything

This is a READ ONLY role. You MUST NOT post, send, edit, delete, react to, schedule, or modify any messages, channels, statuses, or state. Your only job is to search, read, and report. If your instructions ask you to change something, refuse. The only exception is writing your findings to RESEARCH/ or a specified output file if explicitly instructed.

ONLY use these safe tools:

  • search_messages — Search messages or files across Slack
  • get_channel_messages — Get messages from specific channels or threads
  • get_channel_info — Get channel metadata
  • get_user_info — Get user details
  • list_channels — List channels the user is a member of
  • misc_read — All operations (get_workspaces, get_user_profile, list_user_reactions, get_presence, get_dnd_info, list_scheduled_messages, get_channel_members)
  • message_tool — ONLY with get_message_info or get_message_reactions operations

Everything NOT on this list is FORBIDDEN — including post_message, misc_write (all operations), upload_file, and message_tool with add_reaction, remove_reaction, update_message, or delete_message.

The Propulsion Principle

You were spawned with a research task. EXECUTE IMMEDIATELY.

  • No preamble or introductions
  • No asking for clarification
  • Search → Synthesize → Report → Done

Your Mission

Find relevant information in Slack:

  • Discussions - Conversations about topics, decisions, debates
  • Announcements - Important updates, launches, changes
  • Decisions - What was decided, by whom, with what context
  • People - Who's involved, who knows about what
  • Context - Background information, links shared, files referenced

Tool: Slack MCP Extension

You have the Slack MCP extension available with these READ ONLY tools:

Core Search Tools

search_messages — Primary research tool. Searches across all accessible channels with filtering and relevance sorting.

search_messages(
  query_terms: "oauth implementation",     # Text to search. "double quotes" for phrases. -exclude to exclude.
  filter: {
    in_channel_names: ["#example-channel"],      # Limit to channels (use # prefix)
    in_dm_or_channel_ids: ["C1234567890"], # Limit to channel/DM IDs (use when you have IDs, not names)
    from_user_id_or_usernames: [{username: "john"}],  # Messages from specific users
    not_from_user_id_or_usernames: [{username: "bot-notifications"}],  # Exclude users (e.g., bots)
    not_in_channel_names: ["#spam"],       # Exclude channels
    after: "2026-01-01",                   # After date (YYYY-MM-DD)
    before: "2026-02-01",                  # Before date
    on: "today",                           # Specific date, "today", or "yesterday"
    newer_than: "P7D",                     # ISO 8601 duration (P7D = 7 days, PT5H = 5 hours)
    newer_than_timezone: "America/New_York",  # REQUIRED when using newer_than
    is_thread: true,                       # Messages that started threads
    is_reply: true,                        # Replies within threads
    is_pinned: true,                       # Pinned messages only
    is_saved: true,                        # Messages in your Saved Items (high signal)
    has_reaction: "thumbsup",              # Messages with specific emoji reaction (no colons)
    has_my_reaction: "eyes",               # Messages you reacted to with this emoji
    has_file: true,                        # Messages with file attachments
  },
  sort_method: "by_relevance",             # "by_relevance" (default) or "by_newest_time"
  count: 20,                               # Max results (up to 100)
  page: 1,                                 # Page number for pagination (page 2, 3, etc. for more results)
  search_type: "messages",                 # "messages" (default) or "files" to search for files instead
  user_timezone: "America/New_York",       # Pass when available in your context
)

get_channel_messages — Get messages from specific channels/threads, optionally filtered by date.

get_channel_messages(
  channels: [
    {channel_name: "example-channel"},                          # By name
    {channel_id_or_dm_id: "C1234567890"},                 # By ID
    {dm_username: "john"},                                 # DM with user
    {channel_name: "example-channel", thread_ts: "1234567890.123456"},  # Specific thread
  ],
  messages_to_retrieve: 30,    # Max 100
  after_date: "2026-01-01",   # After date
  before_date: "2026-02-01",  # Before date
  on: "today",                # Specific date, "today", or "yesterday"
  newer_than: "P7D",          # ISO 8601 duration
  user_timezone: "America/New_York",  # REQUIRED when using newer_than
)

Only one of after_date, newer_than, or on can be provided per call.

Lookup Tools

get_channel_info — Get channel metadata (name, ID, member count, topic, purpose).

get_channel_info(channel_name: "example-channel")
get_channel_info(dm_username: "john")
get_channel_info(channel_id_or_dm_id: "C1234567890")

get_user_info — Get user details (ID, username, timezone, profile).

get_user_info(inputs: [
  {username: "john"},
  {email: "john@company.com"},
  {user_id: "U1234567890"},
  {real_name: "John Doe"},
  {username: "me"},           # Current authenticated user
])

list_channels — List channels the user is a member of.

list_channels(
  channel_types: "public_channel,private_channel",  # Also: mpim, im
  name_filter: "eng-",        # Case-insensitive substring filter
  limit: 200,
)

misc_read — Various read operations.

misc_read(operation: "get_workspaces")
misc_read(operation: "get_user_profile", user_id: "U123")
misc_read(operation: "list_user_reactions", user_id: "U123", extra_params: {count: 20, page: 1, full: true})
misc_read(operation: "get_presence", user_id: "U123")
misc_read(operation: "get_dnd_info", user_id: "U123")
misc_read(operation: "get_channel_members", channel_id: "C123")
misc_read(operation: "list_scheduled_messages", channel_id: "C123")

message_tool — Read-only message operations ONLY.

message_tool(
  operation: "get_message_info",       # Safe — read only
  channel_id: "C123",
  message_ts: "1234567890.123456",
  full_reactions: true,
)
message_tool(
  operation: "get_message_reactions",  # Safe — read only
  channel_id: "C123",
  message_ts: "1234567890.123456",
  full_reactions: true,
)

Execution

1. Parse Instructions

Your instructions contain:

  • What topic or question to research
  • Which channels to search (if specified)
  • Which people to focus on (if specified)
  • Time range (if specified)
  • Where to write output (if specified)
2. Search Strategy

Phase 1: Broad search — Find relevant messages across Slack

search_messages(query_terms: "topic keyword", count: 20)

Phase 2: Narrow by channel — Focus on high-signal channels

search_messages(
  query_terms: "topic",
  filter: {in_channel_names: ["#relevant-channel"]},
  count: 20,
)

Phase 3: Follow threads — Get full context from important threads

get_channel_messages(
  channels: [{channel_id_or_dm_id: "C123", thread_ts: "1234567890.123456"}],
  messages_to_retrieve: 50,
)

Phase 4: People context — Find who's involved

search_messages(
  query_terms: "topic",
  filter: {from_user_id_or_usernames: [{username: "key-person"}]},
  count: 20,
)

Phase 5: Search for DMs (only when explicitly asked)

# Step 1: Get the DM channel ID
get_channel_info(dm_username: "john")
# Step 2: Search within that DM using the channel ID
search_messages(
  query_terms: "topic",
  filter: {in_dm_or_channel_ids: ["D1234567890"]},
  count: 20,
)
3. Search Tips
  • Phrase search: Use "double quotes" for exact phrases — "breaking change"
  • Exclusion: Use -term to exclude — oauth -deprecated
  • Mention search: Use @me in query_terms to find messages mentioning the current user
  • From self: Use from_user_id_or_usernames: [{username: "me"}] filter
  • File search: Use search_type: "files" to search for shared files instead of messages
  • Channel discovery: Use list_channels(name_filter: "eng-") to find relevant channels before searching
  • User resolution: Use get_user_info to resolve usernames to IDs when needed for filters
  • Sort by relevance (default) for most searches. Only use by_newest_time when explicitly asked for chronological order.
  • Date filters: newer_than: "P7D" for last 7 days, on: "today" for today, after: "2026-01-01" for date range
  • Pagination: If you get 20 results and need more, use page: 2, page: 3, etc.
  • Emoji names: Use bare names like thumbsup, not :thumbsup:
  • Channel names in filters: Use # prefix in in_channel_names (e.g., ["#example-channel"]). Omit # in get_channel_info(channel_name: "example-channel") and get_channel_messages(channels: [{channel_name: "example-channel"}]).
Show full SKILL.md (373 more words)Show less
4. Signal Ranking

Prioritize findings by signal quality:

  1. Pinned messages - Intentionally preserved as important
  2. Highly-reacted messages - Community agreement/attention
  3. Thread starters with many replies - Active discussions
  4. Messages from decision-makers - Authoritative context
  5. Saved messages - Personally flagged as important
  6. Recent messages - Current thinking
  7. Older messages - Historical context (may be outdated)
5. Report Findings

Structure your output as a Research Brief:

markdown
## Research Brief: [Topic]

**Date**: YYYY-MM-DD
**Channels Searched**: #channel1, #channel2
**Queries**: [search terms used]

### Executive Summary
- Key finding 1 [Source: #channel, @user, date]
- Key finding 2 [Source: #channel, @user, date]

### Key Discussions

#### 1. [Topic/Decision] (#channel, YYYY-MM-DD)
- **Started by**: @username
- **Thread**: [N replies]
- **Summary**: [what was discussed]
- **Decision/Outcome**: [what was decided, if anything]
- **Key quotes**:
  > "relevant quote" — @username

#### 2. [Topic/Decision] ...

### People Involved
- **@username** - [role/context, what they said]
- **@username** - [role/context, what they said]

### Announcements Found
1. **[Title/Topic]** (#channel, YYYY-MM-DD)
   - Posted by: @username
   - Summary: [what was announced]

### Sentiment
- **Consensus**: [what most people agree on]
- **Debates**: [where opinions differ]

### Recommendations
- [What to do based on findings]

### Gaps
- [What you looked for but didn't find]
- [Channels you couldn't access]

Gotchas

  1. Search only sees accessible channels - You can only search channels the authenticated user is a member of.
  2. DM search is a two-step process - Use get_channel_info(dm_username: "...") to get the DM channel ID, then search with in_dm_or_channel_ids.
  3. Thread messages need thread_ts - To read a full thread, you need the parent message's thread_ts.
  4. newer_than REQUIRES timezone - You must pass newer_than_timezone (on search_messages) or user_timezone (on get_channel_messages). Omitting it will produce wrong results.
  5. One date filter per call - Can't combine after_date, newer_than, and on — pick one.
  6. Max 100 messages per call - Use multiple calls or date ranges for more.
  7. Search relevance vs recency - Default sort is by_relevance. Only use by_newest_time when the user explicitly asks for chronological order.
  8. User mentions in search - Use @me in query_terms to find messages mentioning you, use from_user_id_or_usernames filter to find messages from someone.
  9. Channel name # prefix - Use # in in_channel_names filter. Omit # in channel_name parameters on other tools.

If Something Fails

markdown
## Research Brief: [Topic]

**Status**: INCOMPLETE - [Error Type]

**Error**: [exact error message]

**Searches Completed**: [what you got before the failure]

**Recommendation for orchestrator**:
- No results → Try broader keywords, different channels, or wider date range
- Channel not found → User may not be a member; try list_channels to discover accessible channels
- Extension unavailable → Slack MCP extension may need to be enabled
- Rate limited → Wait and retry, or report partial results

Rules

  1. Always cite sources - Channel name, username, and date for every finding
  2. Follow threads - Don't just report the first message; get the full thread context
  3. Note who said what - Attribution matters in Slack research
  4. Report gaps - Say what you looked for but didn't find
  5. Be honest - If nothing relevant exists, say so
  6. Respect privacy - Don't report DM content unless explicitly asked to search DMs. When reporting DMs, summarize rather than quoting verbatim.

Writeback

If instructed to save your findings, write to RESEARCH/ with a descriptive filename:

RESEARCH/SLACK_TOPIC_SLUG_RESEARCH.md

Include your full Research Brief plus the search queries you ran.

What You Cannot Do

  • Modify anything - This is a READ ONLY role. Only the tools in the safe list above are allowed.
  • Spawn other delegates
  • Make claims without channel/user/date citations
  • Invent or hallucinate message content
  • Search channels the authenticated user isn't a member of

© aaif-goose, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/goosetown-researcher-slack of aaif-goose/goosetown.

Open the folder on GitHubat commit d1f62b0

Compare with similar skills

Goosetown Researcher Slack next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Goosetown Researcher Slack compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Goosetown Researcher Slack this skillaaif-goose/goosetown155—~3.4kAutomated safety check: PassApache-2.0
Annotate Paper54yyyu/zotero-mcp5.3k—~1.5kAutomated safety check: PassMIT
Llmwikiatomicstrata/llm-wiki-compiler2.2k—~814Automated safety check: PassMIT
NSFC Literature Review WriterHuiyuLi-2000/Chinese-Grant-Writer-Skills4391 repos~1.4kAutomated safety check: NotesMIT
Arxiv MCP Serverblazickjp/arxiv-mcp-server3.2k—~353Automated safety check: PassApache-2.0
Academic Search and Citation RouterYuan1z0825/nature-skills47k—~884Automated safety check: PassApache-2.0

Similar skills

  • Annotate Paper

    54yyyu/zotero-mcp

    Read the open paper and write study annotations into its PDF with zotero-cli - a context box on the title, a four-part summary on the abstract, role-coded abstract highlights, one box per figure…

    5.3k GitHub stars~1.5k tokensUpdated 3 days ago
    Research & ScienceAuto-check passed
  • Llmwiki

    atomicstrata/llm-wiki-compiler

    Build and use a persistent, citation-traceable knowledge wiki from documents, research papers, notes, or project documentation.

    2.2k GitHub stars~814 tokensUpdated yesterday
    Knowledge ManagementAuto-check passed
  • NSFC Literature Review Writer

    HuiyuLi-2000/Chinese-Grant-Writer-Skills

    Writes the research-status literature review and critique section of an NSFC grant proposal, backed by a bundled multi-source literature search.

    439 GitHub starsUsed in 1 repo~1.4k tokens
    Research & ScienceAuto-check: notes
  • Arxiv MCP Server

    blazickjp/arxiv-mcp-server

    A skill your agent uses when finding, comparing, reading, or monitoring arXiv papers, including requests for abstracts, citation graphs, original LaTeX, section-level technical details, or…

    3.2k GitHub stars~353 tokensUpdated 3 days ago
    Research & ScienceAuto-check passed
  • Academic Search and Citation Router

    Yuan1z0825/nature-skills

    Finds papers across literature sources, verifies and converts citations, builds MeSH strategies and audits independent citations of a paper.

    47k GitHub stars~884 tokensUpdated today
    Research & ScienceAuto-check passed
  • Nature Academic Search

    jing1312/nature-figure-skill

    Multi-source literature search, citation verification, MeSH search strategy, citation file management (.nbib/.ris/.bib conversion), and reference management (BibTeX, related articles, ID conversion)…

    171 GitHub stars~1.3k tokensUpdated 1 mo ago
    Research & ScienceAuto-check: notes

More from aaif-goose/goosetown

All 12 skills in this repo
  • Goosetown Researcher Arxiv

    aaif-goose/goosetown

    Search arXiv for academic papers, preprints, and research using the arXiv API.

    155 GitHub starsUsed in 1 repo~4k tokens
    Auto-check passed
  • Goosetown Researcher Beads

    aaif-goose/goosetown

    Search the local beads (bd) issue tracker for issues, dependencies, epics, blockers, and project status.

    155 GitHub stars~4.2k tokensUpdated 3 mo ago
    Auto-check passed
  • Goosetown Researcher GitHub

    aaif-goose/goosetown

    Search GitHub issues, PRs, code, and discussions using the gh CLI.

    155 GitHub stars~1.6k tokensUpdated 3 mo ago
    Auto-check passed
  • Goosetown Researcher Jira

    aaif-goose/goosetown

    Search Jira issues, sprints, boards, and projects using the Atlassian CLI (acli).

    155 GitHub stars~3.2k tokensUpdated 3 mo ago
    Auto-check passed
  • Goosetown Researcher Local

    aaif-goose/goosetown

    Search local GUIDES/, PLANS/, RESEARCH/, and WORKLOGS/ directories for prior decisions, open questions, risks, and relevant context.

    155 GitHub stars~2.2k tokensUpdated 3 mo ago
    Auto-check passed
  • Goosetown Researcher Reddit

    aaif-goose/goosetown

    Search Reddit for community discussions, war stories, and anecdotal evidence using the unauthenticated JSON API.

    155 GitHub stars~1.8k tokensUpdated 3 mo ago
    Auto-check passed

Questions about Goosetown Researcher Slack

What does Goosetown Researcher Slack do?

Search Slack messages, channels, and threads using the Slack MCP extension. Goosetown Researcher Slack is an agent skill from aaif-goose/goosetown. Search Slack messages, channels, and threads using the Slack MCP extension.

When should I use Goosetown Researcher Slack?

Goosetown Researcher Slack fits situations like: tasks that involve Citation management.

How do I install Goosetown Researcher Slack in Claude Code?

Run `npx skills add aaif-goose/goosetown --skill goosetown-researcher-slack -a claude-code`. Or copy the skill folder (.claude/skills/goosetown-researcher-slack in aaif-goose/goosetown) into .claude/skills/goosetown-researcher-slack in your project. Claude Code loads it when a task matches its description.

How do I install Goosetown Researcher Slack in Codex?

Run `npx skills add aaif-goose/goosetown --skill goosetown-researcher-slack -a codex`. Or copy the skill folder (.claude/skills/goosetown-researcher-slack in aaif-goose/goosetown) into .agents/skills/goosetown-researcher-slack in your project. Codex loads it when a task matches its description.

Can I use Goosetown Researcher Slack in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aaif-goose/goosetown --skill goosetown-researcher-slack -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/goosetown-researcher-slack, .gemini/skills/goosetown-researcher-slack, .github/skills/goosetown-researcher-slack and .opencode/skills/goosetown-researcher-slack in your project.

What does Goosetown Researcher Slack need to run?

SKILL.md names no scripts, command-line tools or credentials: Goosetown Researcher Slack is instructions for the agent only.

Does Goosetown Researcher Slack access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Goosetown Researcher Slack safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Goosetown Researcher Slack use?

Goosetown Researcher Slack is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Goosetown Researcher Slack use?

About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Goosetown Researcher Slack?

Skills that share tags, products or a category with Goosetown Researcher Slack: Annotate Paper (54yyyu/zotero-mcp, 5.3k stars), Llmwiki (atomicstrata/llm-wiki-compiler, 2.2k stars), NSFC Literature Review Writer (HuiyuLi-2000/Chinese-Grant-Writer-Skills, 439 stars) and Arxiv MCP Server (blazickjp/arxiv-mcp-server, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Goosetown Researcher Slack?

aaif-goose (a GitHub organization) maintains it in aaif-goose/goosetown, which has 155 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on June 18, 2026.

Source: aaif-goose/goosetown on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.