From b13eb316444664d22903db582b0a5220a2dc2594 Mon Sep 17 00:00:00 2001 From: rohan-tessl Date: Mon, 8 Jun 2026 15:30:00 +0530 Subject: [PATCH] feat: improve skill score for using-glean-productivity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hey @steve-calvert-glean 👋 really like how you've structured this plugin ecosystem, 9 plugins each with clean skill boundaries and cross-references back to glean-core for shared tool docs. The "Which Plugin Do I Need?" table in the README is a nice touch for discoverability. I ran your skills through `tessl skill review` at work and found some targeted improvements for `using-glean-productivity`. Here's the full before/after: | Skill | Before | After | Change | |-------|--------|-------|--------| | using-glean-productivity | 70% | 90% | +20% | | using-glean-code | 85% | 85% | 0 | | using-glean | 84% | 84% | 0 | | dev-docs-guide | 84% | 84% | 0 | | project-awareness | 69% | 69% | 0 | | skill-creation-guide | 62% | 62% | 0 | Description improvement: - replaced the vague verb "synthesize" with concrete actions "retrieve, filter, and summarize" so the skill triggers more reliably on user queries about their own activity Content improvements (biggest impact): - added a concrete 6-step workflow (load personalization, pull activity, supplement with meetings/docs, filter and classify, validate, group and format) with explicit tool calls and parameters - added a worked example showing the full call sequence for "summarize my week" with real tool invocations and grouped output - added a validation checkpoint (step 5) that handles sparse results honestly instead of padding - trimmed meta-commentary to keep the skill lean Unchanged: - reference files (activity.md, priorities.md) left as-is since they were already well-structured - cross-cutting rules preserved verbatim - all other skills left untouched I also stress-tested the using-glean-productivity skill against a few real-world task evals and it held up really well on weekly status update generation with themed grouping by ActiveProjects. quick honest disclosure. I work at https://github.com/tesslio where we build tooling around skills like these. Not a pitch, just saw room for improvement and wanted to contribute. If you want to self-improve your skills, or define your own scenarios to pressure test, just ask your agent (Claude Code, Codex, etc.) to evaluate and optimize your skill with Tessl. Ping me @rohan-tessl, if you hit any snags. Thanks in advance 🙏 --- .../skills/using-glean-productivity/SKILL.md | 46 ++++++++++++++++--- 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/plugins/glean-productivity/skills/using-glean-productivity/SKILL.md b/plugins/glean-productivity/skills/using-glean-productivity/SKILL.md index 806d8e9..e183df2 100644 --- a/plugins/glean-productivity/skills/using-glean-productivity/SKILL.md +++ b/plugins/glean-productivity/skills/using-glean-productivity/SKILL.md @@ -1,6 +1,6 @@ --- name: using-glean-productivity -description: Synthesize the user's own work activity, priorities, and recent context using Glean. Use when the user asks about their recent work, what they accomplished, what's urgent, what needs their attention, or wants help with status updates, 1:1 prep, or weekly summaries. +description: "Retrieve, filter, and summarize the user's own work activity, priorities, and recent context from Glean. Use when the user asks about their recent work, what they accomplished, what's urgent, what needs their attention, or wants help with status updates, 1:1 prep, or weekly summaries." when_to_use: | Trigger phrases include "what have I been working on", "what did I do last week", "what should I focus on", "what's urgent", "what needs my attention", "summarize my week", "help me with my status update", "1:1 prep", "what's blocking me", "what can't wait", "morning briefing", "what happened while I was out". @@ -13,12 +13,48 @@ This skill drives queries about the user's own work life — their recent activi ## Two shapes of question -Most personal-productivity asks fall into two shapes: - - **Activity / accomplishments** — "what did I work on?", "summarize my week", "what shipped?". See [reference/activity.md](reference/activity.md). - **Priorities / blockers** — "what's urgent?", "what needs my attention?", "what's waiting on me?". See [reference/priorities.md](reference/priorities.md). -The two overlap (a recent activity feed is the substrate for triaging priorities), but the *output* the user wants is different: activity is retrospective, priorities are prospective. +Activity is retrospective; priorities are prospective. The workflow below covers both. + +## Core workflow + +1. **Load personalization context.** Call `read_memory(action="read", category="ActiveProjects")` and optionally `RolesAndResponsibilities`. These themes drive how results are grouped. + +2. **Pull the activity feed.** Call `user_activity(start_date="YYYY-MM-DD", end_date="YYYY-MM-DD")` for the requested window. Remember `end_date` is exclusive — to include all of Friday, set `end_date` to Saturday. + +3. **Supplement with meetings and docs.** Call `meeting_lookup` for the same window, and `search` with `from:me` or `owner:me` to catch authored documents. + +4. **Filter and classify.** From the combined results: + - **Include**: created docs, shipped code, decisions made, tasks completed, meaningful comments + - **Demote**: brief views, auto-generated notifications, mass announcements, peripheral involvement + - For priority queries, apply the urgency triage from [reference/priorities.md](reference/priorities.md) + +5. **Validate before presenting.** Check that results are non-empty. If the feed is sparse, say so honestly — don't pad. Suggest a wider date range if appropriate. + +6. **Group and format.** Use `ActiveProjects` themes as the grouping axis when available. Otherwise group by repo, project, or topic. Cite every claim with a link to its source doc, meeting, or commit. + +### Example: "summarize my week" + +``` +→ read_memory(action="read", category="ActiveProjects") + # Returns: ["Auth migration", "API v3 launch", "Onboarding revamp"] + +→ user_activity(start_date="2025-05-19", end_date="2025-05-24") + # Returns: 34 items — filter down to 8 meaningful contributions + +→ meeting_lookup(start_date="2025-05-19", end_date="2025-05-24") + # Returns: 6 meetings — extract action items assigned to user + +→ Output grouped by ActiveProjects themes, with citations: + ## May 19–23 — your week + ### Auth migration + - Merged token-rotation PR (#412) — [link] + - Resolved session-storage compliance flag with legal — [meeting notes] + ### API v3 launch + - Published updated rate-limit docs — [link] +``` ## Tool reference lives in glean-core @@ -29,8 +65,6 @@ The two overlap (a recent activity feed is the substrate for triaging priorities - [`reference/search.md`](../../../../glean-core/skills/using-glean/reference/search.md) — for documents the user authored or was mentioned in - [`reference/meeting-lookup.md`](../../../../glean-core/skills/using-glean/reference/meeting-lookup.md) — for meetings the user attended -This skill carries the *workflow* on top. - ## Cross-cutting rules 1. **Quality over volume.** A status update of 5 real accomplishments beats a list of 20 trivial activities. Filter aggressively per [reference/activity.md](reference/activity.md).