计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
fathom-prod-checklist【效率与协作】Production readiness checklist for Fathom API integrations. Trigger with phrases like "fathom production", "fathom go-live", "fathom checklist".
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
name: fathom-prod-checklist description: 'Production readiness checklist for Fathom API integrations.
Trigger with phrases like "fathom production", "fathom go-live", "fathom checklist".
' allowed-tools: Read, Grep version: 1.6.0 license: MIT author: Jeremy Longshore jeremy@intentsolutions.io tags:
Pilot a production-like configuration using approved synthetic meeting data, verify consent/access/CRM behavior and alert routing, then observe the stated window. Restore the prior configuration if any gate fails; do not widen access or send real follow-ups to conceal a defect.
Fathom provides AI-powered meeting intelligence with automated transcription, summaries, and action item extraction. A production integration ingests meeting recordings, processes transcripts, and syncs action items to downstream systems. Failures mean lost meeting context, missed follow-ups, or transcript data leaking outside authorized channels. This checklist ensures reliable, compliant meeting data pipelines.
FATHOM_API_KEY stored in secrets manager (not environment files)https://api.fathom.video/v1)async function checkFathomReadiness(): Promise<void> {
const checks: { name: string; pass: boolean; detail: string }[] = [];
// API connectivity
try {
const res = await fetch('https://api.fathom.video/v1/meetings?limit=1', {
headers: { Authorization: `Bearer ${process.env.FATHOM_API_KEY}` },
});
checks.push({ name: 'Fathom API', pass: res.ok, detail: res.ok ? 'Connected' : `HTTP ${res.status}` });
} catch (e: any) { checks.push({ name: 'Fathom API', pass: false, detail: e.message }); }
// Credentials present
checks.push({ name: 'API Key Set', pass: !!process.env.FATHOM_API_KEY, detail: process.env.FATHOM_API_KEY ? 'Present' : 'MISSING' });
// Webhook endpoint reachable
const webhookUrl = process.env.FATHOM_WEBHOOK_URL;
if (webhookUrl) {
try {
const res = await fetch(webhookUrl, { method: 'HEAD' });
checks.push({ name: 'Webhook Endpoint', pass: res.ok, detail: `HTTP ${res.status}` });
} catch (e: any) { checks.push({ name: 'Webhook Endpoint', pass: false, detail: e.message }); }
} else { checks.push({ name: 'Webhook Endpoint', pass: false, detail: 'URL not configured' }); }
for (const c of checks) console.log(`[${c.pass ? 'PASS' : 'FAIL'}] ${c.name}: ${c.detail}`);
}
checkFathomReadiness();
| Check | Risk if Skipped | Priority |
|---|---|---|
| API key rotation | Expired key halts transcript pipeline | P1 |
| Webhook verification | Spoofed payloads inject bad data | P1 |
| PII retention policy | GDPR/CCPA violation on meeting data | P1 |
| Empty transcript handling | Downstream systems crash on null | P2 |
| Rate limit backoff | Bulk meeting import blocked by 429 | P3 |
See fathom-security-basics for meeting data privacy and consent patterns.