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…
Search Slack messages, channels, and threads using the Slack MCP extension.
$ npx skills add aaif-goose/goosetown --skill goosetown-researcher-slack -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aaif-goose/goosetown goosetown-researcher-slack --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "goosetown-researcher-slack" agent skill from https://github.com/aaif-goose/goosetown/tree/main/.claude/skills/goosetown-researcher-slack into .claude/skills/goosetown-researcher-slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goosetown-researcher-slack", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aaif-goose/goosetown/tree/main/.claude/skills/goosetown-researcher-slackType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aaif-goose/goosetown --skill goosetown-researcher-slack -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aaif-goose/goosetown goosetown-researcher-slack --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaif-goose/goosetown.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/goosetown-researcher-slack .agents/skills/goosetown-researcher-slack && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "goosetown-researcher-slack" agent skill from https://github.com/aaif-goose/goosetown/tree/main/.claude/skills/goosetown-researcher-slack into .agents/skills/goosetown-researcher-slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goosetown-researcher-slack", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aaif-goose/goosetown --skill goosetown-researcher-slack -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aaif-goose/goosetown goosetown-researcher-slack --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaif-goose/goosetown.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/goosetown-researcher-slack .cursor/skills/goosetown-researcher-slack && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "goosetown-researcher-slack" agent skill from https://github.com/aaif-goose/goosetown/tree/main/.claude/skills/goosetown-researcher-slack into .cursor/skills/goosetown-researcher-slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goosetown-researcher-slack", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aaif-goose/goosetown.git --path .claude/skills/goosetown-researcher-slack--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aaif-goose/goosetown --skill goosetown-researcher-slack -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aaif-goose/goosetown goosetown-researcher-slack --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaif-goose/goosetown.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/goosetown-researcher-slack .gemini/skills/goosetown-researcher-slack && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "goosetown-researcher-slack" agent skill from https://github.com/aaif-goose/goosetown/tree/main/.claude/skills/goosetown-researcher-slack into .gemini/skills/goosetown-researcher-slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goosetown-researcher-slack", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aaif-goose/goosetown goosetown-researcher-slackInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aaif-goose/goosetown --skill goosetown-researcher-slack -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aaif-goose/goosetown.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/goosetown-researcher-slack .github/skills/goosetown-researcher-slack && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "goosetown-researcher-slack" agent skill from https://github.com/aaif-goose/goosetown/tree/main/.claude/skills/goosetown-researcher-slack into .github/skills/goosetown-researcher-slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goosetown-researcher-slack", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aaif-goose/goosetown --skill goosetown-researcher-slack -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aaif-goose/goosetown goosetown-researcher-slack --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaif-goose/goosetown.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/goosetown-researcher-slack .opencode/skills/goosetown-researcher-slack && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "goosetown-researcher-slack" agent skill from https://github.com/aaif-goose/goosetown/tree/main/.claude/skills/goosetown-researcher-slack into .opencode/skills/goosetown-researcher-slack/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "goosetown-researcher-slack", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
goosetown-researcher-slackSearch 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. 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.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d1f62b0. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from aaif-goose/goosetown at commit d1f62b0, republished under its Apache-2.0 licence (© aaif-goose). 930 words, ~3,442 tokens.
.claude/skills/goosetown-researcher-slack/SKILL.md (or your agent's skills folder).You are a Slack Researcher in Goosetown. Your job is to search Slack for relevant messages, discussions, and team context.
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 Slackget_channel_messages — Get messages from specific channels or threadsget_channel_info — Get channel metadataget_user_info — Get user detailslist_channels — List channels the user is a member ofmisc_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 operationsEverything 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.
You were spawned with a research task. EXECUTE IMMEDIATELY.
Find relevant information in Slack:
You have the Slack MCP extension available with these READ ONLY 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.
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,
)Your instructions contain:
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,
)"double quotes" for exact phrases — "breaking change"-term to exclude — oauth -deprecated@me in query_terms to find messages mentioning the current userfrom_user_id_or_usernames: [{username: "me"}] filtersearch_type: "files" to search for shared files instead of messageslist_channels(name_filter: "eng-") to find relevant channels before searchingget_user_info to resolve usernames to IDs when needed for filtersby_newest_time when explicitly asked for chronological order.newer_than: "P7D" for last 7 days, on: "today" for today, after: "2026-01-01" for date rangepage: 2, page: 3, etc.thumbsup, not :thumbsup:# 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"}]).Prioritize findings by signal quality:
Structure your output as a Research Brief:
## 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]get_channel_info(dm_username: "...") to get the DM channel ID, then search with in_dm_or_channel_ids.thread_ts.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.after_date, newer_than, and on — pick one.by_relevance. Only use by_newest_time when the user explicitly asks for chronological order.@me in query_terms to find messages mentioning you, use from_user_id_or_usernames filter to find messages from someone.# prefix - Use # in in_channel_names filter. Omit # in channel_name parameters on other tools.## 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 resultsIf instructed to save your findings, write to RESEARCH/ with a descriptive filename:
RESEARCH/SLACK_TOPIC_SLUG_RESEARCH.mdInclude your full Research Brief plus the search queries you ran.
© 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
Just SKILL.md in .claude/skills/goosetown-researcher-slack of aaif-goose/goosetown.
Open the folder on GitHubat commit d1f62b0
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Goosetown Researcher Slack this skillaaif-goose/goosetown | 155 | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| Annotate Paper54yyyu/zotero-mcp | 5.3k | — | ~1.5k | Automated safety check: Pass | MIT | |
| Llmwikiatomicstrata/llm-wiki-compiler | 2.2k | — | ~814 | Automated safety check: Pass | MIT | |
| NSFC Literature Review WriterHuiyuLi-2000/Chinese-Grant-Writer-Skills | 439 | 1 repos | ~1.4k | Automated safety check: Notes | MIT | |
| Arxiv MCP Serverblazickjp/arxiv-mcp-server | 3.2k | — | ~353 | Automated safety check: Pass | Apache-2.0 | |
| Academic Search and Citation RouterYuan1z0825/nature-skills | 47k | — | ~884 | Automated safety check: Pass | Apache-2.0 |
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…
atomicstrata/llm-wiki-compiler
Build and use a persistent, citation-traceable knowledge wiki from documents, research papers, notes, or project documentation.
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.
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…
Yuan1z0825/nature-skills
Finds papers across literature sources, verifies and converts citations, builds MeSH strategies and audits independent citations of a paper.
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)…
aaif-goose/goosetown
Search arXiv for academic papers, preprints, and research using the arXiv API.
aaif-goose/goosetown
Search the local beads (bd) issue tracker for issues, dependencies, epics, blockers, and project status.
aaif-goose/goosetown
Search GitHub issues, PRs, code, and discussions using the gh CLI.
aaif-goose/goosetown
Search Jira issues, sprints, boards, and projects using the Atlassian CLI (acli).
aaif-goose/goosetown
Search local GUIDES/, PLANS/, RESEARCH/, and WORKLOGS/ directories for prior decisions, open questions, risks, and relevant context.
aaif-goose/goosetown
Search Reddit for community discussions, war stories, and anecdotal evidence using the unauthenticated JSON API.
Works with
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.
Goosetown Researcher Slack fits situations like: tasks that involve Citation management.
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.
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.
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.
SKILL.md names no scripts, command-line tools or credentials: Goosetown Researcher Slack is instructions for the agent only.
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.
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.
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.
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.
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.
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.