{
  "schema": "https://ai-atoms.com/schemas/skill-v1.json",
  "type": "skill",
  "id": "skill/search-strategy",
  "version": "1.1.0",
  "name": "search-strategy",
  "description": "[Deprecated — use skill/search instead] Query decomposition and multi-source search orchestration. Breaks natural language questions into targeted searches per source, translates queries into source-specific syntax, ranks results by relevance, and handles ambiguity and fallback strategies.",
  "system_prompt_fragment": "# Search Strategy\n\n> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).\n\nThe core intelligence behind enterprise search. Transforms a single natural language question into parallel, source-specific searches and produces ranked, deduplicated results.\n\n## The Goal\n\nTurn this:\n```\n\"What did we decide about the API migration timeline?\"\n```\n\nInto targeted searches across every connected source:\n```\n~~chat:  \"API migration timeline decision\" (semantic) + \"API migration\" in:#engineering after:2025-01-01\n~~knowledge base: semantic search \"API migration timeline decision\"\n~~project tracker:  text search \"API migration\" in relevant workspace\n```\n\nThen synthesize the results into a single coherent answer.\n\n## Query Decomposition\n\n### Step 1: Identify Query Type\n\nClassify the user's question to determine search strategy:\n\n| Query Type | Example | Strategy |\n|-----------|---------|----------|\n| **Decision** | \"What did we decide about X?\" | Prioritize conversations (~~chat, email), look for conclusion signals |\n| **Status** | \"What's the status of Project Y?\" | Prioritize recent activity, task trackers, status updates |\n| **Document** | \"Where's the spec for Z?\" | Prioritize Drive, wiki, shared docs |\n| **Person** | \"Who's working on X?\" | Search task assignments, message authors, doc collaborators |\n| **Factual** | \"What's our policy on X?\" | Prioritize wiki, official docs, then confirmatory conversations |\n| **Temporal** | \"When did X happen?\" | Search with broad date range, look for timestamps |\n| **Exploratory** | \"What do we know about X?\" | Broad search across all sources, synthesize |\n\n### Step 2: Extract Search Components\n\nFrom the query, extract:\n\n- **Keywords**: Core terms that must appear in results\n- **Entities**: People, projects, teams, tools (use memory system if available)\n- **Intent signals**: Decision words, status words, temporal markers\n- **Constraints**: Time ranges, source hints, author filters\n- **Negations**: Things to exclude\n\n### Step 3: Generate Sub-Queries Per Source\n\nFor each available source, create one or more targeted queries:\n\n**Prefer semantic search** for:\n- Conceptual questions (\"What do we think about...\")\n- Questions where exact keywords are unknown\n- Exploratory queries\n\n**Prefer keyword search** for:\n- Known terms, project names, acronyms\n- Exact phrases the user quoted\n- Filter-heavy queries (from:, in:, after:)\n\n**Generate multiple query variants** when the topic might be referred to differently:\n```\nUser: \"Kubernetes setup\"\nQueries: \"Kubernetes\", \"k8s\", \"cluster\", \"container orchestration\"\n```\n\n## Source-Specific Query Translation\n\n### ~~chat\n\n**Semantic search** (natural language questions):\n```\nquery: \"What is the status of project aurora?\"\n```\n\n**Keyword search:**\n```\nquery: \"project aurora status update\"\nquery: \"aurora in:#engineering after:2025-01-15\"\nquery: \"from:<@UserID> aurora\"\n```\n\n**Filter mapping:**\n| Enterprise filter | ~~chat syntax |\n|------------------|--------------|\n| `from:sarah` | `from:sarah` or `from:<@USERID>` |\n| `in:engineering` | `in:engineering` |\n| `after:2025-01-01` | `after:2025-01-01` |\n| `before:2025-02-01` | `before:2025-02-01` |\n| `type:thread` | `is:thread` |\n| `type:file` | `has:file` |\n\n### ~~knowledge base (Wiki)\n\n**Semantic search** — Use for conceptual queries:\n```\ndescriptive_query: \"API migration timeline and decision rationale\"\n```\n\n**Keyword search** — Use for exact terms:\n```\nquery: \"API migration\"\nquery: \"\\\"API migration timeline\\\"\"  (exact phrase)\n```\n\n### ~~project tracker\n\n**Task search:**\n```\ntext: \"API migration\"\nworkspace: [workspace_id]\ncompleted: false  (for status queries)\nassignee_any: \"me\"  (for \"my tasks\" queries)\n```\n\n**Filter mapping:**\n| Enterprise filter | ~~project tracker parameter |\n|------------------|----------------|\n| `from:sarah` | `assignee_any` or `created_by_any` |\n| `after:2025-01-01` | `modified_on_after: \"2025-01-01\"` |\n| `type:milestone` | `resource_subtype: \"milestone\"` |\n\n## Result Ranking\n\n### Relevance Scoring\n\nScore each result on these factors (weighted by query type):\n\n| Factor | Weight (Decision) | Weight (Status) | Weight (Document) | Weight (Factual) |\n|--------|-------------------|------------------|--------------------|-------------------|\n| Keyword match | 0.3 | 0.2 | 0.4 | 0.3 |\n| Freshness | 0.3 | 0.4 | 0.2 | 0.1 |\n| Authority | 0.2 | 0.1 | 0.3 | 0.4 |\n| Completeness | 0.2 | 0.3 | 0.1 | 0.2 |\n\n### Authority Hierarchy\n\nDepends on query type:\n\n**For factual/policy questions:**\n```\nWiki/Official docs > Shared documents > Email announcements > Chat messages\n```\n\n**For \"what happened\" / decision questions:**\n```\nMeeting notes > Thread conclusions > Email confirmations > Chat messages\n```\n\n**For status questions:**\n```\nTask tracker > Recent chat > Status docs > Email updates\n```\n\n## Handling Ambiguity\n\nWhen a query is ambiguous, prefer asking one focused clarifying question over guessing:\n\n```\nAmbiguous: \"search for the migration\"\n→ \"I found references to a few migrations. Are you looking for:\n   1. The database migration (Project Phoenix)\n   2. The cloud migration (AWS → GCP)\n   3. The email migration (Exchange → O365)\"\n```\n\nOnly ask for clarification when:\n- There are genuinely distinct interpretations that would produce very different results\n- The ambiguity would significantly affect which sources to search\n\nDo NOT ask for clarification when:\n- The query is clear enough to produce useful results\n- Minor ambiguity can be resolved by returning results from multiple interpretations\n\n## Fallback Strategies\n\nWhen a source is unavailable or returns no results:\n\n1. **Source unavailable**: Skip it, search remaining sources, note the gap\n2. **No results from a source**: Try broader query terms, remove date filters, try alternate keywords\n3. **All sources return nothing**: Suggest query modifications to the user\n4. **Rate limited**: Note the limitation, return results from other sources, suggest retrying later\n\n### Query Broadening\n\nIf initial queries return too few results:\n```\nOriginal: \"PostgreSQL migration Q2 timeline decision\"\nBroader:  \"PostgreSQL migration\"\nBroader:  \"database migration\"\nBroadest: \"migration\"\n```\n\nRemove constraints in this order:\n1. Date filters (search all time)\n2. Source/location filters\n3. Less important keywords\n4. Keep only core entity/topic terms\n\n## Parallel Execution\n\nAlways execute searches across sources in parallel, never sequentially. The total search time should be roughly equal to the slowest single source, not the sum of all sources.\n\n```\n[User query]\n     ↓ decompose\n[~~chat query] [~~email query] [~~cloud storage query] [Wiki query] [~~project tracker query]\n     ↓            ↓            ↓              ↓            ↓\n  (parallel execution)\n     ↓\n[Merge + Rank + Deduplicate]\n     ↓\n[Synthesized answer]\n```",
  "applicable_domains": [
    "search",
    "knowledge"
  ],
  "invocation": [
    "/search-strategy"
  ],
  "tags": [
    "enterprise-search",
    "anthropics",
    "knowledge-work"
  ],
  "authored_by": "anthropics",
  "source_url": "https://github.com/anthropics/knowledge-work-plugins/blob/main/enterprise-search/skills/search-strategy/SKILL.md",
  "lifecycle": "deprecated",
  "category": "knowledge",
  "provenance": {
    "source": "anthropics/knowledge-work-plugins",
    "source_url": "https://github.com/anthropics/knowledge-work-plugins/blob/main/enterprise-search/skills/search-strategy/SKILL.md",
    "author": "Anthropic",
    "license": "Apache-2.0",
    "notes": "Imported by scripts/import-anthropic-skills.py."
  }
}