Use when Glean MCP tools are available and you need guidance on which tool to use, how to format queries, or best practices for enterprise search. This skill provides tool selection logic and query optimization for Glean integrations. Auto-triggers when mcp__glean tools are being considered.
Guides tool selection and query optimization for Glean enterprise search integrations when MCP tools are available.
npx claudepluginhub gleanwork/claude-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill provides guidance on selecting and using Glean MCP tools effectively.
This plugin uses three component types:
enterprise-searcher): Autonomous workers spawned for complex multi-step tasks/glean-search:search): User-triggered structured workflowsSkills provide knowledge; agents do work; commands orchestrate workflows.
Glean MCP tools follow the pattern:
mcp__glean_[server-name]__[tool]
Where [server-name] is dynamic and configured per user (e.g., default, production, acme). The tool suffix is always consistent. When invoking tools, use whatever Glean server is available in your tool list.
| Tool Suffix | Purpose | Use When |
|---|---|---|
search | Document discovery | Finding docs, wikis, policies, specs |
employee_search | People lookup | Finding people, org chart, teams |
meeting_lookup | Meeting search | Finding meetings, transcripts, decisions |
gmail_search | Email search | Finding emails, attachments |
code_search | Code discovery | Finding internal code, commits |
user_activity | Activity feed | Finding your recent actions and interactions |
read_document | Full content | Reading complete document by URL |
chat | AI synthesis | Complex analysis across sources |
User question about...
├── People, "who", org chart → employee_search
├── Meetings, decisions, action items → meeting_lookup
├── Emails, attachments → gmail_search
├── Internal code, commits → code_search
├── "My activity", "what have I done", recent actions → user_activity
├── Documents, policies, specs → search
├── Need full document content → read_document (with URL)
└── Complex multi-source analysis → chat
# WRONG
search "John Smith"
# CORRECT
employee_search "John Smith"
When users need document details:
search to find documentsread_document with URL from resultsWhen the question requires reasoning across multiple sources:
chat "What are our authentication best practices based on recent RFCs and security policies?"
The search tool uses separate parameters (not inline query filters):
| Parameter | Type | Description |
|---|---|---|
query | string | Keywords to find documents (required) |
owner | string | Filter by document creator ("person name", "me", "myteam") |
from | string | Filter by who updated/commented/created ("person name", "me", "myteam") |
updated | string | Filter by update date (today, yesterday, past_week, past_2_weeks, past_month, or month name) |
after | string | Documents created after date (YYYY-MM-DD format, no future dates) |
before | string | Documents created before date (YYYY-MM-DD format) |
app | enum | Filter by datasource (e.g., confluence, github, gdrive, slack, jira, notion) |
type | enum | Filter by type: pull, spreadsheet, slides, email, direct message, folder |
channel | string | Filter by Slack channel name |
exhaustive | boolean | Return all matching results (use for "all", "each", "every" requests) |
sort_by_recency | boolean | Sort by newest first (only when user wants "latest" or "most recent") |
Code search uses inline filters in the query string:
Person Filters:
owner:"person name" or owner:me - Filter by commit creatorfrom:"person name" or from:me - Filter by code file/commit updaterDate Filters:
updated:today|yesterday|past_week|past_month - Filter by update dateafter:YYYY-MM-DD - Commits/files changed after datebefore:YYYY-MM-DD - Commits/files changed before datereportsto:"manager name" - Find direct reports (NOT for finding who someone reports to)startafter:YYYY-MM-DD - People who started after datestartbefore:YYYY-MM-DD - People who started before dateroletype:"individual contributor"|"manager" - Filter by role typesortby:hire_date_ascending|hire_date_descending|most_reports - Sort resultsImportant: meeting_lookup works best with natural language queries. Date filter syntax does NOT work reliably.
Natural language dates (recommended):
Other filters that work:
participants:"name" - Filter by attendeestopic:"subject" - Filter by meeting subject/titleextract_transcript:"true" - Include meeting content/transcriptNote: Inline date filters (after:, before:) do not work reliably with meeting_lookup. Use natural language dates instead.
from:"person"|"email@domain.com"|"me" - Filter by senderto:"person"|"email@domain.com"|"me" - Filter by recipientsubject:"text" - Filter by subject linehas:attachment|document|spreadsheet|presentation - Filter by attachment typeis:important|starred|read|unread|snoozed - Filter by email statuslabel:INBOX|SENT|TRASH|DRAFT|SPAM - Filter by folder/labelafter:YYYY-MM-DD / before:YYYY-MM-DD - Date rangeThe user_activity tool uses date range parameters (not query filters):
start_date - Start date in YYYY-MM-DD format (inclusive, required)end_date - End date in YYYY-MM-DD format (exclusive, required)Use for: standup notes, weekly summaries, 1:1 prep, finding documents you touched but forgot.
These examples show the correct syntax for each tool type.
Pass filters as separate parameters, not in the query string:
search(query="authentication RFC", app="confluence", updated="past_month")
search(query="API design", owner="me", sort_by_recency=true)
search(query="onboarding guide", from="John Smith", after="2024-01-01")
Include filters directly in the query string:
code_search("authentication handler owner:me updated:past_week")
code_search("payment processor after:2024-06-01 before:2024-12-01")
code_search("API endpoint from:\"Jane Doe\"")
Include filters directly in the query string:
employee_search("engineering manager reportsto:\"VP Engineering\"")
employee_search("backend engineer startafter:2024-01-01")
employee_search("data scientist roletype:\"individual contributor\"")
Use natural language for dates; inline filters for other criteria:
meeting_lookup("my meetings today extract_transcript:\"true\"")
meeting_lookup("standup last week participants:\"John Smith\"")
meeting_lookup("design review past 2 weeks topic:\"architecture\"")
Note: Date filters (after:, before:) are documented but don't work reliably in practice. Use natural language dates instead ("today", "yesterday", "last week", "past 2 weeks").
Pass date range as separate parameters:
user_activity(start_date="2024-01-08", end_date="2024-01-15")
Structured vs Inline Filters:
search uses structured parameters - pass filters as separate tool argumentscode_search, employee_search, gmail_search, meeting_lookup use inline filters in the query stringWhen to Use Date Filters:
updated: for relative timeframes ("last week", "past month")after:/before: for date ranges ("between Jan and March", "since 2024")meeting_lookup, prefer natural language dates over inline filtersPerson Filter Guidelines:
from:"John Smith"owner: for document creators, from: for broader involvementme when user refers to themselvesSearch Strategy:
search: add filter parameters to narrow resultsexhaustive parameter on search for exhaustive results ("all", "each", "every")Common Pitfalls:
after: with future datessearch, pass channel and app as separate parametersfrom:"John Smith"Point users to structured workflows when appropriate:
/glean-search:search - Quick search/glean-people:find-expert - Expertise discovery/glean-meetings:catch-up - Return from time off/glean-meetings:meeting-prep - Meeting preparation/glean-people:stakeholders - Stakeholder mapping/glean-docs:onboarding - Team onboarding/glean-docs:verify-rfc - Spec verificationExpert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.