Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Pre-launch: All datasources indexed and searchable. Trigger: "glean prod checklist", "prod-checklist".
.claude/skills/jeremylongshore-glean-prod-checklist/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 17% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 14% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 0% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 2% | 0% |
Glean provides enterprise search across all company data sources with AI-powered ranking and document understanding. A production integration requires all connectors indexed, document permissions correctly mapped, and search quality validated. Failures mean employees find stale documents, see content they lack permission for, or get zero results when data exists.
GLEAN_API_KEY stored in secrets manager (not config files)https://api.glean.com/v1)typescriptasync function checkGleanReadiness(): Promise<void> { const checks: { name: string; pass: boolean; detail: string }[] = []; // Search API connectivity try { const res = await fetch('https://api.glean.com/v1/search', { method: 'POST', headers: { Authorization: `Bearer ${process.env.GLEAN_API_KEY}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ query: 'test', pageSize: 1 }), }); checks.push({ name: 'Search API', pass: res.ok, detail: res.ok ? 'Connected' : `HTTP ${res.status}` }); } catch (e: any) { checks.push({ name: 'Search API', pass: false, detail: e.message }); } // Credentials present checks.push({ name: 'API Key Set', pass: !!process.env.GLEAN_API_KEY, detail: process.env.GLEAN_API_KEY ? 'Present' : 'MISSING' }); // Indexing API connectivity try { const res = await fetch('https://api.glean.com/v1/index/status', { headers: { Authorization: `Bearer ${process.env.GLEAN_API_KEY}` }, }); checks.push({ name: 'Indexing API', pass: res.ok, detail: res.ok ? 'Accessible' : `HTTP ${res.status}` }); } catch (e: any) { checks.push({ name: 'Indexing API', pass: false, detail: e.message }); } for (const c of checks) console.log(`[${c.pass ? 'PASS' : 'FAIL'}] ${c.name}: ${c.detail}`); } checkGleanReadiness();
| Check | Risk if Skipped | Priority | |-------|----------------|----------| | Permission mapping | Users see unauthorized documents | P1 | | Connector sync monitoring | Stale search results across org | P1 | | API key rotation | Expired key halts indexing pipeline | P2 | | Zero-result tracking | Employees lose trust in search | P2 | | Index count monitoring | Silent data source disconnection | P3 |
See glean-security-basics for document permission mapping and access control.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 37,153 | 37,897 | +2% | 1 | 1 | 0% | 5,632 | 7,172 | +27% | 0 | 0 | — |
case-02 | fail→fail | 34,952 | 22,427 | -36% | 1 | 1 | 0% | 6,281 | 5,860 | -7% | 0 | 0 | — |
case-03 | fail→pass | 28,726 | 24,705 | -14% | 1 | 1 | 0% | 4,985 | 5,850 | +17% | 0 | 0 | — |
case-04 | fail→fail | 13,625 | 14,841 | +9% | 1 | 1 | 0% | 1,733 | 3,256 | +88% | 0 | 0 | — |
case-05 | pass→pass | 15,261 | 9,463 | -38% | 1 | 1 | 0% | 1,929 | 1,938 | +0% | 0 | 0 | — |
case-06 | pass→pass | 16,275 | 5,746 | -65% | 1 | 1 | 0% | 2,027 | 2,062 | +2% | 0 | 0 | — |
case-07 | fail→pass | 9,791 | 5,872 | -40% | 1 | 1 | 0% | 1,980 | 2,248 | +14% | 0 | 0 | — |
case-08 | pass→pass | 16,005 | 2,825 | -82% | 1 | 1 | 0% | 2,094 | 1,616 | -23% | 0 | 0 | — |
case-09 | pass→pass | 10,739 | 14,497 | +35% | 1 | 1 | 0% | 2,086 | 2,877 | +38% | 0 | 0 | — |
case-10 | pass→pass | 20,947 | 17,510 | -16% | 1 | 1 | 0% | 2,469 | 3,122 | +26% | 0 | 0 | — |
case-11 | pass→pass | 19,228 | 15,902 | -17% | 1 | 1 | 0% | 2,114 | 2,715 | +28% | 0 | 0 | — |
case-12 | pass→pass | 14,887 | 2,152 | -86% | 1 | 1 | 0% | 1,474 | 1,331 | -10% | 0 | 0 | — |
case-13 | fail→pass | 14,790 | 7,172 | -52% | 1 | 1 | 0% | 1,418 | 1,420 | +0% | 0 | 0 | — |
case-14 | pass→pass | 19,047 | 18,622 | -2% | 1 | 1 | 0% | 2,998 | 3,156 | +5% | 0 | 0 | — |
case-15 | pass→pass | 21,873 | 20,919 | -4% | 1 | 1 | 0% | 2,962 | 4,117 | +39% | 0 | 0 | — |
case-16 | pass→pass | 14,438 | 16,065 | +11% | 1 | 1 | 0% | 2,628 | 3,382 | +29% | 0 | 0 | — |
case-17 | pass→pass | 14,934 | 7,522 | -50% | 1 | 1 | 0% | 1,464 | 2,123 | +45% | 0 | 0 | — |
case-18 | pass→pass | 15,734 | 22,002 | +40% | 1 | 1 | 0% | 2,565 | 4,081 | +59% | 0 | 0 | — |
case-19 | pass→pass | 20,380 | 19,502 | -4% | 1 | 1 | 0% | 2,569 | 3,482 | +36% | 0 | 0 | — |
case-20 | pass→pass | 22,422 | 15,151 | -32% | 1 | 1 | 0% | 2,777 | 3,536 | +27% | 0 | 0 | — |
case-21 | pass→pass | 14,061 | 1,998 | -86% | 1 | 1 | 0% | 1,339 | 1,393 | +4% | 0 | 0 | — |
case-22 | fail→fail | 16,695 | 14,106 | -16% | 1 | 1 | 0% | 2,755 | 3,977 | +44% | 0 | 0 | — |
case-23 | fail→fail | 18,173 | 15,243 | -16% | 1 | 1 | 0% | 2,377 | 3,850 | +62% | 0 | 0 | — |
case-24 | fail→fail | 29,267 | 21,677 | -26% | 1 | 1 | 0% | 4,889 | 5,467 | +12% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 24 cases were attempted. The headline lift of +13 percentage points is the difference between those two pass rates over the 24 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.