From c2a53b8df80e929f79b799bb1e358de5b79f9ac7 Mon Sep 17 00:00:00 2001 From: aditya-scio Date: Thu, 5 Nov 2026 10:12:35 -0800 Subject: [PATCH 1/4] feat: add /glean skill for cited company answers at minimal tool cost --- shared/glean/skills/glean/SKILL.md | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 shared/glean/skills/glean/SKILL.md diff --git a/shared/glean/skills/glean/SKILL.md b/shared/glean/skills/glean/SKILL.md new file mode 100644 index 0000000..be39c14 --- /dev/null +++ b/shared/glean/skills/glean/SKILL.md @@ -0,0 +1,32 @@ +--- +name: glean +description: Default way to answer any question about the user's company with Glean - docs, Slack, email, tickets, people, meetings, decisions, projects, or the user's own work. Use for "/glean", "ask Glean", "what's our policy on", "who owns", "what was decided", "what am I working on". Gives a cited, up-to-date answer in the fewest Glean tool calls. Not for the local codebase, the public web, or general knowledge. +--- + +# Glean + +Answer from the user's company knowledge, grounded in sources, using the fewest tool calls that still give a complete answer. + +## Pick the cheapest tool that answers + +Glean tools come from the user's Glean MCP server (`mcp__glean___`). Use whichever are available. If none are, ask the user to set up Glean. + +- Docs, wikis, Slack, tickets: `search`. Add filters (`owner:`, `from:`, `updated:`, `after:`, app) in place of a broader query. +- People, owners, teams, reporting lines: `employee_search`. Never `search`. +- Meetings, decisions, action items: `meeting_lookup`. +- The user's own role, projects, preferences and recent work: `memory` and `user_activity`. Check `memory` first when the answer depends on who is asking. +- A URL the user gave, or a result whose snippet isn't enough: `read_document`. Read only what you will cite. +- A question that needs reasoning across many sources: `chat`, once, instead of many searches. + +## Work cheaply + +1. Run independent calls in parallel. +2. Start narrow. Broaden only if results are empty or off-topic, and re-run at most twice with different keywords. +3. Stop once the question is answered. Don't fetch extra pages to be thorough. + +## Answer well + +- Lead with the answer, then the supporting points. +- Cite every claim with its source link. No link, no claim. +- Prefer recent sources and say when one is old or when sources disagree. +- Empty results can mean the user has no access. Say so, and don't guess or pad. From 21284aa1af2863fb044f9c56b42a9250d1173a67 Mon Sep 17 00:00:00 2001 From: aditya-scio Date: Thu, 5 Nov 2026 10:45:31 -0800 Subject: [PATCH 2/4] feat: trim /glean skill to routing and citation rules --- shared/glean/skills/glean/SKILL.md | 31 ++++++++++-------------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/shared/glean/skills/glean/SKILL.md b/shared/glean/skills/glean/SKILL.md index be39c14..c92d044 100644 --- a/shared/glean/skills/glean/SKILL.md +++ b/shared/glean/skills/glean/SKILL.md @@ -5,28 +5,17 @@ description: Default way to answer any question about the user's company with Gl # Glean -Answer from the user's company knowledge, grounded in sources, using the fewest tool calls that still give a complete answer. +Answer from company knowledge with cited sources, in the fewest tool calls. -## Pick the cheapest tool that answers +Tools come from the user's Glean MCP server (`mcp__glean___`); use whichever are available, and if none are, ask the user to set up Glean. -Glean tools come from the user's Glean MCP server (`mcp__glean___`). Use whichever are available. If none are, ask the user to set up Glean. +- Docs, Slack, tickets: `search`, narrowed with filters (`owner:`, `updated:`, `after:`, app). +- People and owners: `employee_search`, never `search`. +- Meetings and decisions: `meeting_lookup`. +- Who the user is and what they work on: `memory`, `user_activity`. +- Full text of a URL or of a result you will cite: `read_document`. +- Synthesis across many sources: one `chat` call instead of many searches. -- Docs, wikis, Slack, tickets: `search`. Add filters (`owner:`, `from:`, `updated:`, `after:`, app) in place of a broader query. -- People, owners, teams, reporting lines: `employee_search`. Never `search`. -- Meetings, decisions, action items: `meeting_lookup`. -- The user's own role, projects, preferences and recent work: `memory` and `user_activity`. Check `memory` first when the answer depends on who is asking. -- A URL the user gave, or a result whose snippet isn't enough: `read_document`. Read only what you will cite. -- A question that needs reasoning across many sources: `chat`, once, instead of many searches. +Run independent calls in parallel. Retry with new keywords at most twice. Stop once answered. -## Work cheaply - -1. Run independent calls in parallel. -2. Start narrow. Broaden only if results are empty or off-topic, and re-run at most twice with different keywords. -3. Stop once the question is answered. Don't fetch extra pages to be thorough. - -## Answer well - -- Lead with the answer, then the supporting points. -- Cite every claim with its source link. No link, no claim. -- Prefer recent sources and say when one is old or when sources disagree. -- Empty results can mean the user has no access. Say so, and don't guess or pad. +Cite every claim with its link. Flag stale or conflicting sources. Empty results may mean no access: say so, don't guess. From 2b43fa5f3f69b928928c3ea56640c3f8bc4e9445 Mon Sep 17 00:00:00 2001 From: aditya-scio Date: Thu, 5 Nov 2026 11:56:03 -0800 Subject: [PATCH 3/4] feat: generic /glean examples, reading prefs from memory, drop chat --- shared/glean/skills/glean/SKILL.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/shared/glean/skills/glean/SKILL.md b/shared/glean/skills/glean/SKILL.md index c92d044..247b3e5 100644 --- a/shared/glean/skills/glean/SKILL.md +++ b/shared/glean/skills/glean/SKILL.md @@ -1,6 +1,6 @@ --- name: glean -description: Default way to answer any question about the user's company with Glean - docs, Slack, email, tickets, people, meetings, decisions, projects, or the user's own work. Use for "/glean", "ask Glean", "what's our policy on", "who owns", "what was decided", "what am I working on". Gives a cited, up-to-date answer in the fewest Glean tool calls. Not for the local codebase, the public web, or general knowledge. +description: Answer questions about the company: documents, messages, email, tickets, people, meetings, projects, and the user's own work. Use for questions like "what's the latest on the Q3 launch?", "find the onboarding guide for new sales hires", "who should I talk to about the pricing change?", "prep me for my 2pm meeting", or "what did I work on this week?". Gives a cited, up-to-date answer in as few tool calls as possible. --- # Glean @@ -9,13 +9,14 @@ Answer from company knowledge with cited sources, in the fewest tool calls. Tools come from the user's Glean MCP server (`mcp__glean___`); use whichever are available, and if none are, ask the user to set up Glean. -- Docs, Slack, tickets: `search`, narrowed with filters (`owner:`, `updated:`, `after:`, app). +- Docs, messages, tickets: `search`, narrowed with filters (`owner:`, `updated:`, `after:`, app). - People and owners: `employee_search`, never `search`. - Meetings and decisions: `meeting_lookup`. -- Who the user is and what they work on: `memory`, `user_activity`. +- The user's role, projects and recent work: `memory`, `user_activity`. - Full text of a URL or of a result you will cite: `read_document`. -- Synthesis across many sources: one `chat` call instead of many searches. Run independent calls in parallel. Retry with new keywords at most twice. Stop once answered. +Check `memory` for how the user likes to read answers (length, format, tone) and write to that. + Cite every claim with its link. Flag stale or conflicting sources. Empty results may mean no access: say so, don't guess. From 4046e4ee03fbf7fe0f8b32c175349ef7efb06bb0 Mon Sep 17 00:00:00 2001 From: aditya-scio Date: Thu, 5 Nov 2026 11:56:23 -0800 Subject: [PATCH 4/4] fix: quote /glean skill description so its frontmatter parses --- shared/glean/skills/glean/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/glean/skills/glean/SKILL.md b/shared/glean/skills/glean/SKILL.md index 247b3e5..ccbd99f 100644 --- a/shared/glean/skills/glean/SKILL.md +++ b/shared/glean/skills/glean/SKILL.md @@ -1,6 +1,6 @@ --- name: glean -description: Answer questions about the company: documents, messages, email, tickets, people, meetings, projects, and the user's own work. Use for questions like "what's the latest on the Q3 launch?", "find the onboarding guide for new sales hires", "who should I talk to about the pricing change?", "prep me for my 2pm meeting", or "what did I work on this week?". Gives a cited, up-to-date answer in as few tool calls as possible. +description: "Answer questions about the company's documents, messages, email, tickets, people, meetings and projects, and about the user's own work. Use for questions like \"what's the latest on the Q3 launch?\", \"find the onboarding guide for new sales hires\", \"who should I talk to about the pricing change?\", \"prep me for my 2pm meeting\", or \"what did I work on this week?\". Gives a cited, up-to-date answer in as few tool calls as possible." --- # Glean