Skip to content
Business
Skill

/search-strategy

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.

From plugin
knowledge-work-plugins
24k192 skills5 agents15 commands40 MCP
Install
$ npx -y skills add anthropics/knowledge-work-plugins --skill search-strategy --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/search-strategy

Context preview

The summary Claude sees to decide when to auto-load this skill.

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.

SKILL.md

search-strategy.SKILL.md
name: search-strategy
description: 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.
user-invocable: false

Search Strategy

> If you see unfamiliar placeholders or need to check which tools are connected, see [CONNECTORS.md](../../CONNECTORS.md).

The core intelligence behind enterprise search. Transforms a single natural language question into parallel, source-specific searches and produces ranked, deduplicated results.

The Goal

Turn this:

"What did we decide about the API migration timeline?"

Into targeted searches across every connected source:

~~chat:  "API migration timeline decision" (semantic) + "API migration" in:#engineering after:2025-01-01
~~knowledge base: semantic search "API migration timeline decision"
~~project tracker:  text search "API migration" in relevant workspace

Then synthesize the results into a single coherent answer.

Query Decomposition

Step 1: Identify Query Type

Classify the user's question to determine search strategy:

| Query Type | Example | Strategy | |-----------|---------|----------| | **Decision** | "What did we decide about X?" | Prioritize conversations (~~chat, email), look for conclusion signals | | **Status** | "What's the status of Project Y?" | Prioritize recent activity, task trackers, status updates | | **Document** | "Where's the spec for Z?" | Prioritize Drive, wiki, shared docs | | **Person** | "Who's working on X?" | Search task assignments, message authors, doc collaborators | | **Factual** | "What's our policy on X?" | Prioritize wiki, official docs, then confirmatory conversations | | **Temporal** | "When did X happen?" | Search with broad date range, look for timestamps | | **Exploratory** | "What do we know about X?" | Broad search across all sources, synthesize |

Step 2: Extract Search Components

From the query, extract:

  • **Keywords**: Core terms that must appear in results
  • **Entities**: People, projects, teams, tools (use memory system if available)
  • **Intent signals**: Decision words, status words, temporal markers
  • **Constraints**: Time ranges, source hints, author filters
  • **Negations**: Things to exclude

Step 3: Generate Sub-Queries Per Source

For each available source, create one or more targeted queries:

**Prefer semantic search** for:

  • Conceptual questions ("What do we think about...")
  • Questions where exact keywords are unknown
  • Exploratory queries

**Prefer keyword search** for:

  • Known terms, project names, acronyms
  • Exact phrases the user quoted
  • Filter-heavy queries (from:, in:, after:)

**Generate multiple query variants** when the topic might be referred to differently:

User: "Kubernetes setup"
Queries: "Kubernetes", "k8s", "cluster", "container orchestration"

Source-Specific Query Translation

~~chat

**Semantic search** (natural language questions):

query: "What is the status of project aurora?"

**Keyword search:**

query: "project aurora status update"
query: "aurora in:#engineering after:2025-01-15"
query: "from:<@UserID> aurora"

**Filter mapping:** | Enterprise filter | ~~chat syntax | |------------------|--------------| | `from:sarah` | `from:sarah` or `from:<@USERID>` | | `in:engineering` | `in:engineering` | | `after:2025-01-01` | `after:2025-01-01` | | `before:2025-02-01` | `before:2025-02-01` | | `type:thread` | `is:thread` | | `type:file` | `has:file` |

~~knowledge base (Wiki)

**Semantic search** — Use for conceptual queries:

descriptive_query: "API migration timeline and decision rationale"

**Keyword search** — Use for exact terms:

query: "API migration"
query: "\"API migration timeline\""  (exact phrase)

~~project tracker

**Task search:**

text: "API migration"
workspace: [workspace_id]
completed: false  (for status queries)
assignee_any: "me"  (for "my tasks" queries)

**Filter mapping:** | Enterprise filter | ~~project tracker parameter | |------------------|----------------| | `from:sarah` | `assignee_any` or `created_by_any` | | `after:2025-01-01` | `modified_on_after: "2025-01-01"` | | `type:milestone` | `resource_subtype: "milestone"` |

Result Ranking

Relevance Scoring

Score each result on these factors (weighted by query type):

| Factor | Weight (Decision) | Weight (Status) | Weight (Document) | Weight (Factual) | |--------|-------------------|------------------|--------------------|-------------------| | Keyword match | 0.3 | 0.2 | 0.4 | 0.3 | | Freshness | 0.3 | 0.4 | 0.2 | 0.1 | | Authority | 0.2 | 0.1 | 0.3 | 0.4 | | Completeness | 0.2 | 0.3 | 0.1 | 0.2 |

Authority Hierarchy

Depends on query type:

**For factual/policy questions:**

Wiki/Official docs > Shared documents > Email announcements > Chat messages

**For "what happened" / decision questions:**

Meeting notes > Thread conclusions > Email confirmations > Chat messages

**For status questions:**

Task tracker > Recent chat > Status docs > Email updates

Handling Ambiguity

When a query is ambiguous, prefer asking one focused clarifying question over guessing:

Ambiguous: "search for the migration"
→ "I found references to a few migrations. Are you looking for:
   1. The database migration (Project Phoenix)
   2. The cloud migration (AWS → GCP)
   3. The email migration (Exchange → O365)"

Only ask for clarification when:

  • There are genuinely distinct interpretations that would produce very different results
  • The ambiguity would significantly affect which sources to search

Do NOT ask for clarification when:

  • The query is clear enough to produce useful results
  • Minor ambiguity can be resolved by returning results from multiple interpretations

Fallback Strategies

When a source is unavailable or returns no results:

1. **Source unavailable**: Skip it,

Read more
Ships withknowledge-work-plugins

Plugins that turn Claude into a specialist for your role, team, and company. Built for Claude Cowork, also compatible with Claude Code.

Get the whole plugin

Other skills on knowledge-work-plugins.