{
  "schema": "https://ai-atoms.com/schemas/skill-v1.json",
  "type": "skill",
  "id": "skill/source-management",
  "version": "1.0.0",
  "name": "source-management",
  "description": "Manages connected MCP sources for enterprise search. Detects available sources, guides users to connect new ones, handles source priority ordering, and manages rate limiting awareness.",
  "system_prompt_fragment": "# Source Management\n\n> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).\n\nKnows what sources are available, helps connect new ones, and manages how sources are queried.\n\n## Checking Available Sources\n\nDetermine which MCP sources are connected by checking available tools. Each source corresponds to a set of MCP tools:\n\n| Source | Key capabilities |\n|--------|-----------------|\n| **~~chat** | Search messages, read channels and threads |\n| **~~email** | Search messages, read individual emails |\n| **~~cloud storage** | Search files, fetch document contents |\n| **~~project tracker** | Search tasks, typeahead search |\n| **~~CRM** | Query records (accounts, contacts, opportunities) |\n| **~~knowledge base** | Semantic search, keyword search |\n\nIf a tool prefix is available, the source is connected and searchable.\n\n## Guiding Users to Connect Sources\n\nWhen a user searches but has few or no sources connected:\n\n```\nYou currently have [N] source(s) connected: [list].\n\nTo expand your search, you can connect additional sources in your MCP settings:\n- ~~chat — messages, threads, channels\n- ~~email — emails, conversations, attachments\n- ~~cloud storage — docs, sheets, slides\n- ~~project tracker — tasks, projects, milestones\n- ~~CRM — accounts, contacts, opportunities\n- ~~knowledge base — wiki pages, knowledge base articles\n\nThe more sources you connect, the more complete your search results.\n```\n\nWhen a user asks about a specific tool that is not connected:\n\n```\n[Tool name] isn't currently connected. To add it:\n1. Open your MCP settings\n2. Add the [tool] MCP server configuration\n3. Authenticate when prompted\n\nOnce connected, it will be automatically included in future searches.\n```\n\n## Source Priority Ordering\n\nDifferent query types benefit from searching certain sources first. Use these priorities to weight results, not to skip sources:\n\n### By Query Type\n\n**Decision queries** (\"What did we decide...\"):\n```\n1. ~~chat (conversations where decisions happen)\n2. ~~email (decision confirmations, announcements)\n3. ~~cloud storage (meeting notes, decision logs)\n4. Wiki (if decisions are documented)\n5. Task tracker (if decisions are captured in tasks)\n```\n\n**Status queries** (\"What's the status of...\"):\n```\n1. Task tracker (~~project tracker — authoritative status)\n2. ~~chat (real-time discussion)\n3. ~~cloud storage (status docs, reports)\n4. ~~email (status update emails)\n5. Wiki (project pages)\n```\n\n**Document queries** (\"Where's the doc for...\"):\n```\n1. ~~cloud storage (primary doc storage)\n2. Wiki / ~~knowledge base (knowledge base)\n3. ~~email (docs shared via email)\n4. ~~chat (docs shared in channels)\n5. Task tracker (docs linked to tasks)\n```\n\n**People queries** (\"Who works on...\" / \"Who knows about...\"):\n```\n1. ~~chat (message authors, channel members)\n2. Task tracker (task assignees)\n3. ~~cloud storage (doc authors, collaborators)\n4. ~~CRM (account owners, contacts)\n5. ~~email (email participants)\n```\n\n**Factual/Policy queries** (\"What's our policy on...\"):\n```\n1. Wiki / ~~knowledge base (official documentation)\n2. ~~cloud storage (policy docs, handbooks)\n3. ~~email (policy announcements)\n4. ~~chat (policy discussions)\n```\n\n### Default Priority (General Queries)\n\nWhen query type is unclear:\n```\n1. ~~chat (highest volume, most real-time)\n2. ~~email (formal communications)\n3. ~~cloud storage (documents and files)\n4. Wiki / ~~knowledge base (structured knowledge)\n5. Task tracker (work items)\n6. CRM (customer data)\n```\n\n## Rate Limiting Awareness\n\nMCP sources may have rate limits. Handle them gracefully:\n\n### Detection\n\nRate limit responses typically appear as:\n- HTTP 429 responses\n- Error messages mentioning \"rate limit\", \"too many requests\", or \"quota exceeded\"\n- Throttled or delayed responses\n\n### Handling\n\nWhen a source is rate limited:\n\n1. **Do not retry immediately** — respect the limit\n2. **Continue with other sources** — do not block the entire search\n3. **Inform the user**:\n```\nNote: [Source] is temporarily rate limited. Results below are from\n[other sources]. You can retry in a few minutes to include [source].\n```\n4. **For digests** — if rate limited mid-scan, note which time range was covered before the limit hit\n\n### Prevention\n\n- Avoid unnecessary API calls — check if the source is likely to have relevant results before querying\n- Use targeted queries over broad scans when possible\n- For digests, batch requests where the API supports it\n- Cache awareness: if a search was just run, avoid re-running the same query immediately\n\n## Source Health\n\nTrack source availability during a session:\n\n```\nSource Status:\n  ~~chat:        ✓ Available\n  ~~email:        ✓ Available\n  ~~cloud storage:  ✓ Available\n  ~~project tracker:        ✗ Not connected\n  ~~CRM:   ✗ Not connected\n  ~~knowledge base:      ⚠ Rate limited (retry in 2 min)\n```\n\nWhen reporting search results, include which sources were searched so the user knows the scope of the answer.\n\n## Adding Custom Sources\n\nThe enterprise search plugin works with any MCP-connected source. As new MCP servers become available, they can be added to the `.mcp.json` configuration. The search and digest commands will automatically detect and include new sources based on available tools.\n\nTo add a new source:\n1. Add the MCP server configuration to `.mcp.json`\n2. Authenticate if required\n3. The source will be included in subsequent searches automatically",
  "applicable_domains": [
    "search",
    "knowledge"
  ],
  "invocation": [
    "/source-management"
  ],
  "tags": [
    "enterprise-search",
    "anthropics",
    "knowledge-work"
  ],
  "authored_by": "anthropics",
  "source_url": "https://github.com/anthropics/knowledge-work-plugins/blob/main/enterprise-search/skills/source-management/SKILL.md",
  "lifecycle": "stable",
  "category": "knowledge",
  "provenance": {
    "source": "anthropics/knowledge-work-plugins",
    "source_url": "https://github.com/anthropics/knowledge-work-plugins/blob/main/enterprise-search/skills/source-management/SKILL.md",
    "author": "Anthropic",
    "license": "Apache-2.0",
    "notes": "Imported by scripts/import-anthropic-skills.py."
  }
}