From glean-pack
Pre-launch: All datasources indexed and searchable. Trigger: "glean prod checklist", "prod-checklist".
npx claudepluginhub flight505/skill-forge --plugin glean-packThis skill is limited to using the following tools:
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.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
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)async 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.