[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F9TN1HDK1HFDPHYNXNWJM2":3,"skill-same:01M6F9TN1HDK1HFDPHYNXNWJM2":74},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":6,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6F9TN1HDK1HFDPHYNXNWJM2","deepgram-reference-architecture",null,"Implement Deepgram reference architecture for scalable transcription systems.\nUse when designing transcription pipelines, building production architectures,\nor planning Deepgram integration at scale.\nTrigger: \"deepgram architecture\", \"transcription pipeline\", \"deepgram system design\",\n\"deepgram at scale\", \"enterprise deepgram\", \"deepgram queue\".","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fdeepgram-reference-architecture\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"deepgram reference architecture","architecture","deepgram","reference","edit","Scalable","architectures","trigger","io","scaling","system design","design","write","read","system","Bash","pipeline","planning","code","openclaw","2026-11-10 10:12:30",false,"---\nname: deepgram-reference-architecture\ndescription: |\n  Implement Deepgram reference architecture for scalable transcription systems.\n  Use when designing transcription pipelines, building production architectures,\n  or planning Deepgram integration at scale.\n  Trigger: \"deepgram architecture\", \"transcription pipeline\", \"deepgram system design\",\n  \"deepgram at scale\", \"enterprise deepgram\", \"deepgram queue\".\nallowed-tools: Read, Write, Edit, Bash(npm:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ncompatible-with: claude-code, codex, openclaw\ntags: [saas, deepgram, architecture, scaling]\n\n---\n# Deepgram Reference Architecture\n\n## Overview\nFour reference architectures for Deepgram transcription at scale: synchronous REST for short files, async queue (BullMQ) for batch processing, WebSocket proxy for real-time streaming, and a hybrid router that auto-selects the best pattern based on audio duration.\n\n## Architecture Selection Guide\n\n| Pattern | Best For | Latency | Throughput | Complexity |\n|---------|----------|---------|------------|------------|\n| Sync REST | Files \u003C60s, low volume | Low | Low | Simple |\n| Async Queue | Batch, files >60s | Medium | High | Medium |\n| WebSocket Proxy | Live audio, real-time | Real-time | Medium | Medium |\n| Hybrid Router | Mixed workloads | Varies | High | High |\n| Callback | Files >5min, fire-and-forget | N\u002FA | Very High | Low |\n\n## Instructions\n\n### Step 1: Synchronous REST Pattern\n\n```typescript\nimport express from 'express';\nimport { createClient } from '@deepgram\u002Fsdk';\n\nconst app = express();\napp.use(express.json());\n\nconst deepgram = createClient(process.env.DEEPGRAM_API_KEY!);\n\n\u002F\u002F Direct API call — best for short files (\u003C60s)\napp.post('\u002Fapi\u002Ftranscribe', async (req, res) => {\n  const { url, model = 'nova-3', diarize = false } = req.body;\n\n  try {\n    const { result, error } = await deepgram.listen.prerecorded.transcribeUrl(\n      { url },\n      { model, smart_format: true, diarize, utterances: diarize }\n    );\n    if (error) return res.status(502).json({ error: error.message });\n\n    res.json({\n      transcript: result.results.channels[0].alternatives[0].transcript,\n      confidence: result.results.channels[0].alternatives[0].confidence,\n      duration: result.metadata.duration,\n      request_id: result.metadata.request_id,\n      utterances: diarize ? result.results.utterances : undefined,\n    });\n  } catch (err: any) {\n    res.status(500).json({ error: err.message });\n  }\n});\n```\n\n### Step 2: Async Queue Pattern (BullMQ)\n\n```typescript\nimport { Queue, Worker, Job } from 'bullmq';\nimport { createClient } from '@deepgram\u002Fsdk';\nimport Redis from 'ioredis';\n\nconst connection = new Redis(process.env.REDIS_URL ?? 'redis:\u002F\u002Flocalhost:6379');\n\n\u002F\u002F Producer: submit transcription jobs\nconst transcriptionQueue = new Queue('transcription', { connection });\n\nasync function submitJob(audioUrl: string, options: Record\u003Cstring, any> = {}) {\n  const job = await transcriptionQueue.add('transcribe', {\n    audioUrl,\n    model: options.model ?? 'nova-3',\n    diarize: options.diarize ?? false,\n    submittedAt: new Date().toISOString(),\n  }, {\n    attempts: 3,\n    backoff: { type: 'exponential', delay: 5000 },\n    removeOnComplete: { age: 86400 },  \u002F\u002F Keep for 24h\n  });\n\n  console.log(`Job submitted: ${job.id}`);\n  return job.id;\n}\n\n\u002F\u002F Consumer: process transcription jobs\nconst deepgram = createClient(process.env.DEEPGRAM_API_KEY!);\n\nconst worker = new Worker('transcription', async (job: Job) => {\n  const { audioUrl, model, diarize } = job.data;\n  console.log(`Processing job ${job.id}: ${audioUrl}`);\n\n  const { result, error } = await deepgram.listen.prerecorded.transcribeUrl(\n    { url: audioUrl },\n    { model, smart_format: true, diarize, utterances: diarize }\n  );\n\n  if (error) throw new Error(`Deepgram error: ${error.message}`);\n\n  const output = {\n    transcript: result.results.channels[0].alternatives[0].transcript,\n    confidence: result.results.channels[0].alternatives[0].confidence,\n    duration: result.metadata.duration,\n    request_id: result.metadata.request_id,\n  };\n\n  \u002F\u002F Store result (database, S3, etc.)\n  console.log(`Job ${job.id} complete: ${output.duration}s audio`);\n  return output;\n}, {\n  connection,\n  concurrency: 10,     \u002F\u002F Process 10 jobs simultaneously\n  limiter: {\n    max: 50,           \u002F\u002F Max 50 per time window\n    duration: 60000,   \u002F\u002F Per minute\n  },\n});\n\nworker.on('completed', (job) => console.log(`Completed: ${job.id}`));\nworker.on('failed', (job, err) => console.error(`Failed: ${job?.id}`, err.message));\n```\n\n### Step 3: WebSocket Proxy for Real-Time\n\n```typescript\nimport { WebSocketServer, WebSocket } from 'ws';\nimport { createClient, LiveTranscriptionEvents } from '@deepgram\u002Fsdk';\n\nconst wss = new WebSocketServer({ port: 8080 });\n\nwss.on('connection', (clientWs: WebSocket) => {\n  console.log('Client connected');\n\n  const deepgram = createClient(process.env.DEEPGRAM_API_KEY!);\n  const dgConnection = deepgram.listen.live({\n    model: 'nova-3',\n    smart_format: true,\n    interim_results: true,\n    utterance_end_ms: 1000,\n    encoding: 'linear16',\n    sample_rate: 16000,\n    channels: 1,\n  });\n\n  \u002F\u002F Forward Deepgram transcripts to client\n  dgConnection.on(LiveTranscriptionEvents.Transcript, (data) => {\n    const transcript = data.channel.alternatives[0]?.transcript;\n    if (transcript && clientWs.readyState === WebSocket.OPEN) {\n      clientWs.send(JSON.stringify({\n        type: 'transcript',\n        text: transcript,\n        is_final: data.is_final,\n        speech_final: data.speech_final,\n      }));\n    }\n  });\n\n  dgConnection.on(LiveTranscriptionEvents.UtteranceEnd, () => {\n    if (clientWs.readyState === WebSocket.OPEN) {\n      clientWs.send(JSON.stringify({ type: 'utterance_end' }));\n    }\n  });\n\n  \u002F\u002F Forward client audio to Deepgram\n  clientWs.on('message', (data: Buffer) => {\n    if (dgConnection.getReadyState() === 1) {\n      dgConnection.send(data);\n    }\n  });\n\n  \u002F\u002F Cleanup on disconnect\n  clientWs.on('close', () => {\n    dgConnection.finish();\n    console.log('Client disconnected');\n  });\n\n  dgConnection.on(LiveTranscriptionEvents.Error, (err) => {\n    console.error('Deepgram error:', err.message);\n    clientWs.close();\n  });\n});\n\nconsole.log('WebSocket proxy on ws:\u002F\u002Flocalhost:8080');\n```\n\n### Step 4: Hybrid Router\n\n```typescript\nimport { createClient } from '@deepgram\u002Fsdk';\n\nclass TranscriptionRouter {\n  private client: ReturnType\u003Ctypeof createClient>;\n  private queue: typeof transcriptionQueue;\n\n  constructor(apiKey: string, queue: any) {\n    this.client = createClient(apiKey);\n    this.queue = queue;\n  }\n\n  async route(audioUrl: string, options: {\n    mode?: 'sync' | 'async' | 'callback' | 'auto';\n    estimatedDuration?: number;  \u002F\u002F seconds\n    callbackUrl?: string;\n    model?: string;\n    diarize?: boolean;\n  } = {}) {\n    const mode = options.mode ?? 'auto';\n    const duration = options.estimatedDuration ?? 0;\n\n    \u002F\u002F Auto-select based on duration\n    const selectedMode = mode === 'auto'\n      ? duration > 300 ? 'callback'   \u002F\u002F >5 min: use callback\n        : duration > 60 ? 'async'     \u002F\u002F >60s: use queue\n        : 'sync'                       \u002F\u002F \u003C60s: direct API\n      : mode;\n\n    console.log(`Routing: ${selectedMode} (est. ${duration}s)`);\n\n    switch (selectedMode) {\n      case 'sync':\n        return this.syncTranscribe(audioUrl, options);\n      case 'async':\n        return this.asyncTranscribe(audioUrl, options);\n      case 'callback':\n        return this.callbackTranscribe(audioUrl, options);\n    }\n  }\n\n  private async syncTranscribe(url: string, opts: any) {\n    const { result, error } = await this.client.listen.prerecorded.transcribeUrl(\n      { url },\n      { model: opts.model ?? 'nova-3', smart_format: true, diarize: opts.diarize }\n    );\n    if (error) throw error;\n    return { mode: 'sync', result };\n  }\n\n  private async asyncTranscribe(url: string, opts: any) {\n    const jobId = await submitJob(url, opts);\n    return { mode: 'async', jobId };\n  }\n\n  private async callbackTranscribe(url: string, opts: any) {\n    const { result } = await this.client.listen.prerecorded.transcribeUrl(\n      { url },\n      { model: opts.model ?? 'nova-3', smart_format: true, callback: opts.callbackUrl }\n    );\n    return { mode: 'callback', requestId: result.metadata.request_id };\n  }\n}\n```\n\n### Step 5: Architecture Diagram\n\n```\n                    ┌──────────────┐\n                    │   Client     │\n                    └──────┬───────┘\n                           │\n                    ┌──────▼───────┐\n                    │   API Gateway │\n                    │  \u002Ftranscribe  │\n                    └──────┬───────┘\n                           │\n                    ┌──────▼───────┐\n                    │ Hybrid Router │\n                    └──┬───┬───┬───┘\n                       │   │   │\n           ┌───────────┘   │   └───────────┐\n           ▼               ▼               ▼\n    ┌──────────┐   ┌──────────┐   ┌──────────┐\n    │   Sync   │   │  Queue   │   │ Callback │\n    │  (\u003C60s)  │   │ (BullMQ) │   │  (>5min) │\n    └────┬─────┘   └────┬─────┘   └────┬─────┘\n         │              │              │\n         └──────────┬───┘──────────────┘\n                    │\n            ┌───────▼──────┐\n            │  Deepgram    │\n            │  API         │\n            └───────┬──────┘\n                    │\n            ┌───────▼──────┐\n            │   Results    │\n            │   Store      │\n            └──────────────┘\n```\n\n## Output\n- Sync REST endpoint for short files\n- BullMQ queue with workers for batch processing\n- WebSocket proxy for real-time streaming\n- Hybrid router with auto-mode selection\n- Architecture diagram\n\n## Error Handling\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| Sync timeout on large file | Wrong pattern selected | Use async queue or callback |\n| Queue backlog growing | Workers overloaded | Scale workers, increase concurrency |\n| WebSocket disconnects | Network instability | Auto-reconnect with backoff |\n| Callback not received | Endpoint unreachable | Check HTTPS, verify callback URL |\n\n## Resources\n- [Deepgram Architecture Guide](https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Farchitecture)\n- [BullMQ Documentation](https:\u002F\u002Fdocs.bullmq.io\u002F)\n- [WebSocket API](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWebSockets_API)\n\n","# Deepgram Reference Architecture\n\n## Overview\nFour reference architectures for Deepgram transcription at scale: synchronous REST for short files, async queue (BullMQ) for batch processing, WebSocket proxy for real-time streaming, and a hybrid router that auto-selects the best pattern based on audio duration.\n\n## Architecture Selection Guide\n\n| Pattern | Best For | Latency | Throughput | Complexity |\n|---------|----------|---------|------------|------------|\n| Sync REST | Files \u003C60s, low volume | Low | Low | Simple |\n| Async Queue | Batch, files >60s | Medium | High | Medium |\n| WebSocket Proxy | Live audio, real-time | Real-time | Medium | Medium |\n| Hybrid Router | Mixed workloads | Varies | High | High |\n| Callback | Files >5min, fire-and-forget | N\u002FA | Very High | Low |\n\n## Instructions\n\n### Step 1: Synchronous REST Pattern\n\n```typescript\nimport express from 'express';\nimport { createClient } from '@deepgram\u002Fsdk';\n\nconst app = express();\napp.use(express.json());\n\nconst deepgram = createClient(process.env.DEEPGRAM_API_KEY!);\n\n\u002F\u002F Direct API call — best for short files (\u003C60s)\napp.post('\u002Fapi\u002Ftranscribe', async (req, res) => {\n  const { url, model = 'nova-3', diarize = false } = req.body;\n\n  try {\n    const { result, error } = await deepgram.listen.prerecorded.transcribeUrl(\n      { url },\n      { model, smart_format: true, diarize, utterances: diarize }\n    );\n    if (error) return res.status(502).json({ error: error.message });\n\n    res.json({\n      transcript: result.results.channels[0].alternatives[0].transcript,\n      confidence: result.results.channels[0].alternatives[0].confidence,\n      duration: result.metadata.duration,\n      request_id: result.metadata.request_id,\n      utterances: diarize ? result.results.utterances : undefined,\n    });\n  } catch (err: any) {\n    res.status(500).json({ error: err.message });\n  }\n});\n```\n\n### Step 2: Async Queue Pattern (BullMQ)\n\n```typescript\nimport { Queue, Worker, Job } from 'bullmq';\nimport { createClient } from '@deepgram\u002Fsdk';\nimport Redis from 'ioredis';\n\nconst connection = new Redis(process.env.REDIS_URL ?? 'redis:\u002F\u002Flocalhost:6379');\n\n\u002F\u002F Producer: submit transcription jobs\nconst transcriptionQueue = new Queue('transcription', { connection });\n\nasync function submitJob(audioUrl: string, options: Record\u003Cstring, any> = {}) {\n  const job = await transcriptionQueue.add('transcribe', {\n    audioUrl,\n    model: options.model ?? 'nova-3',\n    diarize: options.diarize ?? false,\n    submittedAt: new Date().toISOString(),\n  }, {\n    attempts: 3,\n    backoff: { type: 'exponential', delay: 5000 },\n    removeOnComplete: { age: 86400 },  \u002F\u002F Keep for 24h\n  });\n\n  console.log(`Job submitted: ${job.id}`);\n  return job.id;\n}\n\n\u002F\u002F Consumer: process transcription jobs\nconst deepgram = createClient(process.env.DEEPGRAM_API_KEY!);\n\nconst worker = new Worker('transcription', async (job: Job) => {\n  const { audioUrl, model, diarize } = job.data;\n  console.log(`Processing job ${job.id}: ${audioUrl}`);\n\n  const { result, error } = await deepgram.listen.prerecorded.transcribeUrl(\n    { url: audioUrl },\n    { model, smart_format: true, diarize, utterances: diarize }\n  );\n\n  if (error) throw new Error(`Deepgram error: ${error.message}`);\n\n  const output = {\n    transcript: result.results.channels[0].alternatives[0].transcript,\n    confidence: result.results.channels[0].alternatives[0].confidence,\n    duration: result.metadata.duration,\n    request_id: result.metadata.request_id,\n  };\n\n  \u002F\u002F Store result (database, S3, etc.)\n  console.log(`Job ${job.id} complete: ${output.duration}s audio`);\n  return output;\n}, {\n  connection,\n  concurrency: 10,     \u002F\u002F Process 10 jobs simultaneously\n  limiter: {\n    max: 50,           \u002F\u002F Max 50 per time window\n    duration: 60000,   \u002F\u002F Per minute\n  },\n});\n\nworker.on('completed', (job) => console.log(`Completed: ${job.id}`));\nworker.on('failed', (job, err) => console.error(`Failed: ${job?.id}`, err.message));\n```\n\n### Step 3: WebSocket Proxy for Real-Time\n\n```typescript\nimport { WebSocketServer, WebSocket } from 'ws';\nimport { createClient, LiveTranscriptionEvents } from '@deepgram\u002Fsdk';\n\nconst wss = new WebSocketServer({ port: 8080 });\n\nwss.on('connection', (clientWs: WebSocket) => {\n  console.log('Client connected');\n\n  const deepgram = createClient(process.env.DEEPGRAM_API_KEY!);\n  const dgConnection = deepgram.listen.live({\n    model: 'nova-3',\n    smart_format: true,\n    interim_results: true,\n    utterance_end_ms: 1000,\n    encoding: 'linear16',\n    sample_rate: 16000,\n    channels: 1,\n  });\n\n  \u002F\u002F Forward Deepgram transcripts to client\n  dgConnection.on(LiveTranscriptionEvents.Transcript, (data) => {\n    const transcript = data.channel.alternatives[0]?.transcript;\n    if (transcript && clientWs.readyState === WebSocket.OPEN) {\n      clientWs.send(JSON.stringify({\n        type: 'transcript',\n        text: transcript,\n        is_final: data.is_final,\n        speech_final: data.speech_final,\n      }));\n    }\n  });\n\n  dgConnection.on(LiveTranscriptionEvents.UtteranceEnd, () => {\n    if (clientWs.readyState === WebSocket.OPEN) {\n      clientWs.send(JSON.stringify({ type: 'utterance_end' }));\n    }\n  });\n\n  \u002F\u002F Forward client audio to Deepgram\n  clientWs.on('message', (data: Buffer) => {\n    if (dgConnection.getReadyState() === 1) {\n      dgConnection.send(data);\n    }\n  });\n\n  \u002F\u002F Cleanup on disconnect\n  clientWs.on('close', () => {\n    dgConnection.finish();\n    console.log('Client disconnected');\n  });\n\n  dgConnection.on(LiveTranscriptionEvents.Error, (err) => {\n    console.error('Deepgram error:', err.message);\n    clientWs.close();\n  });\n});\n\nconsole.log('WebSocket proxy on ws:\u002F\u002Flocalhost:8080');\n```\n\n### Step 4: Hybrid Router\n\n```typescript\nimport { createClient } from '@deepgram\u002Fsdk';\n\nclass TranscriptionRouter {\n  private client: ReturnType\u003Ctypeof createClient>;\n  private queue: typeof transcriptionQueue;\n\n  constructor(apiKey: string, queue: any) {\n    this.client = createClient(apiKey);\n    this.queue = queue;\n  }\n\n  async route(audioUrl: string, options: {\n    mode?: 'sync' | 'async' | 'callback' | 'auto';\n    estimatedDuration?: number;  \u002F\u002F seconds\n    callbackUrl?: string;\n    model?: string;\n    diarize?: boolean;\n  } = {}) {\n    const mode = options.mode ?? 'auto';\n    const duration = options.estimatedDuration ?? 0;\n\n    \u002F\u002F Auto-select based on duration\n    const selectedMode = mode === 'auto'\n      ? duration > 300 ? 'callback'   \u002F\u002F >5 min: use callback\n        : duration > 60 ? 'async'     \u002F\u002F >60s: use queue\n        : 'sync'                       \u002F\u002F \u003C60s: direct API\n      : mode;\n\n    console.log(`Routing: ${selectedMode} (est. ${duration}s)`);\n\n    switch (selectedMode) {\n      case 'sync':\n        return this.syncTranscribe(audioUrl, options);\n      case 'async':\n        return this.asyncTranscribe(audioUrl, options);\n      case 'callback':\n        return this.callbackTranscribe(audioUrl, options);\n    }\n  }\n\n  private async syncTranscribe(url: string, opts: any) {\n    const { result, error } = await this.client.listen.prerecorded.transcribeUrl(\n      { url },\n      { model: opts.model ?? 'nova-3', smart_format: true, diarize: opts.diarize }\n    );\n    if (error) throw error;\n    return { mode: 'sync', result };\n  }\n\n  private async asyncTranscribe(url: string, opts: any) {\n    const jobId = await submitJob(url, opts);\n    return { mode: 'async', jobId };\n  }\n\n  private async callbackTranscribe(url: string, opts: any) {\n    const { result } = await this.client.listen.prerecorded.transcribeUrl(\n      { url },\n      { model: opts.model ?? 'nova-3', smart_format: true, callback: opts.callbackUrl }\n    );\n    return { mode: 'callback', requestId: result.metadata.request_id };\n  }\n}\n```\n\n### Step 5: Architecture Diagram\n\n```\n                    ┌──────────────┐\n                    │   Client     │\n                    └──────┬───────┘\n                           │\n                    ┌──────▼───────┐\n                    │   API Gateway │\n                    │  \u002Ftranscribe  │\n                    └──────┬───────┘\n                           │\n                    ┌──────▼───────┐\n                    │ Hybrid Router │\n                    └──┬───┬───┬───┘\n                       │   │   │\n           ┌───────────┘   │   └───────────┐\n           ▼               ▼               ▼\n    ┌──────────┐   ┌──────────┐   ┌──────────┐\n    │   Sync   │   │  Queue   │   │ Callback │\n    │  (\u003C60s)  │   │ (BullMQ) │   │  (>5min) │\n    └────┬─────┘   └────┬─────┘   └────┬─────┘\n         │              │              │\n         └──────────┬───┘──────────────┘\n                    │\n            ┌───────▼──────┐\n            │  Deepgram    │\n            │  API         │\n            └───────┬──────┘\n                    │\n            ┌───────▼──────┐\n            │   Results    │\n            │   Store      │\n            └──────────────┘\n```\n\n## Output\n- Sync REST endpoint for short files\n- BullMQ queue with workers for batch processing\n- WebSocket proxy for real-time streaming\n- Hybrid router with auto-mode selection\n- Architecture diagram\n\n## Error Handling\n| Issue | Cause | Solution |\n|-------|-------|----------|\n| Sync timeout on large file | Wrong pattern selected | Use async queue or callback |\n| Queue backlog growing | Workers overloaded | Scale workers, increase concurrency |\n| WebSocket disconnects | Network instability | Auto-reconnect with backoff |\n| Callback not received | Endpoint unreachable | Check HTTPS, verify callback URL |\n\n## Resources\n- [Deepgram Architecture Guide](https:\u002F\u002Fdevelopers.deepgram.com\u002Fdocs\u002Farchitecture)\n- [BullMQ Documentation](https:\u002F\u002Fdocs.bullmq.io\u002F)\n- [WebSocket API](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FWebSockets_API)\n\n",{"name":5,"tags":44,"author":46,"license":15,"version":47,"description":48,"allowed-tools":49,"compatible-with":50},[45,21,20,28],"saas","Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Implement Deepgram reference architecture for scalable transcription systems.\nUse when designing transcription pipelines, building production architectures,\nor planning Deepgram integration at scale.\nTrigger: \"deepgram architecture\", \"transcription pipeline\", \"deepgram system design\",\n\"deepgram at scale\", \"enterprise deepgram\", \"deepgram queue\".\n","Read, Write, Edit, Bash(npm:*)","claude-code, codex, openclaw","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fdeepgram-reference-architecture",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill deepgram-reference-architecture",{"tool":66,"command":67},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill deepgram-reference-architecture",{"tool":69,"command":70},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill deepgram-reference-architecture","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fdeepgram-reference-architecture\u002FSKILL.md",true,[],[75,89,99,108,114,121],{"skillNo":76,"name":77,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":85,"publishedAt":39},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[80],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[86,87,88],"model","model hierarchy","model hierarchy skill",{"skillNo":90,"name":91,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":95,"publishedAt":39},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[94],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[96,97,98],"MCP","zoom","zoom mcp",{"skillNo":100,"name":101,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":39},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[105,106,107,97],"sdk","zoom apps sdk","apps",{"skillNo":109,"name":110,"nameZh":6,"description":6,"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":113,"publishedAt":39},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[110],{"skillNo":115,"name":116,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":120,"publishedAt":39},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[119],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[116],{"skillNo":122,"name":123,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":39},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[123]]