[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CT2A935Z4407DHSC7YR228":3,"skill-same:01M6CT2A935Z4407DHSC7YR228":72},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":27,"linkOnly":28,"markdownContent":29,"markdownBody":30,"frontMatter":31,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":14,"repositoryHtmlUrl":37,"repositoryHomepageUrl":6,"ownerHtmlUrl":38,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":39,"install":40,"resources":53},"01M6CT2A935Z4407DHSC7YR228","billing-health",null,"Monitor OpenMeter billing pipeline: outbox health, per-org usage, dead letter recovery, and anomaly detection","lucid-fdn\u002Flucid-plugins","lucid-fdn","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F93290671?v=4","01M6CT12EHKN5DWVD9NAK6WSXT","Lucid","01M6CT12K0ARYZ8D28MK4G89F8",0,"MIT","https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-observability\u002Fskill\u002Freferences\u002Fbilling-health\u002FSKILL.md",[],[19,20,21,22,23,24,25,26],"health","billing health","monitor","supabase","pipeline","detection","recovery","outbox","2026-11-10 10:12:30",false,"---\nname: billing-health\ndescription: \"Monitor OpenMeter billing pipeline: outbox health, per-org usage, dead letter recovery, and anomaly detection\"\nrequires:\n  mcps: [supabase]\n---\n\n# Billing Health\n\nMonitor the OpenMeter metering pipeline using Supabase MCP for direct SQL queries against the outbox ledger.\n\n## Prerequisites\n\n- **Supabase MCP**: `execute_sql` tool\n- Database access to the `openmeter_event_ledger` table\n\n## Monitoring Procedures\n\n### 1. Outbox Health Check\n\nUse Supabase MCP `execute_sql` with this query to assess queue health:\n\n```sql\nSELECT\n  COUNT(*) FILTER (WHERE sent_at IS NULL AND attempts \u003C 10) AS pending,\n  COUNT(*) FILTER (WHERE sent_at IS NOT NULL) AS sent,\n  COUNT(*) FILTER (WHERE attempts >= 10) AS dead_letter,\n  COUNT(*) FILTER (WHERE lease_until IS NOT NULL AND lease_until > now()) AS leased,\n  COUNT(*) AS total\nFROM openmeter_event_ledger\nWHERE created_at > now() - interval '24 hours'\n```\n\nSee [references\u002Foutbox-queries.md](references\u002Foutbox-queries.md) for all outbox queries.\n\nInterpret results using [references\u002Fthresholds.md](references\u002Fthresholds.md):\n- `pending > 500` → HIGH QUEUE DEPTH\n- `dead_letter > 0` → DEAD LETTERS — events failed 10+ times\n- Stuck leases (expired but unsent) → outbox worker may be down\n- `sent = 0` with `total > 0` → NO EVENTS DELIVERED — check API connectivity\n\n### 2. Per-Org Usage Breakdown\n\nSee [references\u002Fusage-queries.md](references\u002Fusage-queries.md) for SQL queries that break down usage by org, provider, and model.\n\n### 3. Dead Letter Recovery\n\nWhen dead letters exist, retry them with this procedure:\n1. Check the top errors first (see outbox-queries.md \"Top Errors\" query)\n2. Fix the root cause (usually API key, timeout, or connectivity)\n3. Run the retry query (see outbox-queries.md \"Dead Letter Retry\" query)\n4. Re-check outbox health to verify events are being delivered\n\n### 4. Usage Anomaly Detection\n\nSee [references\u002Fanomaly-detection.md](references\u002Fanomaly-detection.md) for the spike\u002Fdrop detection algorithm.\n","# Billing Health\n\nMonitor the OpenMeter metering pipeline using Supabase MCP for direct SQL queries against the outbox ledger.\n\n## Prerequisites\n\n- **Supabase MCP**: `execute_sql` tool\n- Database access to the `openmeter_event_ledger` table\n\n## Monitoring Procedures\n\n### 1. Outbox Health Check\n\nUse Supabase MCP `execute_sql` with this query to assess queue health:\n\n```sql\nSELECT\n  COUNT(*) FILTER (WHERE sent_at IS NULL AND attempts \u003C 10) AS pending,\n  COUNT(*) FILTER (WHERE sent_at IS NOT NULL) AS sent,\n  COUNT(*) FILTER (WHERE attempts >= 10) AS dead_letter,\n  COUNT(*) FILTER (WHERE lease_until IS NOT NULL AND lease_until > now()) AS leased,\n  COUNT(*) AS total\nFROM openmeter_event_ledger\nWHERE created_at > now() - interval '24 hours'\n```\n\nSee [references\u002Foutbox-queries.md](references\u002Foutbox-queries.md) for all outbox queries.\n\nInterpret results using [references\u002Fthresholds.md](references\u002Fthresholds.md):\n- `pending > 500` → HIGH QUEUE DEPTH\n- `dead_letter > 0` → DEAD LETTERS — events failed 10+ times\n- Stuck leases (expired but unsent) → outbox worker may be down\n- `sent = 0` with `total > 0` → NO EVENTS DELIVERED — check API connectivity\n\n### 2. Per-Org Usage Breakdown\n\nSee [references\u002Fusage-queries.md](references\u002Fusage-queries.md) for SQL queries that break down usage by org, provider, and model.\n\n### 3. Dead Letter Recovery\n\nWhen dead letters exist, retry them with this procedure:\n1. Check the top errors first (see outbox-queries.md \"Top Errors\" query)\n2. Fix the root cause (usually API key, timeout, or connectivity)\n3. Run the retry query (see outbox-queries.md \"Dead Letter Retry\" query)\n4. Re-check outbox health to verify events are being delivered\n\n### 4. Usage Anomaly Detection\n\nSee [references\u002Fanomaly-detection.md](references\u002Fanomaly-detection.md) for the spike\u002Fdrop detection algorithm.\n",{"name":5,"requires":32,"description":7},{"mcps":33},[22],"main","60a187a694df4ce725464b7578e08ad46a73340f","lucid-observability\u002Fskill\u002Freferences\u002Fbilling-health","https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins","https:\u002F\u002Fgithub.com\u002Flucid-fdn","2026-03-26 06:06:06",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add lucid-fdn\u002Flucid-plugins --skill billing-health",{"tool":46,"command":47},"bunx","bunx skills add lucid-fdn\u002Flucid-plugins --skill billing-health",{"tool":49,"command":50},"pnpm","pnpm dlx skills add lucid-fdn\u002Flucid-plugins --skill billing-health","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-observability\u002Fskill\u002Freferences\u002Fbilling-health\u002FSKILL.md",true,[54,60,64,68],{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},"references\u002Fanomaly-detection.md","REFERENCE","参考文档",1904,"https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-observability\u002Fskill\u002Freferences\u002Fbilling-health\u002Freferences\u002Fanomaly-detection.md",{"path":61,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":62,"sourceHtmlUrl":63},"references\u002Foutbox-queries.md",1713,"https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-observability\u002Fskill\u002Freferences\u002Fbilling-health\u002Freferences\u002Foutbox-queries.md",{"path":65,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":66,"sourceHtmlUrl":67},"references\u002Fthresholds.md",1276,"https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-observability\u002Fskill\u002Freferences\u002Fbilling-health\u002Freferences\u002Fthresholds.md",{"path":69,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Fusage-queries.md",1147,"https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-observability\u002Fskill\u002Freferences\u002Fbilling-health\u002Freferences\u002Fusage-queries.md",[73,82,107,119,135,154],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":27},"01M6CT442ZA942TW2E4GM9B47B","lucid-PLUGIN_NAME","PLUGIN_DESCRIPTION","https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Ftemplates\u002Fplugin-template\u002Fdocs\u002FSKILL.md",[],[80,81],"lucid PLUGIN NAME","plugin",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":98,"publishedAt":27},"01M6CT41PA1EKESRMFV5V775TW","social-content","Generate short-form video content optimized for social media platforms","https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-video\u002Fskill\u002Freferences\u002Fsocial-content\u002FSKILL.md",[88,93],{"categoryNo":89,"categoryName":90,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000016","图像与多媒体","SCENARIO","使用场景",{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[99,100,101,102,103,104,105,106],"social","social content","content","short","social media","Media","Video","generate",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":114,"publishedAt":27},"01M6CT3Z4SPEJQYJNZ60ZBDKMF","personalized-outreach","Generate 1:1 personalized video for sales prospecting and customer success","https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-video\u002Fskill\u002Freferences\u002Fpersonalized-outreach\u002FSKILL.md",[113],{"categoryNo":89,"categoryName":90,"taxonomyType":91,"taxonomyTypeDesc":92},[115,106,116,105,117,118],"personalized outreach","sales","prospecting","customer",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":128,"publishedAt":27},"01M6CT3WH4C1TMMSWY25XBEM19","data-reports","Generate animated data report videos from KPIs, charts, and analytics","https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-video\u002Fskill\u002Freferences\u002Fdata-reports\u002FSKILL.md",[125],{"categoryNo":126,"categoryName":127,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000033","数据分析师",[129,130,131,132,133,106,134],"data","data reports","reports","Charts","report","analytics",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":145,"publishedAt":27},"01M6CT3TJTWDVGM0CY356RS99V","lucid-video","Agent-native video generation using Remotion — MCP server + OpenClaw plugin","https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-video\u002Fskill\u002FSKILL.md",[141,142],{"categoryNo":89,"categoryName":90,"taxonomyType":91,"taxonomyTypeDesc":92},{"categoryNo":143,"categoryName":144,"taxonomyType":91,"taxonomyTypeDesc":92},"01JBSEEDCAT000000000000023","Skill与智能体开发",[146,105,147,148,149,150,151,152,153,81],"lucid video","server","MCP","openclaw","mcp server","openclaw plugin","video generation","Remotion",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":27},"01M6CT3RP3ZWEJBA5Q3X8J4XV4","lucid-veille","Content monitoring, AI digest generation, and multi-platform auto-publishing","https:\u002F\u002Fgithub.com\u002Flucid-fdn\u002Flucid-plugins\u002Fblob\u002Fmain\u002Flucid-veille\u002Fskill\u002Freferences\u002Flucid-veille\u002FSKILL.md",[],[161,22,162,163,164,165,101],"lucid veille","monitoring","auto","publishing","digest"]